因為放在 google 教育帳號的影片要逃難了,
累積錄了好幾年的公視節目有好幾TB,
趁外接硬碟特價買了 Seagate 的 12TB。
如果複製到一半才發現有壞軌就麻煩了,
還沒放資料前所以先整顆做壞軌掃瞄。
找了好多篇,
原來 ArchLinux 的 wiki 內的 badblocks 就有詳細的說明,
這裡就記下我的流程。
1.確認硬碟路徑
是sdc 這顆,所以位置在 /dev/sdc
#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 282.4M 0 part /boot
├─sda2 8:2 0 200G 0 part
├─sda3 8:3 0 509.9M 0 part
└─sda4 8:4 0 246.4G 0 part /
2.先查詢硬碟 block 大小
以前是 512bytes ,
但是新的後來都是 4k,
看 I/O size 這行
#fdisk -x /dev/sdc
Disk /dev/sdc: 149.05 GiB, 160041885696 bytes, 312581808 sectors
Disk model: ST9160314AS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
4k 硬碟會是
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
3.測試硬碟讀寫速度
用來設定一次要幾個 block,加快測試速度
結果 56.77MB/s
#hdparm -t /dev/sdc
dev/sdc: Timing buffered disk reads: 172 MB in 3.03 seconds = 56.77 MB/sec
4.計算block 數
用比56.77MB小一點的 50MB/s 算,
512bytes 是 0.5k
50*1024/0.5 = 102400
5.執行指令
date:顯示目前時間,用來確認開始的時間
time:計算執行多久
badblocks:掃描程式
-w:破壞性寫入測試,比非破壞性快,反正硬碟裡面沒資料
-s:顯示進度
-v:詳細顯示所有訊息,偵測到壞軌時顯示到螢幕上
-b: 設定 block 大小,步驟2查到是512
-c:一次處理的 block 數量,步驟4計算出102400
-p:檢查幾才沒發現錯誤才停止,預設0表示首次檢查完就停止
-o:將壞軌資料寫入到檔案 ~/Desktop/badblock-list
/dev/sdc:檢查 /dev/sdc
#date;time sudo badblocks -wsv -b 512 -c 102400 -p 0 /dev/scd -o ~/Desktop/badblock-list;date
沒有留言:
張貼留言