通常,安装 CentOS 7 时,您会下载 ISO,将其写入 U 盘并启动它。但是,我有一个独特的场景,我希望能够将 CentOS 7 安装文件放在系统的/boot/
分区上,并创建一个可以启动到该环境的自定义GRUB2
条目。然后可以使用它在同一系统上安装 CentOS 7。
我知道这听起来很傻,但我有我的理由。
经过一番研究,我试图弄清楚这是如何运作的。以下是我目前的想法:
GRUB2
将加载 CentOS 7 内核vmlinuz
和initrd.img
。- 初始化内核并加载
initrd.img
到内存后,dracut-initqueue
服务启动。 - 然后,进程
dracut-initqueue
将尝试加载stage2
包含安装运行时(在本例中为 Anaconda)的映像。 - 最后,CentOS 安装过程开始。
因此首先我...
- 下载了 ISO,挂载它并将
/images/pxeboot/vmlinuz
、/images/pxeboot/initrd.img
和/LiveOS/squashfs.img
(我相信包含stage2
图像)文件复制到我的/boot/
分区。 - 将以下条目添加到
/etc/grub.d/40_custom
。
menuentry "CentOS 7 Installation" {
set root=(hd0,msdos1)
linux /centos7-install/vmlinuz initrd=initrd.img stage2=/centos7-install/squashfs.img
initrd /centos7-install/initrd.img
}
完成上述操作后,我希望至少可以加载 Anaconda,但它只是加载了“dracut-initqueue 超时”消息。遗憾的是,我没有找到任何日志来提示到底出了什么问题。
有人碰巧知道如何解决这个问题吗?
答案1
替换以下行
linux /centos7-install/vmlinuz initrd=initrd.img stage2=/centos7-install/squashfs.img
和
linux /centos7-install/vmlinuz inst.repo=<source>
完整安装 DVD 上的目录和文件的完整副本。您也可以从“启动”ISO 中提取文件,然后从“DVD”ISO 中复制文件。<source>
请参阅http://host/path
.treeinfo
文档。
当然,“按原样”使用此方法需要网络访问。