標籤:

修復硬碟假壞扇區

有時候外置硬碟在寫入過程中誤拔線,以後那個位置普通文件讀寫都會I/O error。其實硬碟沒有物理損傷,只是扇區寫到一半斷電造成硬碟底層的checksum錯誤。這種情況下mkfs或者重新分區都不能修復,需要把出錯的扇區覆蓋寫一次。

首先從日誌中找到出錯的扇區,類似這樣:

kernel: print_req_error: critical medium error, dev sdb, sector 2899968n

用badblocks掃一下出錯位置附近:

sudo badblocks -b 512 /dev/sdb 2899999 2899900n

badblocks預設單位是1024位元組,要改成512位元組扇區。

通常會掃出連續8個出錯扇區,因為硬碟底層實際是4K扇區,所以每次都是8個512位元組邏輯扇區一起錯。

然後把出錯扇區覆蓋一次:

sudo badblocks -b 512 -w /dev/sdb 2899976 2899968n

如果寫過程中出錯可能要拔掉硬碟再插一次。

推薦閱讀:

每個開發人員應該知道的 10 個 Linux 命令
為 CentOS 7 安裝最新穩定版的 Linux 內核
I/O會一直佔用CPU嗎?
2.5 寸的 SSD(固態硬碟)怎麼塞進 3.5 寸的 SATA 硬碟櫃?

TAG:Linux |