我一直在尝试创建一个启动盘(类似于 live-cd),它只加载到内存中而无需安装磁盘。我的步骤如下,但当我使用 cd 启动时,我得到:
Kernel Panic - not syncing: VFS: unable to mount root fs on unknown-block (9,1)
以下是我创建启动盘的步骤:
使用mkinitrd工具创建ramdisk,然后解压:
mkinitrd myrd $(uname -r)
mkdir myrdroot && cd myrdroot
dd if=../myrd bs=1k | gunzip | cpio -idGit 摆脱了 nash、init(nash 脚本)和 modprobe(nash 的符号链接)
rm -f 初始化 bin/nash bin/modprobe
安装 busybox(Busybox 是默认配置,除了它是静态链接的)。Busybox 将在 myrd 中创建一个 linuxrc 和一个 sbin/init。
pushd〜/ busybox
make CONFIG_ROOT = / path / to / myrd安装
popd重新捆绑 inird:
查找 . | cpio -n -o | gzip -9 > ../myrd.img
然后将此 ramdisk 与 CD 上的 ISOLINUX 一起使用。我复制与 $(uname -r) 匹配的内核,并配置 ISOLINUX 以使用 ramdisk 启动内核。
答案1
问题似乎与 CPIO 存档格式有关。当我使用 ext2/gzip 格式创建 ramdisk 时,它可以正常工作。