Linux fsck.ext3 はディスクをマウントしていないのに「デバイスまたはリソースがビジーです」と表示します

Linux fsck.ext3 はディスクをマウントしていないのに「デバイスまたはリソースがビジーです」と表示します

編集この古い質問は読む価値がないかもしれません。解決策は簡単です。ドライブのパーティションではなく、ドライブ全体にチェックディスクを使用しました。それだけです。matnagel/編集

私は、VMware 1.0.9 上で 8GB の仮想ディスクを備えた Ubuntu 8.04 サーバー インスタンスを実行しています。

ディスクのメンテナンスのために、仮想ディスクのコピー (ホスト上の停止した VM 上の sda の 2 つの vmdk ファイルのコピーを作成) を作成し、それを元の VM に追加しました。これで、この VM には元の仮想ディスク sda と 1:1 コピー (sdd) が存在します。2 つの追加ディスク sdb と sdc がありますが、無視します。

VM を起動したときに sdb がマウントされていないことを期待します。そのため、実行中の VM から sdd に対して ext2 fsck を実行しようとしましたが、fsck によって sdb がマウントされたことが報告されました。

$ sudo fsck.ext3 -b 8193 /dev/sdd
e2fsck 1.40.8 (13-Mar-2008)
fsck.ext3: Device or resource busy while trying to open /dev/sdd
Filesystem mounted or opened exclusively by another program?

「mount」コマンドでは、sdd が​​マウントされているかどうかはわかりません。

$ sudo mount
/dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sdc1 on /mnt/r1 type ext3 (rw,relatime,errors=remount-ro)
/dev/sdb1 on /mnt/k1 type ext3 (rw,relatime,errors=remount-ro)
securityfs on /sys/kernel/security type securityfs (rw)

警告を無視して fsck を続行すると、多くのエラーが報告されました。

これを制御するにはどうすればよいですか? sdd が​​マウントされているかどうかを確認するより良い方法はありますか? または、どのように「ビジー」ですか? マウント解除するにはどうすればよいですか? ubuntu が自動的にマウントされないようにするにはどうすればよいですか。それとも、他に見落としているものがありますか? また、/var/log/syslog からはマウントされているかどうかわかりません。これは、起動シーケンスの最後の部分です。

kernel: [   14.229494] ACPI: Power Button (FF) [PWRF]
kernel: [   14.230326] ACPI: AC Adapter [ACAD] (on-line)
kernel: [   14.460136] input: PC Speaker as /devices/platform/pcspkr/input/input3
kernel: [   14.639366] udev: renamed network interface eth0 to eth1
kernel: [   14.670187] eth1: link up
kernel: [   16.329607] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/
kernel: [   16.367540] parport_pc 00:08: reported by Plug and Play ACPI
kernel: [   16.367670] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
kernel: [   19.425637] NET: Registered protocol family 10
kernel: [   19.437550] lo: Disabled Privacy Extensions
kernel: [   24.328857] loop: module loaded
kernel: [   24.449293] lp0: using parport0 (interrupt-driven).
kernel: [   26.075499] EXT3 FS on sda1, internal journal
kernel: [   28.380299] kjournald starting.  Commit interval 5 seconds
kernel: [   28.381706] EXT3 FS on sdc1, internal journal
kernel: [   28.381747] EXT3-fs: mounted filesystem with ordered data mode.
kernel: [   28.444867] kjournald starting.  Commit interval 5 seconds
kernel: [   28.445436] EXT3 FS on sdb1, internal journal
kernel: [   28.445444] EXT3-fs: mounted filesystem with ordered data mode.
kernel: [   31.309766] eth1: no IPv6 routers present
kernel: [   35.054268] ip_tables: (C) 2000-2006 Netfilter Core Team
mysqld_safe[4367]: started
mysqld[4370]: 100124 14:40:21  InnoDB: Started; log sequence number 0 10130914
mysqld[4370]: 100124 14:40:21 [Note] /usr/sbin/mysqld: ready for connections.
mysqld[4370]: Version: '5.0.51a-3ubuntu5.4'  socket: '/var/run/mysqld/mysqld.sock'  port: 3
/etc/mysql/debian-start[4417]: Upgrading MySQL tables if necessary.
/etc/mysql/debian-start[4422]: Looking for 'mysql' in: /usr/bin/mysql
/etc/mysql/debian-start[4422]: Looking for 'mysqlcheck' in: /usr/bin/mysqlcheck
/etc/mysql/debian-start[4422]: This installation of MySQL is already upgraded to 5.0.51a, u
/etc/mysql/debian-start[4436]: Checking for insecure root accounts.
/etc/mysql/debian-start[4444]: Checking for crashed MySQL tables.

答え1

はい、パーティションではなくドライブ全体で fsck を実行しているという点は正しいです。ファイルシステムがマウントされているかどうかを確認するには、/etc/mtab をチェックし、lsof の出力を grep して、パーティションを開いているプロセスがないことを確認します。

答え2

入力したのに気付きました

$ sudo fsck.ext3 /dev/sdd

これはパーティションではなくディスク全体をチェックするように指示します。

$ sudo fsck.ext3 /dev/sdd1

これでこの質問は時代遅れになると思います。ただ確認しているだけです...

答え3

今後の参考のために、常に を確認してください/proc/mounts。このmountコマンドは の内容のみを表示するため/etc/mtab、現実とは同期していない可能性があります。

答え4

/etc/fstab をチェックして、/dev/sdd を 2 回使用していないことを確認します。

もしそうなら、レスキュー シェルに入るために root パスワードを入力するよう求められたら、/ を rw として再マウントします。

マウント -o 再マウント -o rw /

/ fs または /etc/fstab がある場所 (たとえば /tmp/root) に一時マウント ディレクトリを作成します。

mkdir /tmp/root

そこにルートファイルシステムをマウントします

/dev/sd をマウントしますか? /tmp/root

/etc/fstabを編集する

vi /tmp/root/etc/fstab

問題を修正し、書き込み、再起動します。

関連情報