badblocksUnix-like作業系統下用來檢查類似於磁碟分區這樣的裝置上是否存在壞軌的命令列程式,其功能類似於Microsoft WindowsDOS作業系統中的SCANDISKCHKDSK。執行後badblocks會給出一份裝置上存在問題的區塊(block)列表。

badblocks是ext2/3/4檔案系統工具集e2fsprogs的一部分。

badblocks在大多數情況下需要配合e2fsckmke2fs使用,此時需要專門指定合適的"-b"參數,也就是badblock所讀取的區塊大小(block-size)。因此,用戶應該通過執行e2fsckmke2fs時加上"-c"參數來呼叫badblocks,而不是直接使用badblocks。[1]

e2fsck的 "-c" 參數

編輯

多數情況下badblocks會透過e2fsck的"-c"參數調用,防止資料被寫入壞軌中。透過掃描時所產生的壞軌清單在分配空間時避免使用到壞軌部份。這項測試可以透過唯讀("-c")或非破壞性寫入("-cc")進行。[2]

dumpe2fs

編輯

執行dumpe2fs -b可以列出由e2fsck或>tune2fs所紀錄的壞軌清單。

範例

編輯
badblocks -nvs /dev/sdb

這個指令將會對 "sdb"進行非破壞性寫入測試以及顯示檢查進度。

badblocks -wvs /dev/sdb6

這個指令將會對"sdb"的第6硬碟分區進行破壞性寫入測試(-w = 寫入模式),對分區寫入4種不同的方式,並寫驗證其正確性。過程中將會顯示檢查進度(-s = 顯示,-v = 詳細資料). 指令所執行之分區資料將會被覆蓋。

badblocks -wvsb 4096 /dev/sdb

這指令行為與上則相同,不過對象為整個硬碟以及指定區塊大小為4096。將會破壞MBR分區及資料。新一點的硬碟並不會顯示損壞的磁區,其原因為在備用磁區尚存時將自動重新定位至備用磁區[3],但是執行在新硬碟上會測試硬碟表面,解析S.M.A.R.T.資訊後將會顯示最終所組態的磁區數量。

使用-w參數時,將會把原先硬碟的所有資料抹除掉。

參考

編輯

參照

編輯
  1. ^ badblocks(8) - Linux man page頁面存檔備份,存於互聯網檔案館), 2010年5月7日查閱
  2. ^ e2fsck(8) – Linux系統管理員工具(Administration and Privileged Commands)手冊頁
  3. ^ 存档副本. [2012-06-30]. (原始內容存檔於2012-07-19).