首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个系统中使用的硬盘上安装grub

在另一个系统中使用的硬盘上安装grub
EN

Unix & Linux用户
提问于 2011-03-08 21:46:43
回答 2查看 3K关注 0票数 3

因此,我在嵌入式系统中使用了512 an的闪存芯片,其分区表如下:

代码语言:javascript
复制
p1: 32MB boot partition
p2: 200MB recovery partition
p3: 200MB normal partition

我在我的ubuntu (开发)框中使用buildroot来编译200 my的ext2映像,以达到“正常”的效果。此时,在我的开发框中,我将创建从buildroot到flash芯片的映像(在/ dev /sdd上插入ide到usb连接器):

代码语言:javascript
复制
dd if=./output/images/rootfs.ext2 of=/dev/sdd3

好的,很好,我可以挂载/dev/sdd3,查看嵌入式设备将要使用的整个文件系统。

现在,我想在这个闪存芯片上安装grub,并且对如何做到这一点感到迷茫。我试过:

代码语言:javascript
复制
grub-install /dev/sdd

但是当我将闪存芯片插入我的嵌入式设备并打开它时,grub不会加载(只是坐在一个闪烁光标的黑色屏幕上--没有错误)。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2011-03-11 18:33:21

经过大量的搜索和大量的猜测和验证,我找到了解决我的问题的方法:

第一个dd rootfs映像buildroot创建:

代码语言:javascript
复制
sudo dd if=./output/images/rootfs.ext2 of=/dev/sdd3

然后,将/boot从sdd3复制到sdd1,创建menu.lst文件,并通过bzImage复制。

最后,运行grub:

代码语言:javascript
复制
sudo grub --device-map=/dev/null
> device (hd0) /dev/sdd
> root (hd0,0)
> setup (hd0)
> quit

把驱动器插进系统,所有的东西都装上了。

票数 3
EN

Unix & Linux用户

发布于 2011-03-08 22:04:57

您需要通知Grub,您的磁盘将是新系统中的主要硬盘,并让它知道在哪里可以找到引导加载程序中不适合引导扇区的部分。Grub作为设备映射调用正在运行的操作系统中的启动时磁盘指定和磁盘指定之间的对应关系。

我认为如果您编辑/media/sdd3/boot/grub/device.map以包含

代码语言:javascript
复制
(hd0) /dev/sdd

然后运行grub-install --root-directory=/media/sdd3/boot/grub/device.map

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/8867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档