在 CentOS 上創建自定義 ISO 會導致 dracut-initqueue 超時
我可以將庫存 CentOS 7.7 ISO 啟動到虛擬機(和 USB 驅動器上)就好了,但是當我嘗試直接從庫存 ISO 製作自定義 ISO 時,我遇到了障礙。
在最初選擇 to 之後
Install CentOS
,系統掛起Starting dracut initqueue hook...
,然後重複initqueue[696]: Warning: dracut-initqueue timeout - starting timeout scripts
,直到它最後說Could not boot.
然後/dev/root does not exist
,然後它轉到 Dracut 緊急外殼。我正在按照我見過的步驟進行操作:
sudo mkdir -p /media/mydrive sudo mount -o loop ~user/CentOS-7-x86_64-DVD-1908.iso /media/mydrive mkdir ~/customiso sudo rsync -av /media/mydrive ~/customiso cd ~/customiso sudo genisoimage -o ../centoscustom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -v -T -V 'centos custom' .
(也使用 mkisofs 代替 genisoimage,不滿意)
選擇安裝後,它總是在同一點失敗。我什至弄亂了 isolinux.cfg 以使該
append
行與文件名匹配,所以
append inird=inird.img inst.stage2=hd:LABEL=centoscustom quiet
我正在嘗試將一些 kickstart 操作放入 CentOS 7.7 的自定義 ISO 中。我最初認為我與 USB 製作或 ks.cfg 文件有關,但我已經回歸到只是試圖讓股票 ISO 的直接副本首先工作。
我剛剛想通了。
genisoimage
命令和isolinux.cfg
文件中需要相互匹配的兩件事如下THISNEEDSTOMATCH
:
genisoimage -o ../centoscustom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -v -T -V 'THISNEEDSTOMATCH' .
append inird=inird.img inst.stage2=hd:LABEL=THISNEEDSTOMATCH quiet
我只是在這個問題上苦苦掙扎(或者說,同樣的症狀)。原來我實際上忘記包括整個
images/install.img
其中,驚喜,驚喜,意味著安裝程序無法找到 stage2。mkisofs/genisoimage 只是盲目地包含“暫存區”目錄中的任何內容。
簡而言之,你需要 isolinux 和 install.img 才能成功。我解決問題的方法是循環安裝庫存圖像並檢查它。
作為參考,整個事情是這樣的(自己替換合適的鏡子。)
mkdir iso rsync -av rsync://mirrors.dotsrc.org/centos/8.2.2004/BaseOS/x86_64/os/isolinux ./iso/ rsync -av rsync://mirrors.dotsrc.org/centos/8.2.2004/BaseOS/x86_64/os/images/*.img ./iso/images/ cp my_custom_isolinux.cfg iso/isolinux/isolinux.cfg #Optional cp my_custom_splash.png iso/isolinux/splash.png #Optional cd iso && mkisofs -o ../qeyeboot8.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS-8-2-2004-x86_64-dvd" -R -J -v -T . isohybrid ../qeyeboot8.iso #Optional, allows the image to also be booted from USB