歡迎您光臨本站 註冊首頁

Linux下兩種修復硬碟壞道方法

←手機掃碼閱讀     火星人 @ 2014-03-24 , reply:0

電腦硬碟出現壞道后,如果不及時更換或進行技術處理,壞道就會越來越多,並會造成頻繁死機和數據丟失。硬碟出現壞道最好對硬碟進行重新分區,把壞道部分單獨分成一個區,並把它隱藏起來。在Linux下硬碟壞道有兩種修復方法,下面我將介紹比較這兩種方法,它們是在ext2文件格式下修改的,也同樣適用ext3格式,因為ext3隻不過是ext2+journal。

修復方法一

為了檢查壞道,可以使用mkfs.ext2的命令,帶上參數-C用只讀的方式檢查硬碟。我們使用man命令查看「mkfs.ext2」需要帶上的參數,輸入下面命令:

#man mkfs.ext2



由其結果可以看到顯示「mkfs.ext2」可以支持的功能和參數。

#man mkfs.ext2
mke2fs [ -c | -l filename ] [ -b block-size ] [ -f fragment-size ] [ -i
……



上面代碼表示使用-c在創建文件系統前檢查壞道的硬碟,-b是block的大小,-f碎裂的大小。這個操作已經很清楚地告知我們可以採用「mkfs.ext2 -c」選項用「read-only」方式檢查硬碟。這個命令會在格式化硬碟時檢查硬碟,並標出錯誤的硬碟「block」。用這個方法格式化硬碟,需要有相當大的耐心,因為命令運行后,會一個個用讀的方式檢查硬碟。做法如下:

# mkfs.ext2 -c /dev/hda1



修復方法二

根據經驗,壞道通常會波及到其它的區域,尤其是鄰近的「block」。此外還有些「block」會有以下的情況:讀寫16次中有一兩次會出現讀寫錯誤的情況。類似這種要壞不壞的情況具體修復方法如下,先輸入下面命令:

# man badblocks



查看一下badblocks所帶的參數,由結果可以看到顯示「badblocks」可以支持的功能和參數。

NAME
badblocks - search a device for bad blocks
badblocks [ -svwnf ] [ -b block-size ]
[ -c blocks_at_once ] [ -i input_file ]
[ -o output_file ] [ -p num_passes ] device [ last-block ] [ start-block ]
-b block-size
-c number of blocks
……



上面的說明中表明badblocks 檢查尋找一個設備上的壞道;-b是block的大小,-c是檢查的次數,-i輸出文件,-o輸入文件,-p是通過的數量。

硬碟在格式化時會指定一個「block」的大小,默認值為「block 4K 」(4K/block)。「badblocks」在檢查壞道時並不知道將來想要格式化時所指定的「block-size」,所以必須告知「badblocks」硬碟的「block size」。

「-c number of blocks」是檢查的次數,默認是16次。這樣的命令需要耐心等待。語法如下:

# badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list



其中,「badblocks」以4096的一個block,每一個block檢查16次,將結果輸出到「hda-badblocks-list」文件里。

「hda-badblocks-list」是個文本文件,內容如下:

# cat hda-badblocks-list
51249
51250
51251
51253
51254
……
61245
……



如果希望能找出可疑的「blocks」,並一起「mark」起來,可以針對可疑的區塊多做幾次操作:

# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000



「badblocks」以4096位元組為一個「block」,每一個「block」檢查1次, 將結果輸出到「hda-badblocks-list.1」文件中,由第51000 block開始,到63000 block結束。這次花費的時間比較短,硬碟在指定的情況下在很短的時間就產生「嘎嘎嘎嘎」的響聲。由於檢查條件的不同,其輸出的結果也不完全是相同的。

# cat hda-badblocks-list.1
51248
51250
51251
51253
……
61243
61245
……



重複幾次上述的操作,因條件多少都有些不同,所以結果也有所不同。進行多次操作后,產生了最後的「hda-badblock-list.final」 ,最後要格式化硬碟。輸入下面代碼:

#man mkfs.ext2



結果可以看到顯示「mkfs.ext2 」可以支持的功能和參數。

NAME mke2fs - create an ext2/3 filesystem
……



mkfs.ext2是用來創建一個ext2/3系統文件。

總結

以上介紹的是Linux下硬碟有了壞道的解決方法,希望這些方法能給大家帶來幫忙。

硬碟有了壞道,如果不是因為老化問題,則說明平時在使用上有不妥之處,比如對硬碟過分頻繁地整理碎片、內存太少以致應用軟體對硬碟頻頻訪問等,而忽略對硬碟的防塵處理也會導致硬碟磁頭因為定位困難引發機械故障。另外,對CPU超頻引起外頻增高,迫使硬碟長時間在過高的電壓下工作,也會引發故障。所以,平時對硬碟的使用還應以謹慎操作為上策。

Linux操作系統相比Windows要複雜得多,修復硬碟的方法及技巧絕不僅限與此,本文只是拋磚引玉,希望廣大電腦愛好者能更好地熟悉Lnux環境下硬碟。

[火星人 ] Linux下兩種修復硬碟壞道方法已經有2140次圍觀

http://coctec.com/docs/linux/show-post-138604.html