初始的内存是否嵌入到bzImage中?
如何将rootfs.cpio作为内存磁盘加载并切换root?
发布于 2014-09-24 11:00:18
引导加载程序(例如lilo或GRUB )加载cpio initramfs (除非在内核中作为blob嵌入)或initramd,并在引导它时将其传递给内核。
它通常是使用引导加载器配置文件中的initrd指令指定的。
如果使用initrd,通常会在内核命令行中将根文件系统设备指定为root=/dev/ram0 (例如,使用append指令lilo指定)。
在解压缩/挂载initramfs/initrd之后,内核将执行/linuxrc (如果它存在),它通常是一个安装真正根文件系统并使用pivot_root (旧版本)或switch_root (更新)切换到它的脚本。
可以将init命令行参数设置为要执行的另一个可执行文件/脚本,而不是linuxrc。尝试在下一次引导时将init=/bin/sh传递给内核。
发布于 2014-09-24 11:33:21
最初的ramdisk并不是传统上嵌入在bzImage中的,尽管它可以嵌入。相反,它存储在第二个文件中,并使用init指令指定。
您的rootfs.cpio文件用于切换根的方法取决于生成该文件的任何方法,但传统上,pivot_root /new_root或switch_root /new_root用于切换到新的根。
https://unix.stackexchange.com/questions/155505
复制相似问题