Ubuntu

Debian/Ubuntu 通過 early/run 命令設置預置鏡像變數

  • August 15, 2018

我需要知道如何通過 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!

引用自:https://serverfault.com/questions/528582