web-dev-qa-db-ja.com

ホスト名の設定を無視してpreseed.cfg

preseed.cfgを使用して、VirtualBoxにDebian Wheezy(netinstall)をインストールしています。

d-i netcfg/get_hostname string somehostd-i netcfg/get_hostname string somehostの両方を試しましたが、どちらの場合もホストは「debian」として設定されます。両方を同時に試しましたが、それでもホストは「debian」に設定されています。

事前設定ファイルに関するDebianのガイド からの抜粋:

DHCPサーバーが返すもの、IPの逆引きDNSエントリが何であるかに関係なく、ホスト名を強制したい場合は、コメントを外して次の行を調整します。

d-i netcfg/hostname string somehost

これはバグですか、それとも不運ですか?

14
ToddM

解決策ではなく回避策

私も同様の問題に直面しており、pressed.cfgの最後に追加した次の行を使用して、インストール後にホスト名を設定することで回避しました。

d-i pressed/late_command string\
    in-target /bin/bash -c 'echo desired_name > /etc/hostname'

in-targetは、/がインストール時に通常/targetとして表示されるターゲットファイルシステム(最終的にルートファイルシステムになる)を参照するために必要です。

10
Joseph R.

ネットブートしている場合(PXEなどを使用)、ホスト名はpreseedファイルを取得する前に設定されるため、次のようにカーネルコマンドラインでホスト名を設定する必要があります。

hostname=myhostname domain=mydomain

Debian-installerマニュアルの 付録Bの紹介 (シード前)から:

事前シード方式間の重要な違いは、事前構成ファイルがロードされて処理される時点です。 initrdのpreseedの場合、これはインストールの開始時、最初の質問が尋ねられる前です。ファイルのpreseedの場合、これはCDまたはCDイメージがロードされた後です。ネットワークのpreseedの場合は、ネットワークが構成された後でなければなりません。

9
pseudorandom

この問題は、ネットインストールコマンドラインで(pxelinux.cfgディレクトリエントリを介して)カーネルに渡していた引数からpriority=criticalを削除すると解消されたことがわかりました。

これは、ホスト名を尋ねる質問に「クリティカル」よりも低い優先度が与えられているため、デフォルトの回答が入力されることを意味すると思います。

この変更を行うと、インストールプロセスの後半で、他の質問に対して重要度の低い他の回答を提示する必要がある場合があります...

5
Tim Small

これはdebian-installerの制限です。 preseed設定ファイルをネットワークからフェッチするまでに、netcfgはすでにその仕事を終えてなくなっているため、値を再フェッチしません。

やや公式のkludgepreseed.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構成を設定しています)

3
Matija Nalis