# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
首先准备一个新分区(例如,使用
parted
andmkfs
)。假设分区是 /dev/sda5
挂载新分区:
同步您当前的变量:
将条目添加到 /etc/fstab
重启。
如果您碰巧需要返回您的旧 /var,只需将 fstab 中的条目注释掉即可。
在虚拟服务器上配置新的 /var 分区
当我接管了由我雇主的托管公司提供的新虚拟服务器时,根文件系统中没有足够的可用空间。幸运的是,他们使用了逻辑卷管理器 (LVM)来细分虚拟磁盘,并且有足够的可用空间来创建新卷。我为根文件系统中的常规目录
var
创建了额外的逻辑卷。home
由于虚拟服务器提供商没有提供类似 KVM 的接口,通过它我可以在单用户模式下访问服务器,因此我使用了与 Aleksander 概述的方法非常相似的方法(这个答案包括用于恢复磁盘空间的额外详细信息)除了特定于 LVM 的命令)。使用 LVM 创建一个新的 /var 文件系统
为新文件系统创建一个逻辑卷
var
,挂载它(使用临时目录)并将文件从当前文件系统复制/var
到新文件系统:由于正在运行的进程将
/var
保持打开和使用的文件,因此不能简单地将目录树移动到新的文件系统。递归(-r
)将文件从当前/var
分区复制到新的文件系统,同时保留文件属性和扩展属性(-a, --archive
选项)。谨慎的用户可能会在复制之前先创建当前卷的LVM 快照,但这对于这个问题来说太多了离题的细节。或者,可以使用 复制文件
rsync
,其中包含-a, --archive
保留时间戳、所有权、模式等的-X, --xattrs
选项,以及保留扩展属性(例如 AppArmor 和 SELinux 使用的安全标签)的选项:更新文件系统表
通过将以
/var
下行添加到/etc/fstab
. 请注意,它用作通行证编号(最后一个字段),以便在一定次数的重新启动后0
不会自动检查文件系统( )。fsck
由于无法更改为单用户模式,请重新启动计算机以将此新卷用作
/var
.删除临时挂载点
机器重新启动后,新的文件系统将被挂载,
/var
因此可以安全地删除临时挂载点:从根文件系统恢复磁盘空间
旧
/var
文件仍将占用根分区上的空间,但在挂载另一个文件系统时它们不容易访问/var
(它们被新文件系统“屏蔽”,使用该/var
目录作为其挂载点)。使用临时挂载点挂载根文件系统,以便原始/var
目录的内容可通过备用路径获得。