所以我编译了我的内核和 initrd。然后我如何创建一个图像并安装 grub 以实际从磁盘加载这个图像?我的目标不是用它创建一个可从 USB 启动的 livecd,因为有很多关于它的文章。我的目标是创建一个映像(我知道dd if=/dev/zero of=linux.img ...
我需要创建一个整体映像)并使用 dd 将该映像简单地写入磁盘的第一个扇区,然后让它从那里启动。但是,我的内核和 initrd 在那个 img 中放在哪里?就在彼此身后?该磁盘不会有任何分区。它是一个自定义内核和被剥离的最小 busybox 设置。因此,我不需要 /boot 分区,并且所有“文件”都不会存在于另一个分区上,因为不会有一个或很多文件。
我知道 MBR 是 512 字节,我假设grub
也只是将 512 字节覆盖到第一个扇区。但是我怎样才能在图像上安装 grub 呢?甚至会grub-install linux.img
工作?我知道知道grub
从正常设置中加载内核和 initrd 的位置,因为它们位于 /boot 中,但此“映像”上没有要查看的分区/boot
。我只是将 root 设置为自身吗?
任何帮助,将不胜感激
initrd创建过程:https://pastebin.com/ti9LXakx
initrd 中的当前初始化脚本:
#!/bin/sh
mount -t sysfs sysfs /sys
mount -t proc proc /proc
mount -t devtmpfs udev /dev
exec /bin/sh