Linux fsck.ext3 顯示“裝置或資源繁忙”,儘管我沒有掛載磁碟

Linux fsck.ext3 顯示“裝置或資源繁忙”,儘管我沒有掛載磁碟

編輯這個老問題可能不值得一讀,因為解決方案很簡單。我在整個驅動器上使用了 checkdisk,而不是在該驅動器的一個分區上,僅此而已。馬特納格爾/編輯

我正在 vmware 1.0.9 上運行帶有 8GB 虛擬磁碟的 ubuntu 8.04 伺服器實例。

為了進行磁碟維護,我製作了虛擬磁碟的副本(透過在主機上已停止的虛擬機器上製作 sda 的 2 個 vmdk 檔案的副本)並將其新增至原始虛擬機器。現在,該虛擬機器擁有原始虛擬磁碟 sda 和 1:1 副本 (sdd)。還有 2 個額外的磁碟 sdb 和 sdc 我忽略了。

我希望啟動虛擬機器時不會安裝 sdb。因此,我嘗試從正在運行的虛擬機器對 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 並 grep lsof 的輸出,以確保沒有進程開啟您的分割區。

答案2

我剛剛意識到我輸入了

$ sudo fsck.ext3 /dev/sdd

它告訴檢查整個磁碟而不是分割區:它應該是

$ sudo fsck.ext3 /dev/sdd1

我認為這使得這個問題變得過時了。我只是在檢查...

答案3

為了將來參考,請始終檢查/proc/mounts,因為該mount命令僅顯示 中的內容/etc/mtab,這可能與現實不同步。

答案4

檢查 /etc/fstab,確保沒有使用 /dev/sdd 兩次。

如果是這樣,當提示輸入 root 密碼以進入救援 shell 時,將 / 重新掛載為 rw:

掛載-o重新掛載-o rw /

為 / fs 或 /etc/fstab 所在的任何位置建立臨時掛載目錄(例如 /tmp/root)

mkdir /tmp/根目錄

在那裡掛載你的根檔案系統

掛載/dev/sd? /tmp/根目錄

編輯 /etc/fstab

vi /tmp/root/etc/fstab

解決你的問題,寫下來,重新啟動...

相關內容