编辑:

编辑:

我正在跟进这个答案sudo rm -r /mnt/usr将我的 /usr 目录移至其他分区。当我尝试使用或删除旧的 /usr 文件时,sudo rm -rf /mnt/usr我得到了rm: cannot remove ‘/mnt/usr’: Device or resource busy。我该如何解决这个问题?

我有一个 Ubuntu Live USB,所以我可以尝试一下,但我也不确定如何/usr从 live USB 中删除旧文件。


编辑:

这是/etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
UUID=ac528df3-12fc-4583-acda-4bb3fbb47fb8 /               ext4    errors=remount-ro 0       1
UUID=a13080c5-6dde-468d-b5a3-a60d78fe6db0 none            swap    sw              0       0
UUID=0f226bb1-8acb-4343-9db9-b3e27bcea2f1 /home ext4    defaults    0   2
UUID=e21ed5be-d896-4b03-979d-5102b3b039fc /usr               ext3    errors=remount-ro 0       1

/dev/sda1   /media/shirley/windows7 ntfs    uid=1000,gid=1000   0 0

我的 /usr 的 fstab 条目与链接的帖子略有不同(例如使用 ext3,并且选项不同),因为我最初遵循的是这个ubuntuforums 帖子但总体流程是一样的。

sudo lsof | grep /mnt/usr刚刚得到

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
  Output information may be incomplete.

...我是否安装在/mnt上。

编辑2:

这是/etc/mtab(运行之后sudo mount --bind / /mnt,附加最后一行):

/dev/sdb1 / ext4 rw,errors=remount-ro 0 0
proc /proc proc rw,nodev,noexec,nosuid 0 0
sysfs /sys sysfs rw,nodev,noexec,nosuid 0 0
none /sys/fs/cgroup tmpfs rw,uid=0,gid=0,mode=0755,size=1024 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /sys/kernel/security securityfs rw 0 0
udev /dev devtmpfs rw,mode=0755 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0
tmpfs /run tmpfs rw,noexec,nosuid,size=10%,mode=0755 0 0
none /run/lock tmpfs rw,nodev,noexec,nosuid,size=5242880 0 0
none /run/shm tmpfs rw,nosuid,nodev 0 0
none /run/user tmpfs rw,nodev,noexec,nosuid,size=104857600,mode=0755 0 0
none /sys/fs/pstore pstore rw 0 0
/dev/sda1 /media/shirley/windows7 fuseblk rw,nosuid,nodev,allow_other,default_permissions,blksize=4096 0 0
/dev/sda3 /usr ext3 rw,errors=remount-ro 0 0
/dev/sda2 /home ext4 rw 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nodev,noexec,nosuid 0 0
systemd /sys/fs/cgroup/systemd cgroup rw,nosuid,noexec,nodev,none,name=systemd 0 0
vmware-vmblock /run/vmblock-fuse fuse.vmware-vmblock rw,nosuid,nodev,default_permissions,allow_other 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,user=shirley 0 0
/ /mnt none rw,bind 0 0

再次感谢!

答案1

阅读后提到的答案两次,有写你应该使用以下命令

$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr
$ sudo umount /mnt

因此使用

sudo rm -rf /mnt/usr

并不是

sudo rm -r /mnt/usr

正如您在问题中所写。

你应该读 ;)


我之前的回答可能对其他读者有帮助:

您已在挂载点挂载了一个分区/mnt/usr。使用命令sudo -rf /mnt/usr尝试删除此挂载点,但无法删除。要删除文件夹的内容,请使用

sudo find /mnt/usr -delete

了解find有关

man find

答案2

运行命令:

fuser -vm /mnt/usr

或者

lsof /mnt/usr

以 root 身份运行此命令,查看哪个进程和用户正在使用/mnt/usr并终止该进程,然后尝试/mnt/usr使用命令删除。

sudo rm -r /mnt/usr 

你将能够删除/mnt/usr

相关内容