0

各位晚上好!我已经为此工作了一段时间,但无法弄清楚。我只是想在附加媒体上安装引导加载程序的工作引导代码,但无法弄清楚!!!我已经尝试过 grub legacy、lilo 和 grub2... 主机系统的驱动器列为 /dev/sda*,目标附加媒体列为 /dev/sdb* 并安装到 /mnt/target。

使用 grub legacy,我试图使用另一个已经安装了它的媒体(/dev/sdc*、/mnt/source)并尝试了一些肮脏的黑客攻击,比如:

dd if=/mnt/source/boot/grub/stage1 of=/dev/sdb bs=446 count=1
dd if=/mnt/source/boot/grub/stage2 of=/dev/sdb bs=512 seek=1

这实际上会启动到一个 grub 界面,您可以在其中输入以下内容:

root (hd0,0)
setup (hd0)

我没有收到任何错误消息,但是 grub 会启动到屏幕上的垃圾然后停止。

使用 lilo,我实际上已经安装了软件包并尝试设置(在创建 lilo.conf 之后):

default=Test1
timeout=10
compact
prompt
lba32
backup=/mnt/target/boot/lilo/MBR.hda.990428
map=/mnt/target/boot/lilo/map
install=/mnt/target/boot/lilo/boot.b
image=/mnt/target/boot/vmlinuz
    label=Test1
    append="quiet ... settime"
    initrd=/mnt/target/boot/ramdisks/working.gz

然后从提示符执行以下命令:

$ lilo -C /mnt/target/boot/lilo/lilo.conf -b /dev/sdb
Warning: /dev/sdb is not on the first disk
Fatal: Sorry, don't know how to handle device 0x0701

使用 grub2,我尝试了类似的方法:

grub-mkconfig -o /mnt/target/boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.11.0-12-generic
Found initrd image: /boot/initrd.img-3.11.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
  No volume groups found
done

我什至无法正确或在正确的位置生成 grub.cfg,所以我放弃了这个...上面列出的条目是针对主机系统的,而不是针对目标系统的。

我可以提供你们需要的任何其他信息来帮助解决这个问题。

-更新-

在与媒体合作了一段时间后,我决定运行“fdisk -l”并得到以下信息:

Partition 1 has different physical/logical beginnings (non-Linux?):
phys(0,32,33) logical(0,37,14)
Partition 1 has different physical/logical endings:
phys(62,53,55) logical(336,27,19)

我还应该注意,当我尝试挂载分区时,我总是会收到一条消息,指出:

EXT4-fs (sdb1): couldn't mount as ext3 due to feature incompatibilities

不确定这是否仅特定于busybox,或者是否与fdisk 输出有关。无论如何,我不知道 fdisk 信息是否表明磁盘几何结构可能存在问题,可能导致所有这些引导加载程序无法工作。

4

1 回答 1

0

grub legacy 的第一阶段引导扇区代码在“stage1”中,grub(2) 在“boot.img”中。第一阶段代码包含要加载到同一磁盘上的下一阶段的地址。

在其他磁盘上,要加载的下一阶段的地址可能(并且可能)不同。

我认为使用 chroot 和 grub-install 会是更好的选择。请参阅Grub2/安装

至于磁盘/分区结构:

dd if=/mnt/source/boot/grub/stage2 of=/dev/sdb bs=512 seek=1

可能已经覆盖了 sdb 的 MBR 中的分区表。

于 2015-09-21T01:07:42.607 回答