硬盤是一個損耗設(shè)備,當(dāng)使用一段時間后可能會出現(xiàn)壞道等物理故障。電腦硬盤出現(xiàn)壞道后,如果不及時更換或進行技術(shù)處理,壞道就會越來越多,并會造成頻繁死機和數(shù)據(jù)丟失。最好的處理方式是更換磁盤,但在臨時的情況下,應(yīng)及時屏蔽壞道部分的扇區(qū),不要觸動它們。badblocks就是一個檢查壞道位置的工具。
一、命令參數(shù)
badblocks使用格式為:
引用
badblocks [ -svwnf ] [ -b block-size ] [ -c blocks_at_once ] [ -i
input_file ] [ -o output_file ] [ -p num_passes ] [ -t test_pattern ]
device [ last-block ] [ start-block ]
參數(shù)含義是:
引用
-b blocksize
指定磁盤的區(qū)塊大小,單位為字節(jié),默認(rèn)值為“block 4K ”(4K/block)
-c blocksize
每個區(qū)塊檢查的次數(shù),默認(rèn)是16次
-f
強制在一個已經(jīng)掛載的設(shè)備上執(zhí)行讀寫或非破壞性的寫測試操作
(我們建議先umount設(shè)備,然后再進行壞道檢測。僅當(dāng)/etc/mtab出現(xiàn)誤報設(shè)備掛載錯誤的時候可以使用該選項)
-i file
跳過已經(jīng)顯示在file文件中的壞道,而不進行檢測(可以避免重復(fù)檢測)
-o file
把檢測結(jié)果輸出到file文件
-p number
重復(fù)搜尋設(shè)備,直到在指定通過次數(shù)內(nèi)都沒有找到新的壞塊位置,默認(rèn)次數(shù)為0
-s
在檢查時顯示進度
-t pattern
通過按指定的模式讀寫來檢測區(qū)塊。你可以指定一個0到ULONG_MAX-1的十進制正值,或使用random(隨機)。
如果你指定多個模式,badblocks將使用第一個模式檢測所有的區(qū)塊,然后再使用下一個模式檢測所有的區(qū)塊。
Read-only方式僅接受一個模式,它不能接受random模式的。
-v
執(zhí)行時顯示詳細(xì)的信息
-w
對每個區(qū)塊都先寫入,然后再從它讀取信息
[device]
指定要檢查的磁盤裝置。
[last-block]
指定磁盤裝置的區(qū)塊總數(shù)。
[start-block]
指定要從哪個區(qū)塊開始檢查
二、示例
badblocks以4096的一個block,每一個block檢查16次,將結(jié)果輸出到“hda-badblocks-list”文件里
# badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list
hda-badblocks-list”是個文本文件,內(nèi)容如下:
引用
# cat hda-badblocks-list
51249
51250
51251
51253
51254
……
61245
……
可以針對可疑的區(qū)塊多做幾次操作。下面,badblocks以4096字節(jié)為一個“block”,每一個“block”檢查1次, 將結(jié)果輸出到“hda-badblocks-list.1”文件中,由第51000 block開始,到63000 block結(jié)束
# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000
這次花費的時間比較短,硬盤在指定的情況下在很短的時間就產(chǎn)生“嘎嘎嘎嘎”的響聲。由于檢查條件的不同,其輸出的結(jié)果也不完全是相同的。重復(fù)幾次同樣的操作,因條件多少都有些不同,所以結(jié)果也有所不同。進行多次操作后,直到產(chǎn)生最后的hda-badblock-list.final文件。
三、其他
1、fsck使用badblocks的信息
badblocks只會在日志文件中標(biāo)記出壞道的信息,但若希望在檢測磁盤時也能跳過這些壞塊不檢測,可以使用fsck的-l參數(shù):
# fsck.ext3 -l /tmp/hda-badblock-list.final /dev/hda1
2、在創(chuàng)建文件系統(tǒng)前檢測壞道
badblocks可以隨e2fsck和mke2fs的-c刪除一起運行(對ext3文件系統(tǒng)也一樣),在創(chuàng)建文件系統(tǒng)前就先檢測壞道信息:
代碼表示使用-c在創(chuàng)建文件系統(tǒng)前檢查壞道的硬盤。
這個操作已經(jīng)很清楚地告知我們可以采用“mkfs.ext3 -c”選項用“read-only”方式檢查硬盤。這個命令會在格式化硬盤時檢查硬盤,并標(biāo)出錯誤的硬盤“block”。用這個方法格式化硬盤,需要有相當(dāng)大的耐心,因為命令運行后,會一個個用讀的方式檢查硬盤。