Chcę wyczyścić dysk SSD ze wszystkich jego partycji i danych, aby móc go ponownie podzielić na partycje (nie jest to ze względów bezpieczeństwa).
Patrzyłem, sudo dd if=/dev/zero of=/dev/sdb bs=1M
ale jeśli to po prostu wypełnia każdą partycję zerami, nie jestem pewien, co chcę zrobić.
Planuję uruchamiać to polecenie dość często i nie chcę wyczerpać zapisów mojego dysku SSD. Czy ktoś mógłby mi doradzić, jak rozwiązać ten problem?
Odpowiedzi:
Na dysku SSD: możesz przycinać całe dyski lub partycje za pomocą
blkdiscard
. Nie jest to zbyt bezpieczne, ale praktycznie natychmiastowe (dysk jedynie zaznacza wszystkie komórki jako nieużywane).Dla bezpieczeństwa: użyj szyfrowania całego dysku. Nie przejmuj się czyszczeniem całego dysku, jeśli jest zaszyfrowany - wystarczy tylko wyczyścić obszar zawierający twoje klucze (np. Pierwsze 1–2 MiB każdej zaszyfrowanej partycji).
W przypadku partycjonowania: Znowu nie zawracaj sobie głowy usuwaniem wszystkich danych. Musisz tylko zniszczyć systemy plików za pomocą
wipefs
, a następnie wyszorować pierwszy 1 MB na dysku, aby usunąć resztki programów ładujących. Po sformatowaniu partycji przy użyciumkfs
system operacyjny po prostu przyjmie, że jest całkowicie pusty.(W rzeczywistości w Linuksie mkfs.ext4 automatycznie PRZYCINA całą partycję przed jej sformatowaniem).
źródło
mkfs
będzie go kosza i tak jednak różne sytuacje dziwne. Nie stało -wipefs
istnieje dlatego, że była potrzebna.)man wipefs
mówi? (Wskazówka: spójrz na pierwszy przykład w sekcji przykładów strony podręcznika)blkdiscard
byłoby również fajne, ponieważ tworzyłoby puzzle z reszty dysku, nawet gdyby atakujący znał klucz (zakładając, że starego mapowania nie można również odzyskać). „następnie wyszoruj pierwszy 1 MiB dysku, aby usunąć resztki bootloaderów” - dodatkowa sekcja służy tylko jako przepełnienie pierwszego 512B. Jeśli wyczyścisz pierwsze 512B, reszta 1M nie zaszkodzi.Jak wspomina Kamil Maciorowski , najlepszym sposobem, przy jak najmniejszym zużyciu do zapisu, usunięcia całego dysku, jest użycie polecenia „bezpiecznego kasowania” ATA. To poinstruuje sprzęt, aby wykonał jedno pełne czyszczenie, zamiast wielokrotnie zastępować komórki, jak w przypadku narzędzi takich jak
shred
. Można to zrobić tylko dla całego dysku, jeśli chcesz selektywnie wyczyścić partycje, zobacz odpowiedź grawity (blkdiscard
)Dokładna implementacja polecenia zależy od sprzętu.
Większość dysków SSD wykorzystuje masowy sygnał elektryczny do czyszczenia całych układów w sposób „wszystko albo nic”. Powoduje to (normalne) zużycie zapisu, ale tylko w minimalnym możliwym stopniu (~ pojedynczy cykl zapisu).
Samoszyfrujące dyski SSD zwykle usuwają klucz szyfrujący z układu kontrolera (naprawdę natychmiast). Dyski samoszyfrujące zawsze szyfrują, nawet po wyjęciu z pudełka (z domyślnym kluczem fabrycznym). Dlatego wyczyszczenie klucza pozostawia tylko nieszyfrowalną zbieraninę na układach pamięci flash, nawet jeśli nie ustawiono klucza użytkownika.
dd if=/dev/zero
.Proces jest dość dobrze udokumentowany tutaj: https://www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (Osobiście korzystałem z tego procesu wielokrotnie na własnych dyskach SSD podczas ponownej instalacji systemu operacyjnego)
Edytuj: jeśli jesteś zainteresowany implikacjami bezpieczeństwa: sprawdź pytanie Security.SE
źródło
Pamiętając, że poprosiłeś o rozwiązanie, jak szybko wyczyścić dyski Zamień / dev / sdx na dysk, najprawdopodobniej / dev / sda
Spowoduje to wyczyszczenie tablicy partycji.
Spowoduje to wyczyszczenie całego dysku, zajmie to chwilę.
źródło
cat
. Użyj,dd
aby poprawić wydajność.dd
używa buforów 512-bajtowych, co zniszczy wydajność ... Coreutils (cp
i prawdopodobnie takżecat
) mają bardziej rozsądny rozmiar bufora. Wdd
każdym razie nic z tego nie sprawia, że jest z natury szybsze.dd
. Ostatnim razem, gdy próbowałem użyćcat
obrazu do zapisania na dysku, było ono znacznie wolniejsze niż przy użyciudd
odpowiedniego rozmiaru bufora.