preseed.cfg
を使用して、VirtualBoxにDebian Wheezy(netinstall)をインストールしています。
d-i netcfg/get_hostname string somehost
とd-i netcfg/get_hostname string somehost
の両方を試しましたが、どちらの場合もホストは「debian」として設定されます。両方を同時に試しましたが、それでもホストは「debian」に設定されています。
事前設定ファイルに関するDebianのガイド からの抜粋:
DHCPサーバーが返すもの、IPの逆引きDNSエントリが何であるかに関係なく、ホスト名を強制したい場合は、コメントを外して次の行を調整します。
d-i netcfg/hostname string somehost
これはバグですか、それとも不運ですか?
解決策ではなく回避策
私も同様の問題に直面しており、pressed.cfg
の最後に追加した次の行を使用して、インストール後にホスト名を設定することで回避しました。
d-i pressed/late_command string\
in-target /bin/bash -c 'echo desired_name > /etc/hostname'
in-target
は、/
がインストール時に通常/target
として表示されるターゲットファイルシステム(最終的にルートファイルシステムになる)を参照するために必要です。
ネットブートしている場合(PXEなどを使用)、ホスト名はpreseedファイルを取得する前に設定されるため、次のようにカーネルコマンドラインでホスト名を設定する必要があります。
hostname=myhostname domain=mydomain
Debian-installerマニュアルの 付録Bの紹介 (シード前)から:
事前シード方式間の重要な違いは、事前構成ファイルがロードされて処理される時点です。 initrdのpreseedの場合、これはインストールの開始時、最初の質問が尋ねられる前です。ファイルのpreseedの場合、これはCDまたはCDイメージがロードされた後です。ネットワークのpreseedの場合は、ネットワークが構成された後でなければなりません。
この問題は、ネットインストールコマンドラインで(pxelinux.cfgディレクトリエントリを介して)カーネルに渡していた引数からpriority=critical
を削除すると解消されたことがわかりました。
これは、ホスト名を尋ねる質問に「クリティカル」よりも低い優先度が与えられているため、デフォルトの回答が入力されることを意味すると思います。
この変更を行うと、インストールプロセスの後半で、他の質問に対して重要度の低い他の回答を提示する必要がある場合があります...
これはdebian-installerの制限です。 preseed設定ファイルをネットワークからフェッチするまでに、netcfg
はすでにその仕事を終えてなくなっているため、値を再フェッチしません。
やや公式のkludge はpreseed.cfg
行で使用します:
d-i preseed/run string http://example.net/d-i/jessie/preseed.sh
そしてそのpreseed.sh
でそれから指定します:
#!/bin/sh
kill-all-dhcp; netcfg
このようにして、ネットワークが確立され、preseed.cfg
がフェッチされると、preseed.sh
もフェッチされて実行されるため、netcfg
が再起動され、netcfg/*
のすべての事前設定値が読み取られ、正しく設定されます(/etc/hostsname
、/etc/hosts
、/etc/network/interfaces
ifあなたはpreseedなどを介して静的IP構成を設定しています)