我正在玩主引导logging。 我决定删除并在我的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
要validation我的更改,我使用命令检查:
dd if=/dev/sda bs=1 skip=446 count=66 | hexdump -C
但是我看不到零或随机字符。 一切都没有改变。
我重新启动了我的机器。 正如所料,我无法启动我的操作系统。 我再次启动LiveCD,再次看到没有更改MBR分区和签名,旧数据被保留。 哪里不对?
bs=1和count=66你只能删除66个字节,mbr代码是446,签名是最后2个字节
MBR不是分区,而是磁盘的第一个块,大小为512字节的块0分为以下几部分:
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