Debian / Ubuntu通过早/运行命令设置镜像variables

我需要知道如何通过di早期/命令或di preseed /运行来将其添加到preseed.cfgpreseed.cfg/proc/cmdline参数中将我的镜像设置在preseed.cfg

如果我做:

 di preseed/run string ws/ubuntu.sh #!/bin/sh for x in `cat /proc/cmdline`; do case $x in RPHOST*) eval $x di mirror/http/hostname string ${RPHOST} di mirror/http/mirror string ${RPHOST} di apt-setup/security_host string ${RPHOST} ;; esac; done 

它失败。

它在CentOS kickstart %pre部分运行良好,但是我不知道如何通过debian / ubuntu预置。

经过对debconf的一些研究,我想出了这个解决scheme:

在你的preseed.cfg中,你可以通过以下方式调用脚本:

 di 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 "di mirror/http/hostname string ${HOST}" > /tmp/mirror.cfg echo "di mirror/http/mirror string ${HOST}" >> /tmp/mirror.cfg echo "di 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!