在 Linux 系統下使用badblocks檢測硬盤上的壞道和壞塊

 

讓我們從壞道和壞塊的定義開始說起,它們是一塊磁盤或閃存上不再能夠被讀寫的部分,一般是由於磁盤表面特定的物理損壞或閃存晶體管失效導致的。隨着壞道的繼續積累,它們會對你的磁盤或閃存容量產生令人不快或破壞性的影響,甚至可能會導致硬件失效。同時還需要注意的是壞塊的存在警示你應該開始考慮買塊新磁盤了,或者簡單地將壞塊標記爲不可用。

在這篇文章中,我們通過幾個必要的步驟,使用特定的磁盤掃描工具讓你能夠判斷 Linux 磁盤或閃存是否存在壞道。

使用badblocks檢查壞道

壞塊工具可以讓用戶掃描設備檢查壞道或壞塊。設備可以是一個磁盤或外置磁盤,由一個如

/dev/sdb5

這樣的文件代表。
首先,通過超級用戶權限執行 fdisk 命令來顯示你的所有磁盤或閃存的信息以及它們的分區信息:

$ sudo fdisk -l

設備       啓動    起點      末尾      扇區   大小 Id 類型
/dev/sdb1  *       2048   2000895   1998848   976M ef EFI (FAT-12/16/32)
/dev/sdb2       2002942 468860927 466857986 222.6G  5 擴展
/dev/sdb5       2002944 468860927 466857984 222.6G 83 Linux

然後使用badblocks命令檢測壞道

語法:

badblocks [-svw][-b <區塊大小>][-o <輸出文件>][磁盤裝置][磁盤區塊數][啓始區塊]

參數說明

-b<區塊大小> 指定磁盤的區塊大小,單位爲字節。
-o<輸出文件> 將檢查的結果寫入指定的輸出文件。
-s 在檢查時顯示進度。
-v 執行時顯示詳細的信息。
-w 在檢查時,執行寫入測試。
[磁盤裝置] 指定要檢查的磁盤裝置。
[磁盤區塊數] 指定磁盤裝置的區塊總數。
[啓始區塊] 指定要從哪個區塊開始檢查。

使用如下命令檢查你的 Linux 硬盤上的壞道/壞塊:

➜  ~ sudo badblocks -s -v /dev/sdb5 >badblocks.txt
正在檢查從 0 到 233428991的塊
檢查壞塊(只讀測試): 進度   1.17%,用時 0:23。(0/0/0 個錯誤)

上面的命令中,badblocks 掃描設備/dev/sdb5(記得指定你的實際設備),-s顯示選項進度(最好給這個選項,你能看見掃描進度,否則沒進度,你會以爲卡死了),-v選項讓它顯示操作的詳情。另外,這裏使用了輸出重定向將操作結果重定向到了文件badblocks.txt。

如果你在你的磁盤上發現任何壞道,卸載磁盤並像下面這樣讓系統不要將數據寫入回報的扇區中。

你需要執行e2fsck(針對 ext2/ext3/ext4 文件系統)或fsck命令,命令中還需要用到badsectors.txt文件和設備文件。

-l 選項告訴命令將在指定的文件 badblocks.txt中列出的扇區號碼加入壞塊列表。

//針對 for ext2/ext3/ext4 文件系統
$ sudo e2fsck -l badblocks.txt /dev/sdb5
//針對其它文件系統
$ sudo fsck -l badblocks.txt /dev/sdb5

參考自:

https://blog.csdn.net/u014743697/article/details/53316126

https://www.runoob.com/linux/linux-comm-badblocks.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章