linux – 从USB安装Kickstart – Kickstart位置

在添加kickstart文件( https://serverfault.com/questions/548405/)之后设法成功重建Fedora ISO(用于USB记忆棒)之后,我现在遇到了在USB媒体上定位kickstart文件的问题.

当从CDROM完成此操作时,您可以通过将此参数添加到boot来简单地启动:

linux ks=cdrom

这将是kickstart(提供kickstart文件名为ks.cfg并且位于磁盘的根目录中).

现在,显然这对于​​USB驱动器会有所不同,所以根据我的研究,我认为这条线路可以完成这项工作:

linux ks=hd:sdb1:/ks.cfg

显然这不起作用.我收到错误通知我此驱动器已安装且无法重新安装.

编辑:实际错误消息:

mount: /dev/sdb1 is already mounted or /run/install/tmpmnt0 busy
Warning: Can't get kickstart from /dev/sdb1:/ks.cfg

为了测试语法是否正确,我将kickstart文件放在另一个USB记忆棒上,并加载相同的命令从新位置抓取ks.cfg:

linux ks=hd:sdc1:/ks.cfg

这确实有效(提供USB记忆棒按顺序安装,启动 – > sdb1,kickstart – > sdc1).安装将启动并完成安装,没有任何问题.显然,不得不使用2个笔式驱动器有点令人沮丧和不可靠.

有没有解决的办法?

解决方法

我已经尝试了一切,但只有这似乎有效:将ks.cfg放在initrd中.所以下面的步骤提取initrd,在那里添加ks.cfg,然后重新创建它.用CentOS7测试

首先将原始.iso映像安装到您的电脑上,然后将其内容复制到tmp /

然后,

#Keep the original file
cp -ai tmp/isolinux/initrd.img initrd.img.orig
mkdir irmod
cd irmod

#Extract initrd in irmod/
xz -d < ../tmp/isolinux/initrd.img | cpio --extract --make-directories --no-absolute-filenames

#Add the ks.cfg in there
cp ../tmp/ks.cfg .

# Recreate the initrd.img inside isolinux/
find . | cpio -H newc --create | xz --format=lzma --compress --stdout > ../tmp/isolinux/initrd.img

#cleanup
cd ..
rm -r irmod

# Add  ks=file:/ks.cfg to the boot parameters in isolinux.cfg. you can do it by hand,this is an example for our own isolinux.cfg
sed -s -i 's|ks=.*ks\.cfg ksdevice=link|ks=file:/k1.cfg|' ../tmp/isolinux/isolinux.cfg ../isolinux.cfg

然后像往常一样继续创建图像:

cd tmp/

imgname="inaccess-centos7-ks1-v1.iso"
xorriso -as mkisofs -R -J -V "CentOS 7 x86_64" -o "../${imgname}" \
        -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4  \
        -boot-info-table -isohybrid-mbr /usr/share/syslinux/isohdpfx.bin .
cd ..

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...