raw image fsck
글쓴이: choboja / 작성시간: 월, 2010/07/19 - 8:16오후
안녕하세요? raw image 파일이 있습니다. (virtualbox image파일을 raw파일로 변환시킨것입니다.)
해당 raw image를 loopback device로
$ mount -o loop,offset=32256 xxx.raw /mnt
이렇게 마운트하고 필요한 파일을 복사한 뒤에 fsck를 돌리고 싶은데
마운트를 하지 않은 상태에서 raw 이미지를 fsck하는 방법이 있을까요?
마운트를 한 상태로 fsck를 하게되면 파일 시스템에 심각한 손상이 간다고 나오니 할수도 없고,
즉, raw 이미지 자체를 fsck함으로써 linux 부팅시에 fsck를 하지 않을려고 하는것이 목적입니다.
Forums:
man losetup
man losetup
답변 감사합니다.
어제 구글링을 통해 losetup 명령어에 대해 알게 되었고,
이렇게 해서 fsck를 수행하고 다시 image를 가상머신을 통해 부팅을 시키니,
fsck 1.41.4 (27-Jan-2009)
/dev/sda1: Superblock last mount time is in the future. FIXED.
/dev/sda1: Superblock last write time is in the future. FIXED.
/dev/sda1 has filesystem last checked time in the future, check forced.
/ 69.4% /dev/sda1: Entry 'mnt' in / (2) has deleted/unused inode 602657. CLEARED.
/dev/sda1: |======================================== - 71.9% /dev/sda1: Entry 'xdg-user-dirs.mo' in /usr/share/locale/ko/LC_MESSAGES (668252) has delete
d/unused inode 618945. CLEARED.
/dev/sda1: Entry 'vim-runtime' in /usr/share/lintian/overrides (667882) has deleted/unused inode 610801. CLEARED.
/dev/sda1: Entry 'vim' in /usr/share/lintian/overrides (667882) has deleted/unused inode 610802. CLEARED.
|================================================== / 89.6% /dev/sda1: Inode 2 ref count is 21, should be 20. FIXED.
/dev/sda1: ***** REBOOT LINUX *****
/dev/sda1: 171781/1001712 files (0.4% non-contiguous), 2206596/4006201 blocks
fsck died with exit status 3
[fail]
다른 이미지 역시
/dev/sda1: Entry 'rtc' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/
unused inode 510593. CLEARED.
/dev/sda1: Entry 'ide' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/
unused inode 511226. CLEARED.
/dev/sda1: Entry 'ata' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/
unused inode 511320. CLEARED.
/dev/sda1: Entry 'message' in /usr/src/linux-2.6.28.10/drivers (289569) has dele
ted/unused inode 511586. CLEARED.
/dev/sda1: Entry 'virtio' in /usr/src/linux-2.6.28.10/drivers (289569) has delet
ed/unused inode 511885. CLEARED.
/dev/sda1: Entry 's390' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted
/unused inode 533157. CLEARED.
/dev/sda1: Entry 'atm' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/
unused inode 533348. CLEARED.
/dev/sda1: Entry 'sh' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/u
nused inode 533484. CLEARED.
/dev/sda1: Entry 'firewire' in /usr/src/linux-2.6.28.10/drivers (289569) has del
eted/unused inode 533494. CLEARED.
/dev/sda1: Entry 'mfd' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/
unused inode 533549. CLEARED.
/dev/sda1: Entry 'uwb' in /usr/src/linux-2.6.28.10/drivers (289569) has deleted/
이런 메시지가 나오는데, 이전에 수행한 raw image 를 fsck한경우에는 이런걸 잡아내지 못한것인가요?
losetup해서 fsck를 수행하면 위와 같은 메시지를 출력하면서 이미 수정이 되어야되는것 같은데, 제대로 동작하지 앟은것 같은 생각이 듭니다.
위의 fsck를 수행하지 않으면, 부팅후 리눅스 콘솔에서 아래와 같은 메시지를 지속적으로 출력합니다.
[ 641.246067] EXT3-fs error (device sda1): htree_dirblock_to_tree: bad entry in
directory #903993: rec_len is smaller than minimal - offset=0, inode=0, rec_len
=0, name_len=0
[ 641.246084] Aborting journal on device sda1.
[ 641.248413] ext3_abort called.
[ 641.248417] EXT3-fs error (device sda1): ext3_journal_start_sb: Detected abor
ted journal
[ 641.248426] Remounting filesystem read-only
[ 641.249035] Remounting filesystem read-only
[ 641.249909] EXT3-fs error (device sda1): htree_dirblock_to_tree: bad entry in
directory #903994: rec_len is smaller than minimal - offset=36864, inode=0, rec
_len=0, name_len=0
[ 641.249985] EXT3-fs error (device sda1): htree_dirblock_to_tree: bad entry in
directory #903994: rec_len is smaller than minimal - offset=126976, inode=0, re
c_len=0, name_len=0
아 그리고 man fsck에서 fsck died with exit status 3
상태가 3인건 메뉴얼에 나오지 않는데, 이 상태는 무엇인지 모르겠네요.
도움 부탁드릴께요.
댓글 달기