從本地鏡像預置 Debian:未檢測到磁碟
作為這個問題的後續,我正在嘗試完全自動化 Debian(擠壓)安裝過程。到目前為止,我已經成功地掛載了主 Debian DVD 的 ISO 映像,並通過 FTP 將其提供給客戶端。問題是,客戶端在嘗試檢測硬碟驅動器時凍結。在一定的超時間隔後,它會向我顯示它檢測到的分區的(空白)列表,並讓我選擇編輯分區或繼續。這兩種選擇當然都失敗了,因為沒有檢測到任何分區。
為了嘗試調試,我從 Debian DVD 本身引導主機,並選擇了具有低 debconf 優先級的專家安裝。在安裝過程中完成的步驟之一似乎很神奇:它被稱為“從 CD 下載安裝組件”。這似乎檢索到的模組比我預置的嘗試多得多,最終導致磁碟檢測成功。特別是,這一步似乎掃描了 DVD 上 Debian 鏡像的“pool”目錄,而預播則沒有。
我已經嘗試過手動完成整個安裝並檢索
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
編輯:附加細節
- 我遵循了這個 HowTo
- 我正在通過 FTP 提供 Debian 壓縮 DVD。我做了以下操作來製作它的 ISO 映像:
dd if=/dev/cdrom of=/path/to/debian_amd64.iso
- 我正在從 amd64 netboot/netboot.tar.gz映像啟動。
- 我的啟動參數是
... linux26
append ... auto=true priority=critical preseed/url=ftp://path to preseed
我
linux26
根據我在其他地方讀到的答案故意添加了克服舊核心問題的答案(現在不記得在哪裡)。
愚蠢的我,如果我知道去哪裡看,答案就在 Debian 論壇上。正如您所猜測的,Guardian,與 initrd 相關。問題是,DVD 映像 initrd 包含的模組比 netboot 多。這里相關的是 SATA 驅動程序。所以我遵循了該執行緒第 9 篇文章中的建議,它就像一個魅力。
我在這裡完整引用解決方案,以防連結失效:
我試圖得到這個精確的設置,我一直在扯頭髮,結果解決方案很簡單:
netboot 映像的 initrd 不包含任何 ide 或 sata 驅動程序,它們應在正常安裝期間檢索,我不確定它們是否不存在於 DVD 上,或者安裝程序沒有檢測到或期望它們如果您使用的是 DVD 的鏡像(或任何安裝光碟)。但是有一個解決方案,那就是在存在驅動程序的情況下製作您自己的 initrd.gz。
我已經適應了這裡
http://wiki.openvz.org/Modifying_initrd_image
http://ubuntuforums.org/archive/index.php/t-423963.html
首先,我得到了 netboot 的 initrd.gz 並關閉了 netboot install 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 文件的內容,您可以通過以下方式查看每個目錄中的驅動程序文件:
查找 ./netboot-initrd-dir -iname *.ko 查找 ./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-dir 查找 . | cpio -H newc -o > ../new-netboot-initrd cd ../gzip ./new-netboot-initrd
現在您應該能夠獲取該文件並將其粘貼到 initrd.gz 或類似目錄下的 tftp 目錄中,它現在將檢測您的磁碟!
希望對您有所幫助。
梅尼姆