讓我們從壞道和壞塊的定義開(kāi)始說(shuō)起,它們是一塊磁盤(pán)或閃存上不再能夠被讀寫(xiě)的部分,一般是由于磁盤(pán)表面特定的物理?yè)p壞或閃存晶體管失效導(dǎo)致的。
隨著壞道的繼續(xù)積累,它們會(huì)對(duì)你的磁盤(pán)或閃存容量產(chǎn)生令人不快或破壞性的影響,甚至可能會(huì)導(dǎo)致硬件失效。
同時(shí)還需要注意的是壞塊的存在警示你應(yīng)該開(kāi)始考慮買(mǎi)塊新磁盤(pán)了,或者簡(jiǎn)單地將壞塊標(biāo)記為不可用。
因此,在這篇文章中,我們通過(guò)幾個(gè)必要的步驟,使用特定的磁盤(pán)掃描工具讓你能夠判斷 Linux 磁盤(pán)或閃存是否存在壞道。
以下就是步驟:
壞塊工具可以讓用戶(hù)掃描設(shè)備檢查壞道或壞塊。設(shè)備可以是一個(gè)磁盤(pán)或外置磁盤(pán),由一個(gè)如 /dev/sdc 這樣的文件代表。
首先,通過(guò)超級(jí)用戶(hù)權(quán)限執(zhí)行 fdisk 命令來(lái)顯示你的所有磁盤(pán)或閃存的信息以及它們的分區(qū)信息:
列出 Linux 文件系統(tǒng)分區(qū)
然后用如下命令檢查你的 Linux 硬盤(pán)上的壞道/壞塊:
sudo badblocks -v /dev/sda10 > badsectors.txt
在 Linux 上掃描硬盤(pán)壞道
上面的命令中,badblocks 掃描設(shè)備 /dev/sda10(記得指定你的實(shí)際設(shè)備),-v 選項(xiàng)讓它顯示操作的詳情。另外,這里使用了輸出重定向?qū)⒉僮鹘Y(jié)果重定向到了文件 badsectors.txt。
如果你在你的磁盤(pán)上發(fā)現(xiàn)任何壞道,卸載磁盤(pán)并像下面這樣讓系統(tǒng)不要將數(shù)據(jù)寫(xiě)入回報(bào)的扇區(qū)中。
你需要執(zhí)行 e2fsck(針對(duì) ext2/ext3/ext4 文件系統(tǒng))或 fsck 命令,命令中還需要用到 badsectors.txt文件和設(shè)備文件。
-l 選項(xiàng)告訴命令將在指定的文件 badsectors.txt 中列出的扇區(qū)號(hào)碼加入壞塊列表。
------------ 針對(duì) for ext2/ext3/ext4 文件系統(tǒng) ------------
$ sudo e2fsck -l badsectors.txt /dev/sda10
或
------------ 針對(duì)其它文件系統(tǒng) ------------
$ sudo fsck -l badsectors.txt /dev/sda10
這個(gè)方法對(duì)帶有 S.M.A.R.T(自我監(jiān)控分析報(bào)告技術(shù)Self-Monitoring, Analysis and Reporting Technology)系統(tǒng)的現(xiàn)代磁盤(pán)(ATA/SATA 和 SCSI/SAS 硬盤(pán)以及固態(tài)硬盤(pán))更加的可靠和高效。S.M.A.R.T 系統(tǒng)能夠幫助檢測(cè),報(bào)告,以及可能記錄它們的健康狀況,這樣你就可以找出任何可能出現(xiàn)的硬件失效。
你可以使用以下命令安裝 smartmontools:
------------ 在基于 Debian/Ubuntu 的系統(tǒng)上 ------------
$ sudo apt-get install smartmontools
------------ 在基于 RHEL/CentOS 的系統(tǒng)上 ------------
$ sudo yum install smartmontools
安裝完成之后,使用 smartctl 控制磁盤(pán)集成的 S.M.A.R.T 系統(tǒng)。你可以這樣查看它的手冊(cè)或幫助:
$ man smartctl
$ smartctl -h
然后執(zhí)行 smartctrl 命令并在命令中指定你的設(shè)備作為參數(shù),以下命令包含了參數(shù) -H 或 --health 以顯示 SMART 整體健康自我評(píng)估測(cè)試結(jié)果。
$ sudo smartctl -H /dev/sda10
檢查 Linux 硬盤(pán)健康
上面的結(jié)果指出你的硬盤(pán)很健康,近期內(nèi)不大可能發(fā)生硬件失效。
要獲取磁盤(pán)信息總覽,使用 -a 或 --all 選項(xiàng)來(lái)顯示關(guān)于磁盤(pán)所有的 SMART 信息,-x 或 --xall 來(lái)顯示所有關(guān)于磁盤(pán)的 SMART 信息以及非 SMART 信息。