當前位置: 首頁>>技術教程>>正文


Debian/Ubuntu通過Early/Run命令設置了預置的鏡像變量

, ,

問題描述

我需要知道如何通過d-i早期/命令或d-i預先/運行將其添加到預播中,以從/proc/cmdline參數將我的鏡像設置在preseed.cfg中。

如果我做:

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時效果很好!

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10354.html,未經允許,請勿轉載。