badsect を行い、 fsck をかける2017年05月20日 13時21分48秒

折角なので、badsect を試してみる。このファイルシステムは、書き込み用にマウント出来ないので、newfs をした。もしかしたら、-f で強制的に、マウントして試しても良かったのかも知れない。

まず、ディレクトリを作る。そして、badsect にディレクトリ名と fsck にて問題があるとされたセクタを指定する。

# mkdir .BAD
# badsect .BAD 20468153 20468154
Don't forget to run ``fsck /dev/ada0s2e''
初めて使うので知らなかったが、fsck を行うように出た。

折角なので、各種コマンドがどの様にファイルを見つけるか実験。

# find .BAD/
.BAD/
.BAD/20468153
.BAD/20468154
# ls -l .BAD/
ls: 20468153: Bad file descriptor
ls: 20468154: Bad file descriptor
total 0
# file .BAD/*
file: No match.
Don't forget to run ``fsck /dev/ada0s2e''
ls は認識するが、表示形式が他のファイルとは全く違う。find はファイルとして見つけた。file はファイルの存在自体を見つけられていない。

次に fsck をかける。

# fsck_ufs -y /dev/ada0s2e
** /dev/ada0s2e
** Last Mounted on /usr/local
** Phase 1 - Check Blocks and Sizes

HOLD BAD BLOCK? yes

INCORRECT BLOCK COUNT I=1219937 (0 should be 8)
CORRECT? yes


HOLD BAD BLOCK? yes

2558519 DUP I=1219938
UNEXPECTED SOFT UPDATE INCONSISTENCY

INCORRECT BLOCK COUNT I=1219938 (0 should be 8)
CORRECT? yes

INTERNAL ERROR: dups with softupdates
UNEXPECTED SOFT UPDATE INCONSISTENCY
** Phase 1b - Rescan For More DUPS
2558519 DUP I=1219937
UNEXPECTED SOFT UPDATE INCONSISTENCY

** Phase 2 - Check Pathnames
DUP/BAD  I=1219937  OWNER=root MODE=100600
SIZE=4096 MTIME=Jun 16 23:23 2017 
FILE=/.BAD/20468153

UNEXPECTED SOFT UPDATE INCONSISTENCY

REMOVE? yes

DUP/BAD  I=1219938  OWNER=root MODE=100600
SIZE=4096 MTIME=Jun 16 23:23 2017 
FILE=/.BAD/20468154

UNEXPECTED SOFT UPDATE INCONSISTENCY

REMOVE? yes

** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
BAD/DUP FILE I=1219937  OWNER=root MODE=100600
SIZE=4096 MTIME=Jun 16 23:23 2017 
CLEAR? yes

** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? yes

SUMMARY INFORMATION BAD
SALVAGE? yes

BLK(S) MISSING IN BIT MAPS
SALVAGE? yes

282705 files, 2127437 used, 408434 free (66 frags, 51046 blocks, 0.0% fragmentation)

***** FILE SYSTEM MARKED DIRTY *****

***** FILE SYSTEM WAS MODIFIED *****

***** PLEASE RERUN FSCK *****
不良セクタを認識し、特別な処理をしたようだ。この後、また fsck をかけるように出る。
# fsck_ufs -y /dev/ada0s2e
** /dev/ada0s2e
** Last Mounted on /usr/local
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
282705 files, 2127437 used, 408434 free (66 frags, 51046 blocks, 0.0% fragmentation)

***** FILE SYSTEM MARKED CLEAN *****
今度は正常に終了したようだ。

前回