preseed.cfgはホスト名設定を無視します


13

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

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

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

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

di netcfg / hostname string somehost

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

回答:


10

解決策ではなく、回避策

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

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

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


1
私もこれを使用しましたが、ホスト名がDNSルックアップから自動的に設定されるように、わずかな変更を加えましたd-i pressed/late_command string in-target /bin/bash -c 'echo $(dig +short -x $(facter ipaddress)) | sed -e \'s/\.$//\' > /etc/hostname'。IPアドレスを取得するpuppetlabsからこの用途「facter」がありますが、使用して、同様の何かができるip addrsed
デビッドガードナー

9

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

hostname=myhostname domain=mydomain

debian-installerマニュアルの付録B(preseed)の紹介から:

事前シード方法の重要な違いは、事前構成ファイルがロードおよび処理されるポイントです。initrd preseedの場合、これはインストールの開始時であり、最初の質問が尋ねられる前です。ファイルpreseedの場合、これはCDまたはCDイメージがロードされた後です。ネットワークpreseedの場合は、ネットワークが構成された後にのみです。


4

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

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

この変更を行った場合、インストールプロセスの後半で他の質問のために、他の重要度が低い回答を事前にシードする必要がある場合があります...


3

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

やや公式のクラッジはあなたの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、その後のためのすべてのpreseedの値を読んであろうnetcfg/*と、それらを正しく設定する(/etc/hostsname/etc/hosts/etc/network/interfacesもしあなたしている設定の静的IP設定を経由してのpreseedなど)


別のファイルなしでこれを行うことができます:d-i preseed/early_command string kill-all-dhcp; netcfgpreseedファイルで十分です。自動化されたネットインストールでストレッチを使用してテストされました。
SCY
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.