与嵌入式和外部initramfs一起执行init的区别?
我正在构建一个非常小的Linux系统,它仅由内核(v4.1-rc5)和一个填充有busybox(v1.23.2)的initramfs组成。它在大多数情况下都能正常工作,但是无论我使用的是嵌入式initramfs还是外部的initramfs,我都在/ init中观察到命令执行行为的差异。 / init脚本是: #!/bin/sh dmesg -n 1 mount -t devtmpfs none /dev mount -t sysfs none /sys mount -t proc none /proc echo "Welcome" while true do setsid cttyhack /bin/sh done 然后,我将内核.config中的CONFIG_INITRAMFS_SOURCE选项设置为包含initramfs所有文件夹的目录,或者运行 find . | cpio -H newc -o | gzip > ../rootfs.cpio.gz 建立它。 然后,无论是否设置CONFIG_INITRAMFS_SOURCE,编译内核时,最终都会遇到系统的两个变体: 嵌入了initramfs的bzImage bzImage + rootfs.cpio.gz(外部initramfs) …