ブログトップ

Tom's Lab

tomslabo.exblog.jp

Tomの研究所

ブロック破損リカバリー

rootへのメールを携帯に転送するようにしてから、毎日Logwatchがメールを送ってくる。

内容は以下。
--------------------- Smartd Begin ------------------------
Currently unreadable (pending) sectors detected:
/dev/sda - 48 Time(s)
1 unreadable sectors detected
/dev/sdb - 48 Time(s)
341 unreadable sectors detected
Offline uncorrectable sectors detected:
/dev/sdb - 48 Time(s)
36 offline uncorrectable sectors detected
---------------------- Smartd End -------------------------

/dev/sdbのDISKのブロックが壊れているようだ。(赤い部分が問題)
d0182233_0345482.jpg


で調査した。






# grep -i "smartd" /var/log/messages | tail
Jan 21 20:05:15 centos smartd[2924]: Device: /dev/sdb, 32 Offline uncorrectable sectors
Jan 21 20:35:14 centos smartd[2924]: Device: /dev/sda, 1 Currently unreadable (pending) sectors
Jan 21 20:35:15 centos smartd[2924]: Device: /dev/sdb, 291 Currently unreadable (pending) sectors
Jan 21 20:35:15 centos smartd[2924]: Device: /dev/sdb, 32 Offline uncorrectable sectors
Jan 21 21:05:14 centos smartd[2924]: Device: /dev/sda, 1 Currently unreadable (pending) sectors
Jan 21 21:05:15 centos smartd[2924]: Device: /dev/sdb, 291 Currently unreadable (pending) sectors
Jan 21 21:05:15 centos smartd[2924]: Device: /dev/sdb, 32 Offline uncorrectable sectors
Jan 21 21:35:14 centos smartd[2924]: Device: /dev/sda, 1 Currently unreadable (pending) sectors
Jan 21 21:35:14 centos smartd[2924]: Device: /dev/sdb, 291 Currently unreadable (pending) sectors
Jan 21 21:35:14 centos smartd[2924]: Device: /dev/sdb, 32 Offline uncorrectable sectors

# smartctl --test=short /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 255 minutes for test to complete.
Test will complete after Sat Jan 22 02:13:02 2011

Use smartctl -X to abort test.

# smartctl /dev/sda --log=selftest
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 4610 -


messagesにはエラーがあるが、smartctlではエラーがでない。
--test=longでもエラーなし

ほんとにエラー???

badblocksで検査すると。


# badblocks -vs -o sdb /dev/sdb
1675980608
1676737784
1850597872


/dev/sdbにエラーがある。

このDISKはRAID0にしているので1DISKだけの交換は難しい。
この際、RAID0を止めて普通のDISKとして使うことにする。
(最初から分かっていたがRAID0はリカバリーが難しい)

てな訳でRAID0のデータを取り敢えず別DISKにバックアップ。
バックアップには、REGZA録画のために買ったHD-CB2.0TU2を勝ち割りしたWD20EARSを使用。
しかしWD20EARSを増設するとOSが立ち上がらない。BIOS起動完了後、OS起動に入らない。

良く見るとGSATA1にシステムディスクを接続していた。(マザーはGA-D510UD)
増設はGSATA0にしたので増設DISKをつなぐと、増設DISKのOSから立ち上がろうとするが
OSが無いので当然起動しない。(システムディスクの接続先を間違ってインストールしていた)

一か八かでシステムディスクをGSATA0に接続し直して再起動。
(勇気ある選択です。今まで苦労した設定作業が走馬灯のように蘇る。
仕事では絶対しない行動ですが、プライベートPCでは無鉄砲な強気です)
結果は無事起動。ドライブの概念があるWindowsなら絶対無理でした。

RAID0を削除し、通常のDISKとして接続。
その後、フォーマットしてマウントしてバックアップからデータを戻して完了。
フォーマットはbadblockをチェックしながらフォーマットしたので4TByteで12時間コースでした。
(mkfs に-cのオプションを指定 )



# mkfs -t ext3 -j -v -c /dev/sda1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244203520 inodes, 488378638 blocks
24418931 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
14905 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Running command: badblocks -b 4096 -X -s /dev/sda1 488378638
Checking for bad blocks (read-only test):done

# mkfs -t ext3 -j -v -c /dev/sdb1
1675980608
1676737784
1850597872
[root@centos ~]#mkfs -t ext3 -j -v -c /dev/sdb1
1675980608
1676737784
1850597872
[root@centos ~]# mkfs -t ext3 -j -v -c /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244203520 inodes, 488378638 blocks
24418931 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
14905 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Running command: badblocks -b 4096 -X -s /dev/sdb1 488378638
Checking for bad blocks (read-only test):done

mkfs -t ext3 -j -v -c /dev/sda1
ログは同じです。



以上、作業に何時間かかったのだろう。休日つぶれました。
[PR]
by tomslabo | 2011-01-31 00:22 | Linuxネタ