Ответы:
Будет ли
dd if=/dev/zero of=/dev/sdaуничтожить существующую таблицу разделов?
Да, таблица разделов находится в первой части диска, поэтому при перезаписи она будет уничтожена. Это ddзапишет весь диск, если вы позволите ему работать (так что это займет довольно много времени).
Нечто подобное dd bs=512 count=50 if=/dev/zero of=/dev/sdaбыло бы достаточно, чтобы перезаписать первые 50 секторов, включая таблицу разделов MBR и основной GPT. Хотя, по крайней мере, согласно Википедии, GPT имеет вторичную копию таблицы разделов в конце диска, поэтому перезаписи только части в головке диска может быть недостаточно.
(Вы не должны использовать dd, хотя. head -c10000 /dev/zero > /dev/sdaИли cat /bin/ls > /dev/sdaбудет иметь тот же эффект.)
делает
fdisk /dev/sda g(для GPT) уничтожить нули , написанные / Dev / нуль?
Также да (при условии сохранения изменений).
(Тем не менее, формулировка в заголовке просто сбивает с толку, /dev/zeroсама по себе ничего не делает больше, чем обычное хранилище.)
/bin/lsдостаточно короткие, то операция записи может перезаписать только несколько байтов MBR, и наиболее важная часть (начальный и конечный секторы разделов) может остаться нетронутой. Хотя переустановка MBR (чаще всего grub --install /dev/sda) по-прежнему необходима для повторной загрузки системы.
lsдвоичный файл, а не результат его запуска. Кажется, что наименьший возможный двоичный файл ELF «Hello World» составляет 98 байт (так меньше, чем MBR), но я думаю, что можно с уверенностью предположить, что любой двоичный файл с реальными функциями должен быть больше MBR (общеизвестно, что реализация FreeBSD lsимеет 32784 длина байта, даже достаточно большая, чтобы перезаписать начальную часть GPT). ;)
lsтоже. Список /usr/bin, вероятно, будет достаточно длинным. Я собирался использовать только echoв качестве примера, но IIRC вам нужно почти 500 байтов, чтобы перезаписать таблицу разделов MBR, поэтому набирать ее немного утомительно. (каким бы ни было точное число)
Таблица разделов хранится в начале 1 (логического 2 ) дискового устройства.
Перезаписывая эту область чем-либо (нули от /dev/zero или любые другие данные) заменит таблицу разделов бредом, поэтому больше не будет очевидно, где начинаются разделы на устройстве.
Тем не менее, можно сканировать весь диск и попытаться определить «волшебные байты», которые отмечают начало файловых систем.
И наоборот, если вы используете fdisk (или любой другой инструмент разделения) для создания новой таблицы разделов, инструмент перезапишет первые несколько байтов диска для сохранения этой новой таблицы.
На диске есть только одно начало, поэтому все, что вы делаете последним, будет «прилипать» к нему.
Однако обратите внимание, что некоторые форматы таблиц разделов (например, GPT) сохраняют резервные копии в разных местах (например, в конце диска для GPT), из которых можно восстановить некоторую информацию о разделах.
1: например, в первых 512 байтах для MBR или в первом и последнем 17408 байтах для GPT
2: диск может внутренне переназначить логические блоки на разные части физической среды, но это отображение невидимо (и не важно для) операционная система.
/dev/zeroуничтожение чего-то, аddстирание путем копирования. Факты, что байты оказываются нулевыми и что нулевые байты происходят из/dev/zeroкакого-либо другого источника нулей, являются второстепенными деталями.