web-dev-qa-db-ja.com

USBからのキックスタートインストール-キックスタートの場所

キックスタートファイル( 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つのペンドライブを使用する必要があることは、ややイライラして信頼性が低くなります。

これを回避する方法はありますか?

12
dooffas

私はすべてを試しましたが、これだけが機能するようです: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 ..
4
sivann

私はこれを次のようにして解決できました:

  • キックスタートファイルを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ドライブに変換できます)

7
Kelly Brazil

私のお気に入りの方法は、安定しているため、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は最初のハードディスクであり、以下同様です。

1
David Sarmiento

これで、ISOイメージのサイズのUSBスティックに1つのパーティションが作成されました。残りのスペースを使用してUSBスティックに別のパーティションを作成し、フォーマットして、そこにキックスタートファイルを配置するだけです。

UPD:fdiskはこのケースでは機能しないようなので、partedを試してください。

UPD1:isoはxorrisoで再取得する必要があります

UPD2:参照 https://serverfault.com/a/551307/134234

0
Veniamin