我想将安装的分区减少到/tmp
10GB,并将所有未使用的空间添加到该/
分区。
如果我umount -l /tmp
运行fsck.ext3 -f /dev/privg/lv_tmp
,我会得到这个:
fsck.ext3: Device or resource busy while trying to open /dev/privg/lv_tmp
Filesystem mounted or opened exclusively by another program?
LVM 重新分区的正确步骤是什么?
$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/privg-lv_root 12G 4.2G 6.9G 38% /
/dev/mapper/privg-lv_tmp 29G 3.2G 24G 12% /tmp
/dev/mapper/privg-lv_var 3.9G 1.5G 2.3G 40% /var
/dev/sda1 494M 40M 429M 9% /boot
tmpfs 16G 0 16G 0% /dev/shm
答案1
您需要卸载 ext3 文件系统才能缩小它。umount -l
意味着当文件系统上不再有打开的文件时,文件系统将被卸载。
运行lsof /tmp
以查看 上打开了哪些文件/tmp
。如果您正在运行 X 服务器,您将看到它的套接字/tmp/.X11-unix/X0
。您无法删除该套接字 1 并仍然能够连接到 X 服务器。除此之外,大多数文件往往是短暂的或属于可以重新启动的程序。
如果您确实想在实时系统上执行该操作,则需要迁移到不同的/tmp
文件系统,至少在操作期间是如此。您可以过渡到 tmpfs,其中/tmp
存储在 RAM 或交换区中;看本指南。事实上,tmpfs for/tmp
是一个常见的设置;您可能想坚持这一点并/tmp
完全删除分区(也许可以稍微扩大交换空间)。
一旦您能够关闭 中的所有内容/tmp
,您就可以卸载它。不要使用umount -l
,它在这里没有用,因为它释放挂载点而不是设备,而您想要的是释放设备。/tmp
卸载后,运行fsck
,运行resize2fs
以收缩它,并相应地收缩 LVM 逻辑卷。或者,您实际上可以通过直接缩小 LVM 卷并为/tmp
. (如果您有任何想要保留的数据/tmp
,那么您就错了。/tmp
适用于重新启动之间不需要保存的数据,并且关闭的文件/tmp
可以公平地删除。)
如果这一切看起来令人畏惧,请重新启动到恢复系统(Live CD 或 USB)并从那里进行操作。
也不能将其移动到另一个文件系统:这将删除原始文件系统并创建一个新的套接字。
答案2
您无法在正在运行的系统上卸载 /tmp。您需要从 LiveCD 或救援 CD 启动并在那里进行操作。