通过一些遗留代码,在将系统的.iso解压缩到硬盘驱动器(从活动cd中)后,我使用dd保存和恢复引导扇区的(部件)。
我使用以下命令保存mbr (前446个字节,因此除了分区表之外的所有内容):
dd if=/dev/sda of=/mnt/mbr.bin bs=446 count=1然后还原硬盘的.iso,然后使用以下命令恢复引导扇区:
dd if=/mnt/mbr.bin of=/dev/sda bs=446 count=1现在,由于我遇到的问题是,在安装windows之前,在使用了上述方法之后,我可以在linux启动和windows启动之间进行选择,因此我猜那里出现了严重的问题。
我在这里的问题是:上面这两个命令是否足以保存,然后恢复引导扇区?
发布于 2015-12-31 17:30:11
MBR基本上是硬盘第一个扇区上的512字节段,它由3部分组成:引导代码(446字节长)、分区表(64字节长)和引导代码签名(2字节长)。不知道你到底出了什么问题,但这对我有用:
这将明确地备份引导代码本身,而不是其他任何内容:
根@主机# dev=/dev/sda of=/tmp/mbr.img_ bs=446 count=1
接下来,要清除MBR,包括不希望与引导代码签名一起保存的分区表:
根@主机# dd if=/dev/零of=/dev/sda bs=512 count=1
现在恢复引导代码:
根@主机# dd =/tmp/mbr.img_backup of=/dev/sda bs=446 count=1
发布于 2020-08-19 04:06:58
据我所知,操作系统包文件中的"format“命令创建了Boot扇区。当操作系统重新启动时,它会在固定位置写入11个字符长的"io sys“和"msdos sys”文件。它在根目录中找到io.sys和msdos.sys文件,并加载操作系统并运行。
https://unix.stackexchange.com/questions/252509
复制相似问题