閱讀231 返回首頁    go 阿裏雲 go 技術社區[雲棲]


在 Linux 上檢測硬盤上的壞道和壞塊

讓我們從壞道和壞塊的定義開始說起,它們是一塊磁盤或閃存上不再能夠被讀寫的部分,一般是由於磁盤表麵特定的物理損壞或閃存晶體管失效導致的。

隨著壞道的繼續積累,它們會對你的磁盤或閃存容量產生令人不快或破壞性的影響,甚至可能會導致硬件失效。

同時還需要注意的是壞塊的存在警示你應該開始考慮買塊新磁盤了,或者簡單地將壞塊標記為不可用。

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

以下就是步驟:

在 Linux 上使用壞塊工具檢查壞道

壞塊工具可以讓用戶掃描設備檢查壞道或壞塊。設備可以是一個磁盤或外置磁盤,由一個如 /dev/sdc 這樣的文件代表。

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


  1. $ sudo fdisk -l<br>

列出 Linux 文件係統分區

列出 Linux 文件係統分區

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


  1. $ sudo badblocks -v /dev/sda10 > badsectors.txt

在 Linux 上掃描硬盤壞道

在 Linux 上掃描硬盤壞道

上麵的命令中,badblocks 掃描設備 /dev/sda10(記得指定你的實際設備),-v 選項讓它顯示操作的詳情。另外,這裏使用了輸出重定向將操作結果重定向到了文件badsectors.txt

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

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

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


  1. ------------ 針對 for ext2/ext3/ext4 文件係統 ------------
  2. $ sudo e2fsck -l badsectors.txt /dev/sda10
  3. ------------ 針對其它文件係統 ------------
  4. $ sudo fsck -l badsectors.txt /dev/sda10

在 Linux 上使用 Smartmontools 工具掃描壞道

這個方法對帶有 S.M.A.R.T(自我監控分析報告技術Self-Monitoring, Analysis and Reporting Technology)係統的現代磁盤(ATA/SATA 和 SCSI/SAS 硬盤以及固態硬盤)更加的可靠和高效。S.M.A.R.T 係統能夠幫助檢測,報告,以及可能記錄它們的健康狀況,這樣你就可以找出任何可能出現的硬件失效。

你可以使用以下命令安裝 smartmontools


  1. ------------ 在基於 Debian/Ubuntu 的係統上 ------------
  2. $ sudo apt-get install smartmontools
  3. ------------ 在基於 RHEL/CentOS 的係統上 ------------
  4. $ sudo yum install smartmontools

安裝完成之後,使用 smartctl 控製磁盤集成的 S.M.A.R.T 係統。你可以這樣查看它的手冊或幫助:


  1. $ man smartctl
  2. $ smartctl -h

然後執行 smartctrl 命令並在命令中指定你的設備作為參數,以下命令包含了參數 -H或 --health 以顯示 SMART 整體健康自我評估測試結果。


  1. $ sudo smartctl -H /dev/sda10

檢查 Linux 硬盤健康

檢查 Linux 硬盤健康

上麵的結果指出你的硬盤很健康,近期內不大可能發生硬件失效。

要獲取磁盤信息總覽,使用 -a 或 --all 選項來顯示關於磁盤所有的 SMART 信息,-x 或 --xall 來顯示所有關於磁盤的 SMART 信息以及非 SMART 信息。

原文發布時間為:2017-11-16

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-06-06 07:34:42

  上一篇:go  在 Kali Linux 下實戰 Nmap(網絡安全掃描器)
  下一篇:go  test