我已经构建了一个从 Ubuntu 核心衍生的 1.5G USB 可启动系统(类似于此例子)。它使用 syslinux 在我们的大多数 Intel 硬件上启动。Intel iMac 是个例外(带有 GPT 或 MBR 分区的 grub EFI 有时只能启动,而且只在少数 iMac 上启动)。因此,我想将 USB 系统迁移到可启动 DVD。哪种方法最好?
将文件从 USB 上的根分区和启动分区复制到一个目录,添加 isolinux 配置并调用 mkisofs。我尝试过,但收效甚微:
- 内核和 initrd 正在运行,但在 initrd 的 init 脚本的最后,当尝试将控制权从基于 initrd ram 的文件系统传递到 DVD 上的文件时,“exec run-init”中的 chroot 失败,找不到 /sbin/init,导致内核崩溃。(在 Ubuntu 12.04 上的 virtualbox 上构建和测试。)
- 症状与描述的非常相似:神秘
仅将 USB 棒的启动分区复制到一个目录中,添加要在启动时挂载的根分区的映像(用 dd 获取)(如何?何时?),添加 isolinux 配置并调用 mkisofs。
- 下一步要尝试一下。
- 如何安装 CD 上的根映像(内核参数或修补 initrd.img 或......?)?
- 交接 dev/ 时出现问题?(CD 上的根文件系统映像必须保持挂载状态……)
使用 memdisk:在使用 isolinux 启动时,使用 memdisk 将所有文件的映像从 USB 棒传输到 RAM 并启动。可能不切实际:
- 我们的某些系统没有足够的 RAM(512M)。(图像可能缩小到约 300 M。)
- 每次启动可能都要花费很长时间。
其他?
哪种方式最有前景(甚至可行)?