小编Iva*_*dov的帖子

带有内核和 BusyBox 的最小 Linux:忽略 /etc/inittab,只执行 /init

我设法创建了一个小型且功能齐全的实时 Linux CD,其中仅包含内核(使用默认选项编译)和 BusyBox(使用默认选项 + 静态编译,所有小程序都存在,包括/sbin/init)。我没有问题,建立initrd和填充/dev/proc并且/sys也是我在所有与我没有任何问题/initshell脚本。

最近我读到 BusyBox 支持/etc/inittab配置(至少在某种程度上),我非常想执行以下任一操作:

  • 忘记我的/initshell 脚本,完全依赖于/etc/inittab配置。
  • 使用/initshell 脚本和/etc/inittab配置。

现在是实际问题 -/etc/inittab当我的发行版启动时,这似乎完全被忽略了。症状是:

  • 当我删除/init并离开时,/etc/inittab我最终会遇到内核恐慌。我的假设是内核根本不执行/sbin/init,或者/sbin/init没有 find (or read) /etc/inittab
  • 我读到 BusyBox 即使没有/etc/inittab. 所以,我删除了/initand/etc/inittab并猜猜是什么 - 内核再次恐慌。
  • 我试图执行/sbin/init从我的外壳经过几次猜测,其中包括exec /sbin/initsetsid /sbin/initexec setsid /sbin/init我结束了内核崩溃。文件系统上存在和不存在 /etc/inittab 的情况。 …

linux init-script busybox init sysvinit

12
推荐指数
1
解决办法
1万
查看次数

在 UEFI 中使用 ISOLINUX 的正确方法是什么?

很长一段时间以来,我一直试图在Minimal Linux Live的 64 位版本中添加 UEFI 支持,但不幸的是没有取得太大成功。如下图所示,每次尝试通过 UEFI 启动时都会出现严重错误

最小的 Linux Live - UEFI

这是我为了达到这一点所做的:

  1. 我下载了syslinux-6.0.3
  2. 我按照此处的说明操作并复制efi64/efi/syslinux.efi\EFI\BOOT\BOOTX64.EFI.
  3. 我也复制efi64/com32/elflink/ldlinux/ldlinux.e64\EFI\BOOT\LDLINUX.E64.
  4. 我在VirtualBox(版本 5.0.20)中创建了虚拟机并启用了 UEFI。
  5. 我生成了新的 ISO 映像(所有 ISOLINUX 配置文件都在根文件夹中,请参见屏幕截图)并将其作为虚拟机中的主要可启动媒体。
  6. 启动后,我立即收到了您在屏幕截图中看到的错误。
  7. 在这一点上,我不得不重命名\EFI\BOOT\BOOTX64.EFI\EFI\BOOT\BOOTX641.EFI以“中断”引导过程并回退到 UEFI shell。
  8. 在 UEFI shell 中,我使用了该命令edit,然后导航到该\EFI\BOOT文件夹。
  9. 我手动调用BOOTX641.EFI,最终得到了您可以看到的相同错误。

所以,我可以得出结论,我的 EFI 存根正在执行,但在执行过程中出现了一些问题,此时我不知道出了什么问题。

我检查了System Rescue CD的 ISO 映像结构,我知道它支持 UEFI,我注意到以下几点:

  1. EFI 结构只包含一个文件:\efi\boot\bootx64.efi.
  2. 的大小\efi\boot\bootx64.efi是724KB,而Sysl​​inux 6.03中对应的文件efi64/efi/syslinux.efi是~200KB,所以这绝对不是同一个文件。
  3. 当我 …

boot iso syslinux uefi

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

boot ×1

busybox ×1

init ×1

init-script ×1

iso ×1

linux ×1

syslinux ×1

sysvinit ×1

uefi ×1