この質問 のフォローアップとして、Debian(スクイーズ)のインストール手順を完全に自動化しようとしています。私はこれまで、メインのDebian DVDのISOイメージをマウントし、FTP経由でクライアントに提供することに成功しました。問題は、ハードドライブを検出しようとしているときにクライアントがフリーズすることです。特定のタイムアウト間隔の後、検出されたパーティションの(空白の)リストが表示され、パーティションを編集するか続行するかを選択できます。もちろん、パーティションが検出されないため、両方の選択は失敗します。
デバッグを試みるために、Debian DVD自体からホストを起動し、debconfの優先度が低いエキスパートインストールを選択しました。そのインストール中に実行される手順の1つは、魔法のようなもののようです。これは、「CDからインストールコンポーネントをダウンロードする」と呼ばれます。これにより、事前にシードした試行よりもはるかに多くのモジュールが取得され、最終的にはディスク検出が成功するようになります。特に、このステップでは、DVDにあるDebianミラーの「プール」ディレクトリをスキャンしているようですが、プレシードではスキャンしません。
私はすでにインストール全体を手動でウォークスルーし、d-i
の選択を取得してみました。
debconf-get-selections --installer > installer_sels.txt
しかし、そこで私が見つけたものは特に役に立ちませんでした。 VT 4(/var/log/syslog
)のメッセージは、どちらの場合(実際のDVDとFTP ISOマウント)でも、不足しているモジュールに関するメッセージと苦情が同じであるため、あまり役に立ちません。
ここで何が欠けていますか?プレシードファイルに追加して、DVDから追加のモジュールをロードできるようにするものはありますか?以前にこれを試したことがある人からのアドバイスはありますか?
プレシードファイルの関連行:
d-i mirror/protocol string ftp
d-i mirror/ftp/hostname <FTP server IP>
d-i mirror/ftp/directory /<FTP dir>/debian
編集:追加の詳細
FTP経由でDebianスクイーズDVDを提供しています。 ISOイメージを作成するために次のことを行いました。
dd if=/dev/cdrom of=/path/to/debian_AMD64.iso
... linux26
append ... auto=true priority=critical preseed/url=ftp://path to preseed
どこかで読んだ答えに基づいて、古いカーネルの問題を克服するために、意図的にlinux26
を追加しました(現時点ではどこを思い出せません)。
愚かな私、どこを見ればよいかわかっていれば、答えはDebianフォーラムにありました。ご想像のとおり、Guardianはinitrdを使用していました。重要なのは、DVDイメージのinitrdには、netbootモジュールよりも多くのモジュールが含まれているということです。ここで適切なのはSATAドライバーです。だから私は that スレッドの9番目の投稿のアドバイスに従いました、そしてそれは魅力のように働きました。
リンクが切れた場合に備えて、ここで解決策全体を引用しています。
私はこの正確な設定を取得しようとしていて、髪を引き裂いてきましたが、解決策は非常に簡単であることがわかりました。
Netbootイメージのinitrdにはideまたはsataドライバーが含まれておらず、通常のインストール中に取得されることを意図しています。DVDに存在しないだけなのか、インストーラーがそれらを検出または予期しないのか正確にはわかりません。 DVDのミラー(または任意のインストールCD)を使用している場合。ただし、解決策があります。それは、存在するドライバーを使用して独自のinitrd.gzを作成することです。
私はここから適応しました
http://wiki.openvz.org/Modifying_initrd_image
http://ubuntuforums.org/archive/index.php/t-423963.html
最初に、netboot用のinitrd.gzを取得し、netbootインストールCDをオフにしましたが、DVDのinitrd.gzは問題ないと思います。
mkdir netboot-initrd-dir mkdir cd-initrd-dir gunzip netboot-initrd gunzip cd-initrd cd netboot-initrd-dir cpio -i <../ netboot-initrd cd ../cd-initrd-dir cpio -i <。 ./cd-initrd
これで、両方のinird.gzファイルの内容を含む2つのディレクトリが作成されます。次の方法で、それぞれにどのドライバファイルがあるかを確認できます。
find ./netboot-initrd-dir -iname * .ko find ./cd-initrd-dir -iname * .ko
cDにあるもの、特にideドライバーとsataドライバーには、さらに多くのものがあることに注意してください。あなたはおそらくこれでもっと正確にすることができますあなたはより小さな画像を持っている必要があります、しかし私はなんとか逃げることができました:
cp -nr cd-initrd-dir/lib/modules/2.6.32-5-486/kernel/* netboot-initrd-> dir/lib/modules/2.6.32-5-486/kernel /
今、あなたはそれを一緒に戻す必要があります:
cd netboot-initrd-dirfind。 | cpio -H newc -o> ../new-netboot-initrd cd ../ gzip ./new-netboot-initrd
これで、そのファイルを取得して、initrd.gzなどの下のtftpディレクトリに貼り付けることができるはずです。これで、ディスクが検出されます。
それがあなたを助けることを願っています。
メイニム