CentOS 自定义 ISO 安装 - /dev/root 不存在

CentOS 自定义 ISO 安装 - /dev/root 不存在

我正在为 CentOS 7 构建一个自定义 ISO,现在我只是打算将其作为绝对最小安装(基本上是概念验证)。

我正在通过使用 mkisofs 重新创建 ISO。我输入的命令是:

Mkisofs –o custom.iso –b isolinux.bin –c boot.cat –no-emul-boot –V ‘CentOS’ –boot-load-size 4 –boot-info-table –R –J –v –T isolinux/

这样就成功创建了iso并允许我将其安装到VirtualBox的光驱中。安装后,我在 rdsosreport.txt 中收到一条错误消息:

localhost dracut-initqueue[581]:警告:无法启动。

localhost dracut-initqueue[581]:警告:/dev/root 不存在

到目前为止,我已经: 将 .treeinfo、.discinfo 复制到我制作 iso 的根目录中。使用最新 CentOS-7-x86_64-Minimal-1503-01 以及 /images 和 /LiveOS 目录中的所有 /isolinux 数据创建了子目录 /isolinux。我还将 repo .xml 文件复制到根目录中。

我已经尝试了多种启动文件,但我使用的当前版本是超简约的,只是为了让它在某个时刻发挥作用。

install
cdrom
text
keyboard us
lang en_US.UTF-8
rootpw --iscrypted $6$XRIetvtFyLXRFVzZ$jX7xRxsN6M.DIqwJ9DQui9ytaqK3IAzauSqB4zeRNvMKJo6xCJQAk90XIaxh.SBn0IBtyZM7ZlHK8eSk55VnG0
timezone America/New_York --isUtc
clearpart --none --initlabel

%packages
@core
%end

我的 ks.cfg 位于 isolinux/ks/ks.cfg 中,当我启动到我正在运行的系统时linux inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg

我有点迷失在哪里进一步调查,因为我想做的就是加载一个非常简单的启动文件来让 Linux 进行一键安装。我不一定需要被告知,只是为了指出正确的方向,因为我已经尝试了相当多不同的启动配置并出现了相同的错误。

编辑:我通过编辑 isolinux.cfg 文件并将卷 ID 更改为 mkisofs 中设置的 -V 卷 ID,然后在安装时选择此菜单选项来实现此功能。

append initrd=initrd.img inst.stage2=hd:LABEL=CentOS quiet inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg

由于我的 kickstart 文件太贫乏,我现在正在调查 iso 中存在其他错误。

答案1

如果存在于主文件系统中,并且相关设备预计不会在启动时动态创建,则您可能会成为不正确 mkisof/dev/root的受害者, 并且无法按预期工作。mkisofs

我建议首先检查一下:

find isolinux/ -name root -ls

验证 /dev/root 是否在 master 中,然后调用:

isoinfo -i custom.iso -R -J -find -name root -ls

验证 ISO 映像是否也包含 /dev/root。

答案2

作为旁注,任何时候您看到dracut(例如您的dracut-initqueue)都意味着您位于您的initrd.这initrd是一个小映像,会加载到 RAM 中,负责挂载root分区,然后切换到它并调用init.我的猜测是,您的inst.stage2具体问题是解决问题的,它告诉initrd在哪里可以找到root分区(标记为“CentOS”的分区)。

相关内容