系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當前位置:系統(tǒng)之家 > 系統(tǒng)教程 > U盤HDD模式無法啟動的原因及應對策略

U盤HDD模式無法啟動的原因及應對策略

時間:2014-07-14 17:34:00 作者:zhang 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20140714/23978.html 手機查看 評論

  不少網(wǎng)友利用U盤來為電腦啟動,這個方法是較為便捷的,但是也難免會遇到問題。就比如所用的U盤是HDD格式,在今日卻總是啟動不了,是中毒了還是什么?都需要我們對此進行原因的分析才能更好地進行解決,我們就為大家詳細地分析下。

  不同的BIOS進行U盤(USB-HDD方式)啟動時,對同一U盤的容量參數(shù)---柱面、磁頭和扇區(qū)數(shù)(簡稱CHS),識別各不相同(證明這一點可以在不同的機器上安裝同一版本的linux,然后插入U盤,使用hdparm /dev/sda命令就可以發(fā)現(xiàn)CHS在不同機器各不相同,甚至如果U盤可以使用GRUB啟動的話,在GRUB里使用geometry (hd0)命令也能看出來),這樣在一臺機器上分區(qū)格式化所產(chǎn)生的的分區(qū)表和FAT磁盤參數(shù)表是按照這臺機器所識別的硬盤的CHS來表達的,換到另一臺機器時由于另一臺機器識別的CHS不一樣,這樣就會產(chǎn)生混亂。所幸的是,分區(qū)表和FAT磁盤參數(shù)表同時還有一種按照相對扇區(qū)數(shù)來表達的方式,這種表達方式也同時記錄在分區(qū)表和磁盤參數(shù)表中。

  這樣就看軟件使用哪一種數(shù)據(jù)來工作了,如果使用CHS,那么換一臺機器就一定不會正常工作,如果使用LBA方式訪問磁盤就不會受影響---當然前提是BIOS支持對U盤使用LBA方式訪問即擴展INT13H。而XP對FAT16文件系統(tǒng)分區(qū)格式化生成的MBR代碼以及DOS各版本均需依靠CHS工作,所以按照通常方法在一臺機器制作的啟動U盤在另一臺機器啟動就有可能不成功。經(jīng)測試移動硬盤在各BIOS中的CHS倒是一致的,與該硬盤直接接在IDE口上的CHS相同,所以移動硬盤的USB啟動基本上并無困難。

  目前我發(fā)現(xiàn)的確實受這一問題的影響,從而影響啟動的程序有:

  1、Windows XP及SP1中文版磁盤管理器分區(qū)時所寫的MBR

  2、dos5、6、6.22、win95的fdisk所寫的MBR

  3、dos5、6、6.22、win95的format所寫的boot

  4、包括windows95 98 98se的所有的MS DOS的IO.SYS(均需依靠CHS識別FAT文件系統(tǒng))

  5、USBoot產(chǎn)生的MBR和boot(與1相同)

  6、使用bootlace.com將grub for dos 0.41中的grldr.mbr安裝至MBR

  可能不受這一問題影響的程序有(未經(jīng)充分測試):

  1、win98、98se的fdisk所寫的MBR

  2、win98、98se的format所寫的boot(要求FAT16分區(qū)類型必須是0xe以支持LBA)

  3、ntldr以及隨后啟動的PE或XP環(huán)境(當然了,否則U盤就沒法使用了)

  4、linux下的install-mbr程序所寫的MBR

  5、GNU GRUB 0.95和0.97及其使用grub-install命令安裝的引導代碼

  6、syslinux3.36和3.51

  7、linux2.4內(nèi)核以上,基本上linux系統(tǒng)所有程序?qū)AT文件系統(tǒng)都不會使用CHS

  8、grub chs 0.95 0.97(內(nèi)含的stage1、stage1.5和stage2引導代碼)

  所以解決此問題思路相應就有:

  1、強制U盤以USB-CDROM、USB-FLOPPY或USB-ZIP方式啟動,這樣各家BIOS就有標準可循了,就不會“自說自話",這也是目前使用U盤量產(chǎn)工具的基本思路,但是這樣就讓沒有量產(chǎn)工具的SD卡+讀卡器的組合失望了,而目前的多數(shù)大容量U盤均無寫保護開關或者讀寫速度不理想,有時還是需要高速SD卡+讀卡器的組合;

  2、使用活動硬盤啟動基本沒問題。

  3、使用不受錯誤的CHS參數(shù)影響的boot loader啟動,比如GNU GRUB或SYSLINUX啟動,或其它組合。大白菜官網(wǎng)

  下面介紹我嘗試過的使用GNU GRUB、GRUB CHS和GRUB for DOS的方法:

  方法一:完全使用grub中文版的stage1、stage1.5、stage2啟動

  1、找到一臺正常運行GNU GRUB0.95或0.97的機器(Redhat ELAS4 Update0-Update6,ELAS5 Update0-Update1)

  2、把grub_for_dos-0.4.1.zip中chinese/boot/grub中stage1、1.5、2文件覆蓋到linux中/usr/share/grub里(這里不同版本可能grub stage image所在路徑不同,/usr/share/grub是大多數(shù)情況),注意做好原來文件備份。

  3、插入要做啟動的U盤或移動硬盤,進行分區(qū),因為有一些BIOS對USB-HDD只支持CHS方式,從而限制了啟動分區(qū)不能超過1023*16*63個扇區(qū),所以為了通用性,啟動分區(qū)不要超過511M,類型為0xe,(閱讀Win98se的DOS 7.1的boot啟動代碼發(fā)現(xiàn)DOS 7.1使用0xe這個類型支持LBA方式啟動,它的文件訪問也許也使用這個標志,雖然對grub可能用不到,但是如果多引導中包含DOS 7.1的話就有用了),設置引導標志,格式化為fat16文件系統(tǒng)。這一切都在linux下進行。(12月29日更正)

  4、把啟動分區(qū)mount到/mnt內(nèi)

  5、grub-install --root-directory=/mnt /dev/sdX,注意千萬不能選擇--force-lba,因linux下的grub現(xiàn)在與stageX不配套,機器會無法啟動

  6、不要理會/mnt/boot/grub/device.map文件,這個文件是grub-install程序使用的,安裝后就沒用了。

  7、umount /mnt并恢復/usr/share/grub內(nèi)容

  這樣因--force-lba選項未啟用可以說留有遺憾,所以下一步使用此設備啟動,在grub命令行下:

  1、root(hd0,0),這里指定stage image文件源在哪里

  2、setup --force-lba (hd0),進行安裝,至此grub中文版已完全安裝到MBR里。

  這種方法是我最初采用的方法,但是現(xiàn)在grub中文版已停止更新,所以這種方法我不推薦。

  方法二:使用GNU GRUB啟動后加載grub for dos

  1、找到最新的穩(wěn)定版本的linux,比如Redhat ELAS5 Update1,直接把它的GNU GRUB加上--force-lba選項安裝到U盤MBR里(可參照方法一,注意不要覆蓋那些文件了,也別忘了把分區(qū)類型設為0xe)。

  2、把grub_for_dos-0.4.2.zip中的chinese/grub.exe復制到U盤根目錄中。

  3、使用GNU GRUB引導后使用kernel /grub.exe和boot命令引導grub.exe這樣就可享受grub for dos的中文菜單和直接支持ntldr、io.sys啟動的功能了。

  這種方法好在可以始終使用最新的最穩(wěn)定的GNU GRUB來對付buggy BIOS,同時仍享受grub for dos中文版的便利。這種方法在我的機器上不論是PE還是DOS,啟動速度相當?shù)穆,就連菜單顯示速度都出奇地慢,而且不僅僅是啟動過程,就連啟動成功后運行其他程序也是很慢,我覺得是grub for dos中文版的原因,試用過grub for dos中文版0.41、0.42和0.43均不理想。

  方法三:使用GNU GRUB的stage1、stage1.5和grub 0.97中文版的stage2混合啟動

  1、找到最新的穩(wěn)定版本的linux,比如Redhat ELAS5 Update1,直接把它的GNU GRUB加上--force-lba選項安裝到U盤MBR里(可參照方法一,注意不要覆蓋那些文件了,也別忘了把分區(qū)類型設為0xe)。

  2、使用grub_for_dos-0.4.1.zip中chinese/boot/grub中stage2文件替換掉U盤中/boot/grub/stage2

  這種方法優(yōu)點同方法二,并且啟動更為迅速,缺點就是這畢竟不是通常的做法,在GNU GRUB版本更新后不一定還可行,不過好像GNU GRUB也停止更新了:-)。在目前的情況下,個人推薦這種方法。

  其它嘗試:使用syslinux引導grub for dos0.41、0.42和0.43的grub.exe也試驗成功,但與方法二一樣啟動和運行速度很慢

  實際應用測試:

  現(xiàn)在我自己的工具盤(150速 創(chuàng)見2G SD卡+川宇150X SDHC讀卡器,題外話:這個讀卡器除了支持150速以外其它真是垃圾)就是使用方法三制作的,在實際環(huán)境中還沒有發(fā)現(xiàn)無法啟動的現(xiàn)象。其中包括HP DL380G3、G4、DL580、Dell 3850、6850、IBM X345、346、3650等,當然還包括我的臺式機和筆記本電腦。

  這里補充說明一下:這個帖子僅僅是對影響U盤USB-HDD方式啟動的若干因素其中一個重要因素的探索,這個鏡像只是相對流行做法作了改進,提高了U盤在不同機器上啟動成功可能性,并不能說就此解決了U盤USB-HDD方式啟動的所有問題。本來作為研究帖子是只想提供方法不想提供具體成品的,但是考慮到種種因素,還是放出來供大家測試吧。

  因為ghost在恢復時會自行更該分區(qū)類型到06,所以我使用了winhex生成了一個1:1的U盤鏡像供研究,解壓縮后文件名為U-1gboot.img。這個啟動盤為了壓縮體積,僅僅有一個假的啟動菜單,只要啟動時出現(xiàn)這個菜單就算成功了。

  以上便是HDD模式無法啟動的原因及其解決的對策了,原因的多重分析,多種方法的解決,需要我們針對不同的情況來進行篩選,希望對大家有幫助。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

人氣教程排行

U盤系統(tǒng)推薦

官方交流群 軟件收錄