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

2022-07-21 20:51:25 字數 1870 閱讀 9186

我在使用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代表空格,這兩處不一致導致無法正確引導進入安裝介面。而如果是***燒錄的,可以看到光碟的標籤就是「centos 7 x86_64」,而u盤則可能是被截短後的標籤。

問題分析完了,解決辦法有三種

1.使用***燒錄安裝

這種做法什麼都不需要修改,前提是你安裝系統的裝置有光碟機

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鍵進入修改的,直接回車開始安裝。

U盤啟動盤的diskpart恢復以及U盤格式

u盤啟動盤的恢復 製作完kali的啟動盤之後發現不能常規格式化 微笑.jpg 然後發現了windows自帶的乙個神器 diskpart 在cmd直接輸入diskpart就會彈出 第一步 我們要選中u盤,很明顯我的是28g的啦 第二步 我就要進行乙個至關重要的決定了 清空磁碟 clean 心中的石頭被...

U盤中毒問題解決

背景 最近在學校的列印店裡列印東西,結果過了一段時間再使用的時候發現,u盤中的資料夾都成了快捷方式,只有乙個pdf檔案是好的,無奈,其中有比較重要的東西,所以尋求解決辦法,最終解決,為方便以後查閱,遂記錄之。表現 所有的檔案都成了快捷方式,這種病毒屬於資料夾快捷方式中毒,又稱1kb快捷方式中毒,所以...

U盤系列 之U盤掛載資訊的獲取

程式內讀取 etc mtab或者 proc mounts,解析字串較為繁瑣,可以使用mntent提供的方便函式 file setmntent const char filename,const char type struct mntent getmntent file filep int endm...