Przed uruchomieniem dd
polecenia polecenie lsblk
zwróciło wynik poniżej:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
Polecenie dd if=/dev/urandom of=/dev/sda conv=fsync status=progress
jest uruchamiane. Jednak urządzenie traci moc i wyłącza się. Po przywróceniu zasilania polecenie lsblk
zwraca następujące dane wyjściowe:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
sda2 8:2 0 487.5G 0 disk
dd
miałoby to prowadzić do partycji, szczególnie jeśli polecenie ma wyczyścić dyski?file /dev/sda*
isudo fdisk -l /dev/sda*
?dd
celem nie jest samo czyszczenie dysków. Zapisywanie losowych danych na dysku może dawać losowe wyniki.Odpowiedzi:
Kilka możliwości:
Linux obsługuje wiele różnych typów tablic partycji, niektóre z nich wykorzystują bardzo mało magicznych bajtów, a następnie łatwo jest błędnie zidentyfikować losowe dane (*) [więc można losowo wygenerować nieco „prawidłową” tablicę partycji].
Niektóre typy tablic partycji mają również kopie zapasowe na końcu dysku (zwłaszcza GPT) i można je było pobrać, jeśli początek dysku zostałby zastąpiony losowymi śmieciami.
Urządzenie nie działa poprawnie i zostało odłączone przed zakończeniem zapisywania danych lub zwraca stare dane, więc tabela partycji przetrwa. Czasami dzieje się tak w przypadku pamięci USB.
...
(*) Utwórz 1000 plików z losowymi danymi i zobacz, co się pojawi:
Celem losowego niszczenia dysku jest usunięcie starych danych na dobre. Nie ma obietnicy, że napęd będzie potem pusty, nieużywany, w nienaruszonym stanie.
Aby to osiągnąć, często wykonuje się zerowanie. Jeśli używasz LVM, LVM normalnie zeruje kilka pierwszych sektorów dowolnego utworzonego LVM, aby stare dane nie przeszkadzały.
Istnieje również dedykowane narzędzie (
wipefs
) do usuwania starych podpisów bajtów, których można użyć do pozbycia się metadanych systemu plików i tablicy partycji.źródło
dd
polecenia generowanie losowych danych po przerwaniu może spowodować, że dane wyglądają jak tablice partycji? Są to także dyski twarde SATA (inne niż SSD).Jak widać tutaj, MBR (Master Boot Record) jest stosunkowo prosty; https://en.wikipedia.org/wiki/Master_boot_record .
Kiedy używasz
/dev/urandom
, zawsze możesz stworzyć coś, co wygląda jak tablica partycji. Rozwiązaniem jest wypełnienie regionów tablicy partycji zerem i użyciedev/urandom
dla reszty.Linux obsługuje także inne dodatkowe formaty dysków, które mogą być potencjalnie wyzwalane, powodując wyświetlanie „nieprawidłowych” partycji podczas wypełniania losowych danych.
źródło
To, co definiuje zbiór 512 bajtów jako główny rekord rozruchowy, to obecność wartości
0x55 0xAA
na końcu. Istnieje szansa 1 na 65 536/dev/urandom
wytworzenia takiej wartości: niezbyt prawdopodobne, ale przez cały czas zdarzają się podobnie nieprawdopodobne rzeczy.(Niektóre inne tabele partycji, takie jak Apple Partition Map , mają podobnie krótkie podpisy. Możliwe, że wygenerowałeś jedną z nich.)
źródło
Czy taka partycja istniała wcześniej na tym dysku? Jeśli dysk używa GPT, być może został przywrócony dodatkowy nagłówek GPT i nadal ma on starą tablicę partycji.
https://en.wikipedia.org/wiki/GUID_Partition_Table
źródło