从USB进行Kickstart安装-Kickstart位置


12

在添加kickstart文件(/server/548405/)之后设法使Fedora ISO成功重建(对于USB记忆棒)后,我现在在USB介质上定位kickstart文件时遇到了问题。

通过CDROM完成此操作后,只需在启动时添加以下参数即可进行kickckstart:

linux ks=cdrom

这将启动(假设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=cdrom,对吧?
迈克尔·汉普顿

是的,我已经完成了,但是没有找到kickstart文件。
dooffas

您是否尝试过linux ks = hd:sbd1 / ks.cfg?
Archemar 2014年

这里概述的步骤是我用来构建USB密钥的步骤。
Vitalii

Answers:


4

我已经尝试了所有方法,但只有这似乎可行:将ks.cfg放在initrd中。因此,以下步骤提取了initrd,在其中添加ks.cfg,然后重新创建。经过CentOS7测试

首先将原始.iso映像安装到您的PC上,然后将其内容复制到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 ..

这与我在链接文章(重建Fedora 19 ISO为USB安装添加Kickstart)中所做的非常相似。感谢您的回复。
dooffas

7

我可以通过执行以下操作解决此问题:

  • 将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驱动器)


2

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

我使用两个Pendrive,第一个使用CentOS,第二个使用kickstart。在第二个Pendrive中保存kickstart之后,我使用blkid命令在Linux中检查其UUID:/ dev / sdg1:UUID =“ 885E:0BD1” TYPE =“ vfat”

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

真的行!




0

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

UPD:请尝试fdisk,因为parted在这种情况下似乎不起作用。

UPD1:iso必须与xorriso一起接收

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


我也尝试过此方法,请参阅我的其他文章:serverfault.com/questions/549158
dooffas 2013年

@dooffas我看到了,您对gparted并不幸运。您真的尝试过fdisk吗?我用lvm卷重新创建了您的情况,至少fdisk成功创建了第二个分区。
Veniamin

我确实尝试了fdisk,但是它无法正确读取分区表。它认为保存Fedora映像的分区几乎占用了8GB,这是不正确的。似乎将fedora映像写入驱动器会损坏分区表。
dooffas,2013年

@dooffas抱歉,在我的实验室中,我用xorriso重新创建了iso,但忘了注意它。请找到我的更新。
Veniamin

这行不通。即使在创建分区之后,整个磁盘也会由安装程序安装,并且无法使用分区。
sivann 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.