解決因U盤標簽問題導致的U盤安裝Linux系統失敗


前言

我在使用U盤制作、安裝Centos系統時遇到了一個問題,現象是進不了安裝界面,在等待超時后提示以下信息,然后就進入了臨時的linux shell。

dracut-initqueue : Warning: dracut-initqueue timeout - starting timeout scripts

然而同樣的鏡像文件如果刻錄成光盤安裝就沒有問題,甚至可能換個U盤安裝也沒有問題。上網搜索有各種解決方法,總體說的是對的,但在細節上說得不夠准確。個人推測發帖者根據原文分析並找到了原因,事后想要記錄一下就直接Copy原文,並沒有做更細的總結,這也是促使我發表本文的原因。以下記錄我已在Centos7.3 + 工控機環境下實驗過。

問題分析

導致該問題的原因,是因為不同格式的U盤對標簽支持的長度不一樣。很可能使用fat32或exfat格式,無法支持鏡像里超長的標簽。我們將U盤插在windows下,看到U盤的標簽名為

CentOS 7 x8

而打開/isolinux/syslinux.cfg搜索“LABEL=”,看到的都是

CentOS\x207\x20x86_64

其中\x20代表空格,這兩處不一致導致無法正確引導進入安裝界面。而如果是DVD刻錄的,可以看到光盤的標簽就是“CentOS 7 x86_64”,而U盤則可能是被截短后的標簽。

解決辦法

問題分析完了,解決辦法有三種
1.使用DVD刻錄安裝
這種做法什么都不需要修改,前提是你安裝系統的設備有光驅

2.修改修改syslinux.cfg
該配置文件在U盤里/isolinux/目錄下,把"hd:LABEL=CentOS\x207\x20x86_64"這里修改為正確的U盤標簽名。例如這里修改為:

hd:LABEL=CentOS\x207\x20x8

配置里有多處hd:LABEL=,我都進行了修改,保存后按照正常流程安裝即可。這種改法有幾個坑需要注意: - 空格問題,\x20 為空格 - 不修改syslinux.cfg里的配置,而是在windows下修改U盤標簽
這么做思路沒問題,但是有個坑是windows如果修改了標簽名,會自動轉成大寫,造成的結果和原先一樣,依舊是兩邊不匹配。而且一旦修改了U盤標簽,就改不回小寫了,這時候最好的做法就是兩邊同時修改為CENTOS7這樣全大寫、沒有空格這樣簡單的標簽名。

這種做法一勞永逸,之后使用該U盤安裝不必再做修改和配置注:U盤系統里,還有一個/isolinux/isolinux.cfg,這個在刻錄前有用,刻錄后修改也不生效。注意別修改錯了。 2)大小寫問題,在windows下如果修改lable后有可能會被強制轉為大寫(有時重啟系統才能發現) 所以保險起見,將標簽,和該cfg都修改為CENTOS7這樣沒有歧義的名稱。

3.在安裝時修改
這么做的好處是不會修改原本U盤里的任何內容。在安裝系統步驟走到安裝選擇菜單時,通過鍵盤上下鍵,選擇 Install CentOS 7(但是不回車) ,然后修改 按 e 鍵(或者tab鍵,可以看提示,不同版本不一樣),進入修改狀態,將 hd:LABEL=后面的內容修改為U盤實際的標簽名例如標簽名是別截斷后的CentOS 7 x8,那么這里修改為

vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64.check quiet為 vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x8 quiet

最后,通過按e鍵進入修改的,按Ctrl+x開始安裝。如果通過tab鍵進入修改的,直接回車開始安裝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM