Linux

在 kickstart 的 %post 腳本中將文件從可啟動 USB 複製到本地驅動器

  • April 17, 2019

我已經創建了帶有自定義文件夾的可啟動 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 安裝點(/run/install/repo)不可用。

然後我嘗試安裝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

您的第一次嘗試幾乎是正確的。試試這種方式:

%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,那麼新系統的根目錄將位於/,但如果沒有額外的步驟,安裝媒體將無法訪問。如果這樣做,您的第二次嘗試可能會奏效(改編自我之前製作和測試的工作 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

引用自:https://unix.stackexchange.com/questions/513008