xfs_check が実行されないのはなぜですか?

xfs_check が実行されないのはなぜですか?

完全に更新された Ubuntu 9.04 "Jaunty" i686 サーバーを実行しています。 という LVM グループに 1 つの XFS ボリュームがあります/dev/mapper/vg0-bigthree

シングル ユーザー モードで起動し、ボリュームがアンマウントされていることを確認した場合でも、xfs_check を実行しようとするたびに次のメッセージが表示されます。

$ sudo xfs_check /dev/mapper/vg0-bigthree 
xfs_check: /dev/mapper/vg0-bigthree contains a mounted and writable filesystem

fatal error -- couldn't initialize XFS library

念のため、まずは走ってみることから始めました

$ sudo fsck.xfs /dev/mapper/vg0-bigthree 
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_check(8) and xfs_repair(8).

xfs_check に進む前に。

また、ボリュームのデバイスまたはマウント ポイントの出力mountまたは入力に何も発生していないことが確認できます。/etc/mtab

答え1

これが私のシステムでこの問題を回避した方法です。xfs_check を実行しようとしたときに、あなたと同じ問題が発生しました。明らかに、fs はマウント解除されています。autofs または nfs のいずれかがまだファイルシステムを保持しているようで、それらが停止するとチェックが実行されました。

[root@openfiler ~]# xfs_check /dev/backup2/backup2
xfs_check: /dev/backup2/backup2 contains a mounted and writable filesystem

fatal error -- couldn't initialize XFS library

[root@openfiler ~]# df

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdc2             35775912    804200  33125044   3% /
/dev/sdc1               101086     14410     81457  16% /boot
tmpfs                   512440         0    512440   0% /dev/shm

[root@openfiler ~]# cat /etc/mtab
/dev/sdc2 / ext3 rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sdc1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/rpc_pipefs rpc_pipefs rw 0 0
automount(pid2644) /misc autofs rw,fd=4,pgrp=2644,minproto=2,maxproto=4 0 0
automount(pid2681) /net autofs rw,fd=4,pgrp=2681,minproto=2,maxproto=4 0 0
nfsd /proc/fs/nfsd nfsd rw 0 0

[root@openfiler ~]# service autofs stop
Stopping automount:                                        [  OK  ]

[root@openfiler ~]# cat /etc/mtab
/dev/sdc2 / ext3 rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sdc1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/rpc_pipefs rpc_pipefs rw 0 0
nfsd /proc/fs/nfsd nfsd rw 0 0

[root@openfiler ~]# service nfs stop
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
[root@openfiler ~]# cat /etc/mtab
/dev/sdc2 / ext3 rw 0 0
/proc /proc proc rw 0 0
/sys /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/sdc1 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/rpc_pipefs rpc_pipefs rw 0 0
nfsd /proc/fs/nfsd nfsd rw 0 0

[root@openfiler ~]# xfs_check /dev/backup2/backup2

答え2

試してみstrace -fF -o /tmp/debugfile sudo xfs_check /dev/mapper/vg0-bigthreeて、grep open /tmp/debugfile.*xfs_check がエラーを出す前に舞台裏で実際に何が起こっているかを確認してください。

関連情報