キックスタートファイル( https://serverfault.com/questions/548405/ )を追加した後、Fedora ISOを正常に再構築(USBスティック用)することに成功した後、場所の特定に関する問題が発生しましたUSBメディア上のキックスタートファイル。
これがCDROMから行われる場合、このパラメーターをブートに追加するだけで、kickckstartできます。
linux ks=cdrom
これによりキックスタートが行われます(キックスタートファイルの名前が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
構文が正しいことをテストするために、キックスタートファイルを別のUSBスティックに置き、同じコマンドをロードして、新しい場所からks.cfgを取得します。
linux ks=hd:sdc1:/ks.cfg
これは機能します(USBスティックが順番にマウントされている場合、ブート-> sdb1、キックスタート-> sdc1)。インストールは、問題なくインストールを開始し、完了します。明らかに、2つのペンドライブを使用する必要があることは、ややイライラして信頼性が低くなります。
これを回避する方法はありますか?
私はすべてを試しましたが、これだけが機能するようです: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 ..
私はこれを次のようにして解決できました:
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を使用することです。
私は2つのペンドライブを使用します。1つはCentOSで、2つ目はキックスタートで使用します。 2番目のペンドライブにキックスタートを保存した後、blkidコマンドを使用してLinuxでUUIDを確認します:/ dev/sdg1:UUID = "885E:0BD1" TYPE = "vfat"
そしてその後、私はそれをインストールページで使用します:ks = hd:UUID = 885E:0BD1:/ks.cfg
それは実際に動作します!
/ sda1をポイントする必要があります。USBから起動する場合、sdaはUSBであり、sdbは最初のハードディスクであり、以下同様です。
これで、ISOイメージのサイズのUSBスティックに1つのパーティションが作成されました。残りのスペースを使用してUSBスティックに別のパーティションを作成し、フォーマットして、そこにキックスタートファイルを配置するだけです。
UPD:fdisk
はこのケースでは機能しないようなので、parted
を試してください。
UPD1:isoはxorrisoで再取得する必要があります