Ubuntu
Debian/Ubuntu 通過 early/run 命令設置預置鏡像變數
我需要知道如何通過 di early/command 或 di preseed/run 將其添加到預置中,以
preseed.cfg
從/proc/cmdline
參數中設置我的鏡像。如果我做:
d-i preseed/run string ws/ubuntu.sh #!/bin/sh for x in `cat /proc/cmdline`; do case $x in RPHOST*) eval $x d-i mirror/http/hostname string ${RPHOST} d-i mirror/http/mirror string ${RPHOST} d-i apt-setup/security_host string ${RPHOST} ;; esac; done
它失敗。
它在 CentOS kickstart
%pre
部分執行良好,但我不知道如何通過 debian/ubuntu 預置來做到這一點。
在對 debconf 進行一些研究後,我想出了這個解決方案:
在您的 preseed.cfg 中,您通過以下方式呼叫腳本:
d-i preseed/run string ws/ubuntu.sh // subdir from preseed file location
ubuntu.sh 的內容:
#!/bin/sh echo "Start ubuntu.sh runscript" >> /var/log/syslog for x in `cat /proc/cmdline`; do case $x in RPHOST*) eval $x HOST=$RPHOST echo "d-i mirror/http/hostname string ${HOST}" > /tmp/mirror.cfg echo "d-i mirror/http/mirror string ${HOST}" >> /tmp/mirror.cfg echo "d-i apt-setup/security_host string ${HOST}" >> /tmp/mirror.cfg ;; esac; done // add´s values to /var/lib/cdebconf/question.dat debconf-set-selections /tmp/mirror.cfg
效果很好@ 12.04.2 LTS!