Kickstart安装从USB – Kickstart位置

在添加一个kickstart文件( https://serverfault.com/questions/548405/ )之后,为了让Fedora ISO成功重build(对于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 

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

 linux ks=hd:sdc1:/ks.cfg 

这样做是可行的(提供的U盘按顺序安装,boot – > sdb1,kickstart – > sdc1)。 安装将启动并完成安装而不会出现问题。 显然不得不使用2个笔驱动器有点令人沮丧和不可靠。

有没有解决的办法?

我已经尝试了一切,但只有这似乎工作:把ks.cfg内的initrd。 所以下面的步骤提取initrd,在那里添加ks.cfg,然后重新创build它。 testingCentOS7

首先在您的电脑上安装原始.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 

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

 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 .. 

我能够通过执行以下操作来解决这个问题:

  • 将kickstart文件放置在isolinux目录的顶部,并确保其名称为ks.cfg
  • 我的isolinux.cfg文件如下所示:

     label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/isolinux/ks.cfg inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet 

引用ks.cfg时使用驱动器标签使得生成的iso映像更加便携。 (它可以变成一个可启动的USB驱动器)

我最喜欢的方法是使用UUID,因为它是稳定的。

我使用两个pendrive,第一个是CentOS,第二个是kickstart。 在第二个pendrive上保存kickstart后,我用blkid命令在linux中检查它的UUID:/ dev / sdg1:UUID =“885E:0BD1”TYPE =“vfat”

然后在安装页面中使用它:ks = hd:UUID = 885E:0BD1:/ks.cfg

这真的有用!

你必须指向/ sda1,因为当你从USB启动sda是USB,sdb是第一个硬盘等等

现在,您在ISO映像的大小的USB记忆棒上有一个分区。 只需使用剩余空间在U盘上创build另一个分区,对其进行格式化,然后在其中放置kickstart文件。

UPD:尝试fdisk ,因为parted似乎不工作这种情况下。

UPD1:iso必须和xorriso一起使用

UPD2:请参阅https://serverfault.com/a/551307/134234