修復硬碟假壞扇區
02-03
有時候外置硬碟在寫入過程中誤拔線,以後那個位置普通文件讀寫都會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 |