编辑这个老问题可能不值得一读,因为解决方案很简单。我在整个驱动器上使用了 checkdisk,而不是在该驱动器的分区上,仅此而已。matnagel /编辑
我在 vmware 1.0.9 上运行带有 8GB 虚拟磁盘的 ubuntu 8.04 服务器实例。
对于磁盘维护,我制作了虚拟磁盘的副本(通过在主机上停止的 vm 上复制 sda 的 2 个 vmdk 文件)并将其添加到原始 vm。现在这个 vm 有它的原始虚拟磁盘 sda 加上一个 1:1 副本 (sdd)。我忽略了另外 2 个磁盘 sdb 和 sdc。)
我希望启动 vm 时不会挂载 sdb。所以我尝试 tp 从正在运行的 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.
是的,您是对的,因为您在整个驱动器而不是分区上运行 fsck。要检查文件系统是否已挂载,您可以检查 /etc/mtab 并 grep lsof 的输出,以确保没有进程打开您的分区。
我才意识到我输入了
它告诉检查整个磁盘而不是分区:它应该是
我认为这使这个问题过时了。我只是在检查...
为了将来参考,请始终检查
/proc/mounts
,因为该mount
命令仅显示 中的内容/etc/mtab
,这可能与现实不同步。检查 /etc/fstab,确保您没有使用 /dev/sdd 两次。
如果是这样,当提示输入 root 密码以进入救援 shell 时,将 / 重新挂载为 rw:
为 /fs 或 /etc/fstab 所在的任何位置(例如 /tmp/root)创建一个临时挂载目录
在那里挂载你的根文件系统
编辑你的 /etc/fstab
解决你的问题,写它,重新启动....