Играю с Master boot record. Решил удалить и восстановить на моя машина vmware.
С помощью Ubuntu LiveCD я пытаюсь стереть записи раздела и подпись с помощью команды:
dd if=/dev/zero of=/dev/sda bs=1 skip=446 count=66
или:
dd if=/dev/urandom of=/dev/sda bs=1 skip=446 count=66
Чтобы проверить мои изменения, я проверяю с помощью команды:
dd if=/dev/sda bs=1 skip=446 count=66 | hexdump -C
но я не вижу нулей или случайных символов. Все без изменений.
Я перезагрузил свою машину. Как и ожидалось, я не смог загрузить свою ОС. Я снова загрузил LiveCD и снова не вижу изменений в разделах и подписи MBR, старые данные сохраняются. Что случилось?
bs=1
и count=66
вы удаляете только 66 байтов, код mbr - 446, а подписи - это последние 2 байта
MBR - это не раздел, а первый блок диска, блок 0 размером 512 байт, который делится следующим образом:
446(bood code) + 64(partition table) + 2 (magic number)
ваша проблема в том, что вы используете пропустить
мужчина дд
skip=N skip N ibs-sized blocks at start of input
но вам нужно использовать seek, чтобы перейти к байтам 446 для / dev / sda
seek=N skip N obs-sized blocks at start of output