Odpowiedzi:
Czy
dd if=/dev/zero of=/dev/sda
wyczyści istniejącą tabelę partycji?
Tak, tablica partycji znajduje się w pierwszej części dysku, więc zapisanie jej zniszczy ją. Że dd
napisze na cały napęd jeśli pozwolisz działać (tak to zajmie trochę czasu).
Coś takiego dd bs=512 count=50 if=/dev/zero of=/dev/sda
wystarczyłoby do zastąpienia pierwszych 50 sektorów, w tym tablicy partycji MBR i podstawowego GPT. Chociaż przynajmniej według Wikipedii, GPT ma dodatkową kopię tabeli partycji na końcu dysku, więc nadpisanie tylko części w głowie dysku może nie wystarczyć.
(Nie musisz jednak używać dd
. head -c10000 /dev/zero > /dev/sda
Lub cat /bin/ls > /dev/sda
miałby ten sam efekt.)
czy
fdisk /dev/sda g
(dla GPT) wymazuje zera zapisane przez / dev / zero?
Również tak (pod warunkiem, że zapiszesz zmiany).
(Jednak frazowanie w tytule jest po prostu mylące, /dev/zero
samo w sobie nie robi nic więcej niż zwykłe przechowywanie.)
/bin/ls
są wystarczająco krótkie, wówczas operacja zapisu może zastąpić tylko kilka bajtów MBR, a najważniejsza część (początkowy i końcowy sektor partycji) może pozostać nienaruszona. Chociaż ponowna instalacja MBR (najczęściej grub --install /dev/sda
) jest nadal wymagana, aby system mógł zostać ponownie uruchomiony.
ls
plik binarny, a nie dane wyjściowe z jego uruchomienia. Najmniejszy możliwy plik binarny ELF „Hello World” wydaje się mieć 98 bajtów (czyli mniej niż MBR), ale myślę, że można bezpiecznie założyć, że każdy plik binarny z rzeczywistymi funkcjami powinien być większy niż MBR (notorycznie mała implementacja FreeBSD ls
to 32784 bajty długie, nawet wystarczająco duże, aby zastąpić część początkową dysku GPT). ;)
ls
. Lista /usr/bin
prawdopodobnie byłaby wystarczająco długa. Chciałem użyć tego echo
jako przykładu, ale IIRC potrzebujesz prawie 500 bajtów, aby zastąpić tablicę partycji MBR, więc pisanie jest trochę męczące. (bez względu na dokładną liczbę)
Tablica partycji jest przechowywana w pobliżu początku 1 urządzenia dyskowego (logicznego 2 ).
Zastąpienie tego obszaru czymkolwiek (zerami /dev/zero
lub innymi danymi) zastąpi tablicę partycji bełkotem, więc nie będzie już oczywiste, gdzie zaczynają się partycje na urządzeniu.
Nadal można skanować cały dysk i próbować zidentyfikować „bajty magiczne”, które oznaczają początki systemów plików.
I odwrotnie, jeśli użyjesz fdisk
(lub innego narzędzia do partycjonowania), aby utworzyć nową tablicę partycji, narzędzie zastąpi kilka pierwszych bajtów dysku, aby zapisać tę nową tabelę.
Dysk ma tylko jeden początek, więc cokolwiek zrobisz jako ostatnie, zostanie na nim „przyklejone”.
Należy jednak pamiętać, że niektóre formaty tablic partycji (jak GPT) przechowują kopie zapasowe w różnych miejscach (np. Na końcu dysku dla GPT), z których można odzyskać niektóre informacje o partycjach.
1: np. W pierwszych 512 bajtach dla MBR lub w pierwszych i ostatnich 17408 bajtach dla GPT
2: Dysk może wewnętrznie odwzorowywać logiczne bloki na różne części nośnika fizycznego, ale to mapowanie jest niewidoczne dla (i nieważne dla) system operacyjny.
/dev/zero
wymazuje czegoś, todd
wymazuje przez skopiowanie. Fakty, że bajty są zerowe i że bajty zerowe pochodzą z/dev/zero
jakiegoś innego źródła zer, są drobnymi szczegółami.