因此,我在嵌入式系统中使用了512 an的闪存芯片,其分区表如下:
p1: 32MB boot partition
p2: 200MB recovery partition
p3: 200MB normal partition我在我的ubuntu (开发)框中使用buildroot来编译200 my的ext2映像,以达到“正常”的效果。此时,在我的开发框中,我将创建从buildroot到flash芯片的映像(在/ dev /sdd上插入ide到usb连接器):
dd if=./output/images/rootfs.ext2 of=/dev/sdd3好的,很好,我可以挂载/dev/sdd3,查看嵌入式设备将要使用的整个文件系统。
现在,我想在这个闪存芯片上安装grub,并且对如何做到这一点感到迷茫。我试过:
grub-install /dev/sdd但是当我将闪存芯片插入我的嵌入式设备并打开它时,grub不会加载(只是坐在一个闪烁光标的黑色屏幕上--没有错误)。
发布于 2011-03-11 18:33:21
经过大量的搜索和大量的猜测和验证,我找到了解决我的问题的方法:
第一个dd rootfs映像buildroot创建:
sudo dd if=./output/images/rootfs.ext2 of=/dev/sdd3然后,将/boot从sdd3复制到sdd1,创建menu.lst文件,并通过bzImage复制。
最后,运行grub:
sudo grub --device-map=/dev/null
> device (hd0) /dev/sdd
> root (hd0,0)
> setup (hd0)
> quit把驱动器插进系统,所有的东西都装上了。
发布于 2011-03-08 22:04:57
您需要通知Grub,您的磁盘将是新系统中的主要硬盘,并让它知道在哪里可以找到引导加载程序中不适合引导扇区的部分。Grub作为设备映射调用正在运行的操作系统中的启动时磁盘指定和磁盘指定之间的对应关系。
我认为如果您编辑/media/sdd3/boot/grub/device.map以包含
(hd0) /dev/sdd然后运行grub-install --root-directory=/media/sdd3/boot/grub/device.map。
https://unix.stackexchange.com/questions/8867
复制相似问题