Ubuntu 15.04 AMD64サーバーインストール(cmdラインインストール)でpreseed/late_commandに問題があります
d-i preseed/late_command string in-target wget http://url
終了コード1で戻り、ファイルはファイルシステムに存在しません。次のコマンドも失敗します(このファイルを後でダウンロードするスクリプトを作成します):
d-i preseed/late_command string echo "wget http://url"> /target/home/username/getscript.sh
そして、これもテストとして失敗しました:
d-i preseed/late_command string apt-get install -y htop
何か案は?
前もって感謝します!
ティム
私の推測では、取得しようとしているURLはhttps://にリダイレクトされており、チェーン内の少なくとも1つの証明書はインストール環境で信頼されていません。インストール環境はターゲット環境とは異なります。インストール環境は、ブート中にポイントする一時的なカーネルとinitrdであり、ターゲット環境は、実際にインストールされるカーネルとファイルシステムです。
Preseed/late_commandが実行された時点で、ターゲット環境が/ mnt/targetにマウントされ、そこでコマンドを実行するには、chroot /mnt/target
を介してchrootする必要があります。これを実行すると、実行するすべてのコマンドは、インストール環境ではなく、ターゲット環境に影響を与えます。ここで重要なのは、debconfがin-target
コマンドを提供して、ターゲットにchrootし、指定されたコマンドを実行してから、インストール環境に戻ることです。副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example:
d-i preseed/late_command string apt-get install -y htop
インストール環境(「Finished」ターゲット環境ではない)にhtopをインストールしようとします。
d-i preseed/late_command string in-target apt-get install -y htop
完成したターゲット環境にhtopをインストールしようとします。
正しい場所にインストールしているので、証明書がまだ信頼されていない可能性もあります。その場合、いくつかのin-target
コマンドを使用して信頼の問題を修正し、wget
または最後に注意を払い、次のようなものでwgetの信頼チェックを無効にします。
d-i preseed/late_command string in-target wget -O /tmp/post-install.sh "https://foo.bar/postinstall.sh" --no-check-certificate; in-target chmod +x /tmp/post-install.sh; in-target /bin/bash /tmp/post-install.sh;
Ubuntu 16.04でも同様の問題があり、調査の結果、wgetがインストールされていないことがわかったため、preseedテンプレートに追加しました。
d-i pkgsel/include string ... wget