我正在使用 Ubuntu Server 20.04,并且可以访问偏僻的通过 SSH 服务器。
我需要根文件系统中的更多空间,因此已/var
在另一个分区上复制了目录。然后,我将其添加到我的目录中,/etc/fstab
以便将新目录挂载到/dev/sdX2
旧目录中/var
。
一切顺利...df -h /var
表示正在使用新安装的版本。
但是,我现在无法删除原始文件以释放我急需的空间。如果我运行mount --bind / /mnt/root
,然后尝试执行任何操作,例如mv /mnt/root/var /mnt/root/var.old
,我会得到:mv: cannot move 'var' to 'var.old': Device or resource busy
。
由于这实际上只能通过 SSH 访问,因此我无法进入单用户模式。
因此,我能想到的唯一另一件事就是编写一个脚本,将原始/var
目录移动到/var.old
,然后,一旦我看到一切正常,就一劳永逸地将其删除。
主要问题是这个脚本需要加载前 fstab
或者任何东西都与有关var
,我甚至不确定这是否可能?
还有其他想法吗?
答案1
您的 mount 命令不太好。您必须调用磁盘驱动器设备,而不是根符号,即
sudo mount /dev/sdZX /mnt/root
sudo mv /mnt/root/var /mnt/root/var.old
sudo umount /mnt/root
答案2
您无法mv
删除rm
该文件夹/mnt/root/var
,因为/var
它被用作新分区的挂载点。相反,mv
它的内容是:
mkdir /var.old
mount --bind / /mnt/root
mv /mnt/root/var/"*" /mnt/root/var.old/
umount /mnt/root
检查一切正常后,您可以删除/var.old
rm -r /var.old