存在するこの回答@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
エラーが発生してログは復元されません。