Veriler kurtarılamıyorsa, eğer mümkünse USB flash sürücüyü terminalden nasıl sileceğimi bilmek istiyorum.
Veriler kurtarılamıyorsa, eğer mümkünse USB flash sürücüyü terminalden nasıl sileceğimi bilmek istiyorum.
Yanıtlar:
TL / DR: Doğru cihaz adını aldığınızdan, takılı olmadığından emin olun ve karşılayabileceğiniz kadar rastgele üzerine yazma yapın. Son zamanlarda yeterli bir dağıtımdaysanız, flash donanım için tasarlanmış bir silme komutuyla bunu takip edebilirsiniz. Bu kontrollerde her zaman sürücüyü (/ dev / sd h gibi ) kullanın ve bölüm adını (/ dev / sd h1 olacaktır ) kullanın
# dmesg|grep sdXX
[3600.000001] sd 6:0:0:0: [sdXX] 125106176 512-byte logical blocks: (64.0 GB/59.6 GiB)
# blkid|grep sdXX
/dev/sdXX1: PARTUUID="88a03bb2-ced8-4bb2-9883-0a51b4d460a8"
# df|grep /dev/sdXX
# shred -vzn8 /dev/sdXX
shred: /dev/sdXX: pass 1/9 (random)...
shred: /dev/sdXX: pass 1/9 (random)...46MiB/3.8GiB 1%
...
shred: /dev/sdXX: pass 9/9 (000000)...3.8GiB/3.8GiB 100%
# blkdiscard -s /dev/sdXX
blkdiscard: /dev/sdXX: BLKSECDISCARD ioctl failed: Operation not supported
# blkdiscard /dev/sdXX
blkdiscard: /dev/sdXX: BLKDISCARD ioctl failed: Operation not supported
#
Teoride, sıfır ile üzerine yazma dd
sadece iyi. Bununla birlikte, bir flash sürücünün dahili yapısının nasıl oluşturulduğuna bağlı olarak, tek bir üzerine yazma geçişi kullanırsanız, hala kalan bilgileri depolayan gerçek blokların arkasına gizlenmiş birkaç veri katmanı olabilir.
Genellikle flaş depolamanın bir kısmı arızalıdır ve üretim sırasında böyle işaretlenir. Yanlış gidebilecek başka şeyler de vardır (değiştirilemez, ayarlanamaz ya da anlaşılmaz hale gelebilir), bu parçaların kullanım ömrü boyunca hatalı olarak işaretlenmesi gerekir. Bu bilgiler, verilerinizle aynı çiplerde ayrılmış bir alanda saklanır. Bu, 4GB'lık bir parmak sürücünün 2 ^ 32 bayt kapasite göstermemesinin birkaç nedeninden biridir.
Flash depolama ayrıca dahili olarak daha büyük bloklarda, bazen sürücüde çalışan dosya sistemlerinden daha büyük olarak düzenlenir. Tipik bir dosya sistemi blok boyutu 4KB'dir ve bir seferde silinebilecek flaş segmentleri 64KB ile birkaç megabayt arasında değişebilir. Bu büyük bloklar yalnızca tümüyle silinebilir, bu tüm bloğu bilinen bir duruma (tümü veya tümü 0'ları) sıfırlar. Daha sonra bir veri yazımı bitlerin herhangi birini değiştirebilir (gerektiğinde varsayılan 1'leri 0s olarak değiştirin veya varsayılan 0'ları 1s olarak değiştirin), ancak yalnızca bir kez . Bitlerden herhangi birini varsayılana döndürmek için, tüm bölümlerin yeniden silinmesi gerekir!
Bu nedenle, 4 KB'lık bir bloğu değiştirmek istediğinizde (dosya sistemindeki bir dosyanın ortasındaki tek bir karakteri değiştirmesi istenir), flaş denetleyicisinin eski verilerin tüm 64 KB'sini okuması ve arabelleğe alması, hepsini silmesi ve yeni içerikleri geri yazar. Bu çok yavaş olacaktır, segmentleri silmek en yavaş işlemdir. Ayrıca, bir bölüm sınırlı bir süre içinde silinebilir (onbinlerce tipik), bu nedenle tek bir dosyada çok fazla değişiklik yaparsanız sürücüyü hızlı bir şekilde bozabilir.
Ama bu böyle yapılmadı. Akıllı flaş denetleyicileri, 4KB yeni verileri başka bir yere yazabilir ve eski bloğun ortasındaki bu 4KB veriyi yeniden yönlendirmeyi not eder. Yönlendirmeler hakkındaki bu bilgiyi saklayamadığımızdan daha fazla alana ihtiyaçları var. Ayrıca, verileri depolamak için erişilebilir tüm bölümleri geçtiklerinden emin olmaya çalışırlar, buna aşınma dengeleme denir .
Bu, tipik olarak eski verilerin hala sürücüde bir yerde olduğu anlamına gelir ! Erişilebilir tüm blokları yeni sildiyseniz, tüm gizli bloklar hala verilerin oldukça yeni bir sürümünü tutar. Buna, verilerinizin korunmasını istediğiniz bir saldırganın erişip erişemeyeceği, farklı bir sorudur.
Yeterince yeni bir dağıtımınız varsa ve USB sürücüsü bir flash sürücü olduğunu gösterecek şekilde programlanmışsa, yukarıda bahsettiğimiz bölümü sildiğimiz blkdiscard
temel TRIM
işlemi kullanabilir . Ayrıca görünmeyen gizli verilerin bile donanım tarafından tamamen silindiğinden emin olmak için ek bir bayrağa sahiptir:
# blkdiscard -s /dev/myusbdevice
-s, --secure Güvenli bir atma gerçekleştirin. Güvenli bir atma, atılan blokların, muhtemelen çöp toplama işlemi tarafından oluşturulan tüm kopyalarının da silinmesi gerektiği haricinde, normal bir atma ile aynıdır. Bu cihazdan destek gerektirir.
Yukarıda gösterildiği gibi, mutlaka çalışmayacak. Operation not supported
Çekirdeğiniz, yardımcı programlarınız veya USB ağ geçidi çipini (flaş denetleyicisinin USB üzerinden bir sürücüye benzemesine izin verir) alırsanız pass TRIM
komutunu desteklemez . (Flaş kontrol cihazı hala segmentleri kendi başına silebilmelidir). Sürücünüzün satıcısı tarafından destekleniyorsa, bu en güvenli yoldur.
Eski verilerin daha az bir yerde dolaşmasına izin verdiğinizden emin olmanın daha az güvenli bir yolu, mümkünse rastgele değerlerle birkaç kez üzerine yazmaktır.
Neden rastgele soruyorsun? USB sürücüsünün çok akıllı bir şekilde yapıldığını ve bir sektörü temizlemek istediğinizi algıladığınızı hayal edin ve bir bitmapte bu sektörün artık ücretsiz olduğu ve daha sonra temizlenmesi gerekebileceğini değiştirdi. Bu, sıfır yazmalarını hızlandırabileceği anlamına geldiğinden, daha verimli görünen bir pendrive yapar , değil mi? Sürücünün bunu yapıp yapmadığını, söylemesi zor.
En uçta sürücü, başlattığınız başlangıçtan ne kadarını hatırlayabiliyordu ve saklaması gereken tek şey, bunu yapmak için yaklaşık 4 baytlık bilgi olduğunu ve yok etmek istediğiniz verilerden hiçbir şeyi temizlememesi. Hepsi çok hızlı görünebilsin diye.
Verilerin üzerine rastgele, öngörülemeyen değerlerin üzerine yazıyorsanız, bu iyileştirmeler mümkün değildir. Bu nedenle, sürücünün flash fişlerinin içinde depolanan verilerin sona erdiğinden emin olması gerekir. Ancak, daha önce kullanılmış olan sektörlerden bazılarının hala eski verilerinizle birlikte bulunmadığını yine de ekarte edemezsiniz, ancak sürücü normalde erişilemediğinden, henüz silmek için önemli sayılmadı. TRIM
Bunu yalnızca gerçek komut garanti edebilir.
Üzerine yazma işlemini rasgele değerlerle otomatikleştirmek için aşağıdakileri kullanarak aramak isteyebilirsiniz shred
:
# shred -vzn88 /dev/myusbdrive
Kullanılan seçenekler:
Mümkünse, hem kullanımı blkdiscard
ve shred
eğer blkdiscard -s
sürücünüze tarafından destekleniyor olmasına rağmen, optimal çözüm yok ama bir yapmaya zarar veremezler shred
firmware hataları ekarte etmek önceden.
Oh, ve temizlemeye çalıştığınız cihazı daima üç kez kontrol edin! dmesg, en son takılan cihazın ne olduğunu görmeye yardımcı olabilir ve ayrıca ls -al
cihaz düğümü numaraları için bile temizlemek istediğiniz cihaz adını ve blkid
çıkış yapmak için hangi bölümlerin mevcut olabileceğini görmek için çıktıyı kontrol etmekte fayda var temizlemek istiyorum
Bu komutları hiçbir zaman kullanmayacağınız bir dahili sürücüde kullanmayın - blkdiscard
yalnızca yarıiletken sürücülerde çalışır, ancak veri kaybetmeyi denemez!
Teknoloji ilerledikçe verileri güvenli bir şekilde temizlemenin başka yolları da olabilir.
Bahsedilen diğer bir yol, komutlarla SECURITY ERASE
verilebilecek ATA komutudur hdparm
. Benim tecrübeme göre, flash sürücülerde gerçekten desteklenmiyor. Kurumsal sabit sürücüler için tasarlanmıştır ve özellik her zaman en düşük maliyetli depolama aygıtlarında uygulanmaz.
TRIM
/ DISCARD
Operasyon daha çok daha yeni SECURITY ERASE
komuta ve hatta ucuz USB sürücüler de, uygulanmakta olan çok daha yüksek bir şansı var, bu yüzden flaş özelliklerine yanıt olarak oluşturuldu, ama yine de her yerde değil. Bir USB dongle'daki bir SD / mikro SD kartı silmek ve blkdiscard
desteklenmediğini bildirmek istiyorsanız, farklı bir dongle / kart okuyucusu denemek ve / veya doğrudan SD / MMC yuvası olan bir makinede yapmak isteyebilirsiniz .
blkdiscard
Debian Jessie'de ve Ubuntu'nun en yeni iki sürümünde yer alıyor, ancak Ubuntu LTS 14.04'te değil. 2.23 blkdiscard
paket util-linux
sürümüne eklendi .
blkdiscard
karşılaştırdığını biliyor musunuz (özellikle link: ata.wiki.kernel.org/index.php/ATA_Secure_Erase ). hdparm
Bunun gerçekten sorunuza bir cevap olmadığını fark ettim, ancak en basit yöntem sürücüyü fiziksel olarak imha etmektir (genellikle bir balyozla tekrar tekrar kırmak hile yapar, ancak endüstriyel parçalama veya yakma da seçeneklerdir). Verilerin kurtarılamayacağından emin olmak için güvenlik konusunda yeterince endişeliyseniz, bu verilerin değeri muhtemelen sürücünün maliyetinden çok daha fazladır ve fiziksel yöntem ucuz ve güvenilirdir.
Kullanılabilir güvenli silme işlevlerinin hemen hemen tamamı, bilgisayarın dosya için kullanılan blokların fiziksel konumlarını [1] belirleyebildiği ve aynı blokların üzerine yazabildiği manyetik medyayı döndürmek için tasarlanmıştır. Katı hal depolama denetleyici yongaları, verinin fiziksel konumunu sistemden soyutlar ve hareket ettirmeyi sever.
Sorunuz gerçekten verilerinizden sonra kimin gittiğine bağlı. Rastgele kayıp veya gündelik hırsızlık konusunda endişeleriniz varsa normal bir format iyi olacaktır. Yüksek motive edici, teknik açıdan yetkin bir kullanıcının emrinde [2] önemli kaynaklara sahip olma konusunda endişe duyuyorsanız, sürücüyü yakınız ve yeni bir sürücüye 10 $ harcayınız.
evet, mantıksal blok eşleme var. Ancak mantıksal A bloğu daima fiziksel B bloğuna eşlenir.
bu kişi sürücüyü açar, denetleyiciyi atlayarak doğrudan bellek çipini karttan çeker ve flash belleği doğrudan okurdu.
Bildiğim en basit ve en hızlı yol tüm sürücüye sıfır (0) yazmaktır:
dd if=/dev/zero of=/dev/sdX
/dev/sdX
başparmak sürücünüzün aygıt düğümü nerede ?
Bazıları, daha fazla yineleme ve diğer desenlerle daha ayrıntılı bir işlem önerebilir. Bunu yapmak için belirli yardımcı programlar mevcuttur. GNU coreutils paketi, shred
özellikle bu amaç için komutu içerir . badblocks -w
E2fsprogs paketinin bir parçası olan birçok kişi de kullanır . FreeBSD'de shred
yardımcı program aranır gshred
ve /usr/ports/sysutils/coreutils
ya /usr/ports/sysutils/fileutils
portlarda ya da portlarda mevcut olmalıdır .
Yeniden kullanmayı planlıyorsanız, bu flash sürücünüzü güvenle silebilmeli: http://linux.die.net/man/1/scrub Eğer değilse, eritebilir ...