首頁 >php教程 >PHP开发 >如何在Linux上偵測硬碟上的壞道和壞塊

如何在Linux上偵測硬碟上的壞道和壞塊

高洛峰
高洛峰原創
2016-11-18 09:15:551411瀏覽

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

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

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

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

以下就是步驟:

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

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

首先,透過超級使用者權限執行fdisk 指令來顯示你的所有磁碟或快閃記憶體的資訊以及它們的分割資訊:

$ sudo fdisk -l

如何在Linux上偵測硬碟上的壞道和壞塊

列出Linux 檔案系統分割區


列出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 系統能夠幫助檢測,報告,以及可能記錄它們的健康狀況,這樣你就可以找出任何可能出現的硬體失效。 如何在Linux上偵測硬碟上的壞道和壞塊

你可以使用以下指令安裝 smartmontools:

------------ 在基于 Debian/Ubuntu 的系统上 ------------
$ sudo apt-get install smartmontools
------------ 在基于 RHEL/CentOS 的系统上 ------------
$ sudo yum install smartmontools

安裝完成之後,使用 smartctl 控制磁碟整合的 S.M.A.R.T 系統。你可以這樣查看它的手冊或幫助:

$ man smartctl$ smartctl -h

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

$ sudo smartctl -H /dev/sda10

檢查 Linux 硬碟健康


🎜🎜上面的結果指出你的硬碟很健康,近期內不大可能發生硬體失效。 🎜🎜要獲取磁碟資訊總覽,使用 -a 或 --all 選項來顯示關於磁碟所有的 SMART 信息,-x 或 --xall 來顯示所有關於磁碟的 SMART 資訊以及非 SMART 資訊。 🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn