我设法创建了一个小型且功能齐全的实时 Linux CD,其中仅包含内核(使用默认选项编译)和 BusyBox(使用默认选项 + 静态编译,所有小程序都存在,包括/sbin/init
)。我没有问题,建立initrd
和填充/dev
,/proc
并且/sys
也是我在所有与我没有任何问题/init
shell脚本。
最近我读到 BusyBox 支持/etc/inittab
配置(至少在某种程度上),我非常想执行以下任一操作:
/init
shell 脚本,完全依赖于/etc/inittab
配置。/init
shell 脚本和/etc/inittab
配置。现在是实际问题 -/etc/inittab
当我的发行版启动时,这似乎完全被忽略了。症状是:
/init
并离开时,/etc/inittab
我最终会遇到内核恐慌。我的假设是内核根本不执行/sbin/init
,或者/sbin/init
没有 find (or read) /etc/inittab
。/etc/inittab
. 所以,我删除了/init
and/etc/inittab
并猜猜是什么 - 内核再次恐慌。/sbin/init
从我的外壳经过几次猜测,其中包括exec /sbin/init
,setsid /sbin/init
和exec setsid /sbin/init
我结束了内核崩溃。文件系统上存在和不存在 /etc/inittab 的情况。 …很长一段时间以来,我一直试图在Minimal Linux Live的 64 位版本中添加 UEFI 支持,但不幸的是没有取得太大成功。如下图所示,每次尝试通过 UEFI 启动时都会出现严重错误。
这是我为了达到这一点所做的:
efi64/efi/syslinux.efi
到\EFI\BOOT\BOOTX64.EFI
.efi64/com32/elflink/ldlinux/ldlinux.e64
到\EFI\BOOT\LDLINUX.E64
.\EFI\BOOT\BOOTX64.EFI
为\EFI\BOOT\BOOTX641.EFI
以“中断”引导过程并回退到 UEFI shell。edit
,然后导航到该\EFI\BOOT
文件夹。BOOTX641.EFI
,最终得到了您可以看到的相同错误。所以,我可以得出结论,我的 EFI 存根正在执行,但在执行过程中出现了一些问题,此时我不知道出了什么问题。
我检查了System Rescue CD的 ISO 映像结构,我知道它支持 UEFI,我注意到以下几点:
\efi\boot\bootx64.efi
.\efi\boot\bootx64.efi
是724KB,而Syslinux 6.03中对应的文件efi64/efi/syslinux.efi
是~200KB,所以这绝对不是同一个文件。