Will # dd if=/dev/zero of=/dev/sda
önceden varolan bölüm tablosunu silip?
Yoksa başka bir şekilde mi, yani
# fdisk /dev/sda
g
(GPT için)
tarafından yazılan sıfırlar silinsin /dev/zero
mi?
Will # dd if=/dev/zero of=/dev/sda
önceden varolan bölüm tablosunu silip?
Yoksa başka bir şekilde mi, yani
# fdisk /dev/sda
g
(GPT için)
tarafından yazılan sıfırlar silinsin /dev/zero
mi?
Yanıtlar:
Will
dd if=/dev/zero of=/dev/sda
önceden varolan bölüm tablosunu silip?
Evet, bölme tablosu sürücünün ilk bölümünde, bu yüzden üzerine yazmak onu yok edecektir. Yani dd
sen (bu oldukça uzun bir zaman alacak böylece) çalışmasına izin eğer tüm sürücü üzerinde yazacak.
dd bs=512 count=50 if=/dev/zero of=/dev/sda
MBR bölüm tablosu ve birincil GPT de dahil olmak üzere ilk 50 sektörün üzerine yazmak için benzer bir şey yeterli olacaktır. En azından Wikipedia'ya göre, GPT'nin sürücünün sonunda bölüm tablosunun ikincil bir kopyası var , bu nedenle sürücünün kafasındaki kısmın üzerine yazmak yeterli olmayabilir.
( dd
Yine de kullanmak zorunda değilsiniz head -c10000 /dev/zero > /dev/sda
ya cat /bin/ls > /dev/sda
da aynı etkiye sahip olacaksınız .)
yapar
fdisk /dev/sda g
/ dev / zero tarafından yazılan sıfır silip (GPT) var mı?
Ayrıca evet (değişiklikleri kaydetmeniz şartıyla).
(Ancak, başlığında cümleleme sadece kafa karıştırıcı /dev/zero
değil kendi içinde yapmak artık herhangi bir normal depolama olduğundan daha şey.)
/bin/ls
yeterince kısa ise, yazma işlemi MBR'nin sadece birkaç baytının üzerine yazabilir ve en önemli kısım (bölümlerin başlangıç ve bitiş sektörleri) bozulmadan kalabilir. grub --install /dev/sda
Sistemi yeniden önyüklenebilir hale getirmek için yine de bir MBR yeniden yüklemesi (en yaygın olarak ) gereklidir.
ls
ikili dosyayı yönlendirdiklerini unutmayın . Mümkün olan en küçük "Merhaba Dünya" ELF ikili dosyası 98 bayt (MBR'den daha az) gibi görünüyor , ancak gerçek özelliklere sahip herhangi bir ikili dosyanın MBR'den daha büyük olması gerektiğini düşünmek güvenli (bence küçük FreeBSD uygulaması 32784 bayt uzunluğunda, GPT'nin disk başlangıç kısmının üzerine yazacak kadar büyük). ;)ls
ls
. Bir liste /usr/bin
muhtemelen yeterince uzun olacaktır. Ben sadece echo
örnek olarak kullanacaktım , ama IIRC bir MBR bölümleme tablosunun üzerine yazmak için neredeyse 500 bayta ihtiyacınız var, bu yüzden yazmak biraz yorgun. (tam sayı ne olursa olsun)
Bölümleme tablosu (mantıksal 2 ) disk aygıtının başlangıcında 1 saklanır .
Bu alanın üzerine herhangi bir şey (üzerine sıfır /dev/zero
veya başka bir veri) yazmak, bölüm tablosunu anlamsızca değiştirir, böylece aygıttaki bölümlerin nerede başladığı artık açık olmayacaktır.
Yine de tüm diski tarayabilir ve dosya sistemlerinin başlangıcını işaretleyen "sihirli baytları" tanımlamaya çalışabilirsiniz.
Tersine, fdisk
yeni bir bölümleme tablosu oluşturmak için (veya başka bir bölümleme aracı) kullanırsanız, araç yeni tabloyu depolamak için diskin ilk birkaç baytının üzerine yazar.
Diske sadece bir başlangıç var, bu yüzden en son ne yaparsanız oraya "yapışır".
Bununla birlikte, bazı bölüm tablosu biçimlerinin (GPT gibi) yedek kopyaları, bölüm bilgilerinin bir kısmının kurtarılabileceği farklı yerlerde (örneğin GPT için diskin sonunda) tutacağını unutmayın.
1: örneğin bir MBR için ilk 512 baytta veya GPT için ilk ve son 17408 baytta
: Sürücü mantıksal blokları fiziksel ortamın farklı bölümlerine dahili olarak yeniden eşleştirebilir, ancak bu eşleme görünmezdir (ve önemsizdir) isletim sistemi.
/dev/zero
şeyidd
silmemek değil, üzerine kopyalayarak silmektir. Baytların sıfır olduğu ve/dev/zero
başka bir sıfır kaynağı yerine sıfır baytın geldiği gerçeği küçük detaylardır.