kickstartの%postスクリプトを使用して、起動可能なUSBからローカルドライブにファイルをコピーします。

kickstartの%postスクリプトを使用して、起動可能なUSBからローカルドライブにファイルをコピーします。

カスタムフォルダを含む起動可能なUSBを作成しました。インストール後、USBからローカルディレクトリにファイルをコピーしたいと思います。以下はkickstartファイルの%post部分です。

%post --nochroot --erroronfail --log=/mnt/sysimage/root/ks-post.log
cp -af /run/install/repo/custom/Router_CFG.ini /var/lib/tftpboot
%end

上記のコードでエラーが発生します。 /var/lib/tftpboot ディレクトリが存在しません。 --nochrootを削除しました。

%post --erroronfail --log=/mnt/sysimage/root/ks-post.log
cp -af /run/install/repo/custom/Router_CFG.ini /var/lib/tftpboot
%end

これでUSBマウントポイントについて文句を言います(/実行/インストール/ストレージ)なし。

その後、USBドライブをマウントしようとします。

%post --erroronfail --log=/mnt/sysimage/root/ks-post.log
mkdir /mnt/myusb
usbblkid=$(blkid -L "CentOS 7 x86_64")
mount $usbblkid /mnt/myusb
cp -af /mnt/myusb/custom/Router_CFG.ini /var/lib/tftpboot
%end

これでエラーが発生します。

mount: Special device /dev/sdc1 doese not exist

ベストアンサー1

最初の試みはほぼ正しい。この試み:

%post --nochroot --erroronfail --log=/mnt/sysimage/root/ks-post.log
cp -af /run/install/repo/custom/Router_CFG.ini /mnt/sysimage/var/lib/tftpboot
%end

を使用すると、%post --nochroot新しいシステムのルートディレクトリが指定されるため、インストールする/mnt/sysimage新しいシステムを参照するすべてのパスの前にプレフィックスを付ける必要があります。インストールメディアはにあります/run/install/repo

削除すると、--nochroot新しいシステムのルートディレクトリが配置されますが、追加の/手順を実行しないとインストールメディアにアクセスできなくなります。これにより、2回目の試行が成功する可能性があります(以前に作成してテストした、動作しているRHEL7.2のインストール後の設定で調整されました)。

%post --erroronfail --log=/root/ks-post.log
mkdir /mnt/myusb
mount /dev/disk/by-label/CentOS*7*x86_64 /mnt/myusb
cp -af /mnt/myusb/custom/Router_CFG.ini /var/lib/tftpboot
umount /mnt/myusb
rmdir /mnt/myusb
%end

おすすめ記事