존재하다이 답변@psusi 사용자가 e2fsck
문서에서 찾을 수 없는 사용법을 보여주었습니다 e2fsck /dev/sdc1?offset=2048
.
RAID 배열의 장치를 확인하는 데 사용하려고 합니다(수동 실패 및 삭제). 간단히 말해서: /dev/sdb2의 오프셋 67108864에서 시작하는 ext4 파일 시스템이 있다는 것을 알고 있지만 제대로 마운트 해제되지 않았습니다. 나는 다음을 시도했습니다( /dev/sdb2
항상 다른 테스트 간에 동일한 내용으로 되돌아갑니다).
실행이 제대로 작동하고 이를 사용하여 5개의 고아 inode가 제거되고 파일 시스템이 완전히 복원되어 마운트된
mount /dev/sdb2 -o loop,offset=67108864 /tmp/mnt
것을 볼 수 있습니다 .dmesg | tail
EXT4-fs: 5 orphan inodes deleted EXT4-fs: recovery complete EXT4-fs: mounted filesystem with ordered data mode. Opts: (null)
마찬가지로,
losetup /dev/loop0 --offset 67108864 /dev/sdb2 && e2fsck -n /dev/loop0
:root: recovering journal root: Clearing orphaned inode 1179687 (uid=1000, gid=1000, mode=0100600, size=16384) root: Clearing orphaned inode 1179686 (uid=1000, gid=1000, mode=0100600, size=16384) root: Clearing orphaned inode 1179685 (uid=1000, gid=1000, mode=0100600, size=32768) root: Clearing orphaned inode 1179684 (uid=1000, gid=1000, mode=0100600, size=32768) root: Clearing orphaned inode 1179683 (uid=1000, gid=1000, mode=0100600, size=65536) root: clean, 225936/4882432 files, 2664100/19514624 blocks
e2fsck -p /dev/sdb2?offset=67108864
나는 이것이 위의 방법( 사용)과 동일하다고 생각했지만losetup
다음과 같은 결과를 얻습니다.root: recovering journal e2fsck: Bad magic number in super-block while trying to re-open root root: ********** WARNING: Filesystem still has errors **********
e2fsck
오프셋에 잘못된 값(예: 0)을 입력하면 파일 시스템을 찾을 수 없다는 오류가 발생하기 때문에 파티션을 찾았다고 확신합니다 . 또한e2fsck -p /dev/sdb2?offset=67108864
방법 1 또는 2 이후에 사용 하면root: clean, ...
.
offset
누구든지 이 옵션에 대한 문서를 알려주 e2fsck
거나 이것이 정확히 무엇을 하는지, 그리고 이것이 주어진 오프셋을 사용하여 루프백 장치를 설치하는 것과 어떻게 다른지 이해하는 데 도움을 줄 수 있는지 궁금합니다.
감사해요.
편집: 추가 정보. 이 동작을 다음과 같이 재현할 수 있습니다.
dd if=/dev/zero of=/tmp/disk bs=1M count=100
mkfs -t ext4 -E offset=70000000 /tmp/disk
sudo mount -o loop,offset=70000000 /tmp/disk /mnt/
ps > /mnt/test
cp /tmp/disk /tmp/disk2
cp /tmp/disk2 /tmp/disk2.copy
sudo umount /mnt
e2fsck -p /tmp/disk2?offset=70000000
# /tmp/disk2: recovering journal
# e2fsck: Bad magic number in super-block while trying to re-open /tmp/disk2
# /tmp/disk2: ********** WARNING: Filesystem still has errors **********
sudo mount -o loop,offset=70000000 /tmp/disk2.copy /mnt/
dmesg | tail
# [240760.866274] EXT4-fs (loop3): mounted filesystem with ordered data mode. Opts: (null)
# [240770.516865] EXT4-fs (loop3): recovery complete
# [240770.516869] EXT4-fs (loop3): mounted filesystem with ordered data mode. Opts: (null)
sudo umount /mnt
e2fsck -n /tmp/disk2?offset=70000000
# e2fsck 1.42.13 (17-May-2015)
# Warning: skipping journal recovery because doing a read-only filesystem check.
# /tmp/disk2: clean, 11/25688 files, 8896/102400 blocks
e2fsck -n /tmp/disk2.copy?offset=70000000
# e2fsck 1.42.13 (17-May-2015)
# /tmp/disk2.copy: clean, 11/25688 files, 8896/102400 blocks
보시다시피, 파일을 마운트하면 로그가 복원되고 e2fsck는 파일 시스템이 깨끗한 것으로 보고되지만 e2fsck -p
오류가 발생하고 로그는 복원되지 않습니다.