讓我們從壞道和壞塊的定義開始說起,它們是一塊磁碟或閃存上不再能夠被讀寫的部分,一般是由於磁碟表面特定的物理損壞或閃存晶體管失效導致的。
隨著壞道的繼續積累,它們會對你的磁碟或快閃記憶體容量產生令人不快或破壞性的影響,甚至可能會導致硬體失效。
同時還需要注意的是壞塊的存在警示你應該開始考慮買塊新磁碟了,或者簡單地將壞塊標記為不可用。
因此,在這篇文章中,我們透過幾個必要的步驟,使用特定的磁碟掃描工具讓你能夠判斷 Linux 磁碟或快閃記憶體是否存在壞道。
以下就是步驟:
在 Linux 上使用壞塊工具檢查壞道
壞塊工具可以讓用戶掃描設備檢查壞道或壞塊。裝置可以是一個磁碟或外置磁碟,由一個如 /dev/sdc 這樣的檔案代表。
首先,透過超級使用者權限執行fdisk 指令來顯示你的所有磁碟或快閃記憶體的資訊以及它們的分割資訊:
$ sudo fdisk -l
列出Linux 檔案系統分割區
列出Linux 檔案系統分區
列出Linux 檔案系統分割的Linux 硬碟上的壞道/壞塊:
$ sudo badblocks -v /dev/sda10 > badsectors.txt
在Linux 上掃描硬碟壞道
上面的命令中,badblocks 掃描設備/dev/sda10(上面的命令中,badblocks 掃描設備/dev/sda10(
上面的命令中,badblocks 掃描設備/dev/sda10() -v 選項讓它顯示操作的詳情。另外,這裡使用了輸出重定向將操作結果重定向到了檔案 badsectors.txt。
如果你在你的磁碟上發現任何壞道,卸載磁碟並像下面這樣讓系統不要將資料寫入回報的磁區中。
你需要執行 e2fsck(針對 ext2/ext3/ext4 檔案系統)或 fsck 指令,指令中也需要用到 badsectors.txt 檔案和裝置檔案。
-l 選項告訴指令將在指定的檔案 badsectors.txt 中列出的磁區號碼加入壞區塊清單。
------------ 针对 for ext2/ext3/ext4 文件系统 ------------ $ sudo e2fsck -l badsectors.txt /dev/sda10 或 ------------ 针对其它文件系统 ------------ $ 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:------------ 在基于 Debian/Ubuntu 的系统上 ------------ $ sudo apt-get install smartmontools ------------ 在基于 RHEL/CentOS 的系统上 ------------ $ sudo yum install smartmontools
$ man smartctl$ smartctl -h
$ sudo smartctl -H /dev/sda10