問題說明
現在一般安裝服務器都是通過U盤引導安裝,而刻錄U盤一般都采用 UltraISO ,今天在測試服務器上安裝 CentOS 7 又出現無法找到盤符的情況,具體信息如下:
[OK] Reached target Basic System
到這里就卡住不動了。第一反應就是 grub 找不到啟動盤符。
通用解決方案
網絡上很多文章對於這種解決方案都是通過,找到 U盤的盤符,然后直接修改 grub 啟動盤符的形式來安裝系統。如下:
setparams 'Install CentOS Linux 7'
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet
initrdefi /images/pxeboot/initrd.img
修改為如下:
setparams 'Install CentOS Linux 7'
linuxefi /images/pxeboot/vmlinuz linux dd nomodeset quiet
initrdefi /images/pxeboot/initrd.img
然后 使用 Ctrl+X 執行上面修改后的啟動項,屏幕上就出列出硬盤設備的詳細信息,就可以從中找到U盤的盤符。
再次修改 grub 條目:
setparams 'Install CentOS Linux 7'
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:/dev/sdd4 nomodeset quiet
initrdefi /images/pxeboot/initrd.img
而后使用 Ctrl+X 啟動即可進入正常安裝流程。
最優解決方案
網絡上基於上面的解決方案有很多資料,在查閱相關資料時,發現一個最優解。完全不需要啟動時修改 grub 配置信息。
發現原因是ISO映像文件的驅動器卷標太長,與FAT32驅動器不兼容所致。具體解釋如下:ISO映像文件中的驅動器卷標很長,例如“CentOS-8-BaseOS-x86_64”長達22個字符;但是如果制作U盤時的文件系統格式為FAT32,則卷標最長為11個字符,就會截斷變為“CentOS-8-Ba”。但是U盤啟動並試圖安裝CentOS時是按照卷標去尋找對應的驅動器,於是就找不到! 解決辦法可以如博主所說的那樣操作,但是也有兩種簡易的解決辦法。
兩種解決方案如下:
- 把U盤轉換為NTFS格式,然后重新把ISO映像文件寫入到U盤。
- 找到U盤下的“\EFI\BOOT\grub.cfg”文件,用記事本打開,把“LABEL=CentOS-8-BaseOS-x86_64”這串文字改為“LABEL=CentOS-8-Ba”
嘗試了第二種方式,安裝后再無找不到啟動盤符的問題,值得記錄下。
參考鏈接:https://blog.csdn.net/ytingone/article/details/53744953/