Ubuntu

故意刪除虛擬機上的 MBR,但保留條目

  • August 6, 2017

我正在玩主引導記錄。我決定在我的 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)

你的問題是你正在使用跳過

男人dd

skip=N skip N ibs-sized blocks at start of input

但是您需要使用 seek 轉到 /dev/sda 的字節 446

seek=N skip N obs-sized blocks at start of output

引用自:https://serverfault.com/questions/703068