= / Dev / sda = / dev / sıfır ise, dd önceden var olan bir bölüm tablosunu silecek mi?


13

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/zeromi?


6
Bu bir /dev/zeroşeyi ddsilmemek değil, üzerine kopyalayarak silmektir. Baytların sıfır olduğu ve /dev/zerobaşka bir sıfır kaynağı yerine sıfır baytın geldiği gerçeği küçük detaylardır.
chrylis -on strike-

2
Sadece bölümleme tablosunu silmek istiyorsanız, silme işlemleri daha güvenilir olabilir.
boru

Yanıtlar:


23

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 ddsen (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/sdaMBR 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.

( ddYine de kullanmak zorunda değilsiniz head -c10000 /dev/zero > /dev/sdaya cat /bin/ls > /dev/sdada 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/zerodeğil kendi içinde yapmak artık herhangi bir normal depolama olduğundan daha şey.)


Yan not: eğer çıktısı /bin/lsyeterince 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/sdaSistemi yeniden önyüklenebilir hale getirmek için yine de bir MBR yeniden yüklemesi (en yaygın olarak ) gereklidir.
peterh - Monica'yı

8
@peterh Çıktının çalıştırılmasından değil , gerçek lsikili 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
n.st

Oh evet, sen de çıktısını kullanabilirsiniz ls. Bir liste /usr/binmuhtemelen 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)
ilkkachu

1
Muhtemelen bs kullanmalı ve bunun için dd ile saymalısınız, aksi takdirde bir süre devam edecektir, sadece sektörü sıfırlamanız gerekir. Eski diskler için 512 bayt. (bkz. aşağıdaki @ n.st) Aslında, bölüm tablosu bunun sonundadır ve önyükleme içeriğini korumak için kopyalamadan önce onaltılık bir düzenleyici ile bir kopya ve sıfır almanız için yeterince küçüktür. Bunun için araçlar da var, NAS disk başlatmanın bunu yapması yaygın.
mckenzm

1
Sadece GPT sürücülerde diskin sonunu da SİLMELİDİR. Uyumlu bir GPT uygulaması, diskin sonundaki ikincil tabloyu kontrol eder ve ilk kısmı da yeniden yazar (zaten sahip olduğunuz her şeyi göz ardı ederek). Bakınız: news.ycombinator.com/item?id=18541493
wbkang

10

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/zeroveya 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, fdiskyeni 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.


1
Neredeyse sağ - (eski, MBR tipi) bölüm tablosu MBR'nin 1BE - 1FD baytlarında bulunur. İlk birkaç bayt IBL'yi (ilk önyükleme yükleyicisi) içerir.
RudiC

@RudiC Güzel bir nokta, şimdi daha açık bir şekilde ifade ettim.
n.st
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.