-->

2010-09-27

e2fsck の例

mount したまま実行した場合は、きっと、おかしくなります。
/ など umount できない場合には、別の linux を立ち上げる必要があります。
cd などの linux の場合、あまり古い CD だと CD の物理的な劣化やソフトウェアが古いため、後悔する場合があります。
お使いのデストリビューションの最新の CD のレスキューモードであれば良いかもしれません。
バックアップが取れる場合は、必ず取る、mount できない場合でも dd で取る、
バックアップが取れない場合は行わない or 覚悟する、
といった対策を行います。
$ dd if=/dev/DEV bs=512 conv=sync,noerror 2>/var/tmp/dd.DEV.err | gzip 2>/var/tmp/dd.DEV.gzip.err 1>/var/tmp/dd.DEV.out.gz
/tmp/のサイズが小さいとエラーになる場合があります。
cat: write error: No space left on device
cat: 書き込みエラー: デバイスに空き領域がありません
ssh経由でも大体同じです。
$ ssh 192.168.0.100 "sudo dd if=/dev/md124 bs=512 conv=sync,noerror" 2>/var/tmp/dd.md124.err | gzip 2>/var/tmp/dd.md124.gzip.err 1>/var/tmp/dd.md124.out.gz
バックアップが成功しているかどうかを確認したほうが良いです。
$ ll -h /var/tmp/dd.md124.*
-rw-r--r-- 1 xxx xxx  94 2010-09-27 03:53:01 /var/tmp/dd.md124.err
-rw-r--r-- 1 xxx xxx   0 2010-09-27 03:51:46 /var/tmp/dd.md124.gzip.err
-rw-r--r-- 1 xxx xxx 93M 2010-09-27 03:53:01 /var/tmp/dd.md124.out.gz
$ cat /var/tmp/dd.md124.err
513792+0 records in
513792+0 records out
263061504 bytes (263 MB) copied, 71.2668 s, 3.7 MB/s

(例) linux の場合
$ cd /tmp
$ gunzip dd.md124.out.gz
$ mkdir boot
$ sudo mount -o loop -r dd.md124.out /tmp/boot/
$ mount | grep dd.md124.out
/tmp/dd.md124.out on /tmp/boot type ext2 (ro,loop=/dev/loop0)
$ ls -alR /tmp/boot/
...

(例) windows の colinux の場合
# cobd5=D:\coLinux\gentoo\dd.md124.out を追加して再起動
$ sudo mount -r /dev/cobd5 /mnt/gentoo/
$ mount | grep /dev/cobd5
/dev/cobd5 on /mnt/gentoo type ext2 (ro)
$ ls -alR /mnt/gentoo/
...

マニュアルを読む。
$ man e2fsck

エラーあってもほっとく
$ e2fsck -n /dev/DEV
エラー比較的に安全なのは自動でyes
$ e2fsck -p /dev/DEV
ダメかもしれないが全部yes
$ e2fsck -y /dev/DEV

badblocks を安全に使いたい
$ e2fsck -p -c /dev/DEV
全部の場所をチェック
$ e2fsck -p -c -f /dev/DEV
ディレクトリ最適化
$ e2fsck -p -c -f -D /dev/DEV
詳細を表示
$ e2fsck -p -c -f -D -v /dev/DEV

バックグラウンドの場合-yに変更
$ e2fsck -y -c -f -D -v /dev/DEV 2>&1 1>/var/tmp/e2fsck.DEV.log &
$ tail -f /var/tmp/e2fsck.DEV.log

0 件のコメント: