Answers:
首先准备一个新分区(例如parted
和mkfs
)。
说分区是/ dev / sda5
挂载新分区:
mkdir /var2
mount /dev/sda5 /var2
同步您当前的变量:
rsync -a /var/ /var2
将条目添加到/ etc / fstab
/dev/sda5 /var ext4 defaults 2 2
重启。
如果您碰巧需要回去,只需将旧的/ var注释掉fstab中的条目即可。
/
在当前系统运行时将其安装到其他位置(但在重新引导后)。然后,您可以随意/var
删除旧文件
blkid -o list -s UUID
,但我认为您需要使用sudo进行运行
当我接管由雇主托管公司提供的新虚拟服务器时,根文件系统中没有足够的可用空间。幸运的是,他们使用逻辑卷管理器(LVM)来细分虚拟磁盘,并且有足够的可用空间来创建新卷。我创建额外的逻辑卷的var
和home
其曾在根文件系统定期目录。由于虚拟服务器提供商没有提供类似KVM的界面,因此我可以通过该界面以单用户模式访问服务器,因此我使用了与Aleksander概述的方法非常相似的方法(此答案包括有关恢复磁盘空间的更多详细信息)。除了特定于LVM的命令)。
为新var
文件系统创建逻辑卷,挂载(使用临时目录)并将文件从当前文件复制/var
到新文件系统:
# 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
由于正在运行的进程将使文件/var
保持打开状态并在使用中,因此目录树不能简单地移至新文件系统。递归(-r
)将文件从当前/var
分区复制到新文件系统,同时保留文件属性和扩展属性(-a, --archive
选件)。谨慎的用户可能会在复制之前先创建当前卷的LVM快照,但这对于这个问题来说太过分了。
sudo cp -ra /var/ /var.new/
或者,可以使用复制文件rsync
,其-a, --archive
选项可以保留时间戳,所有权,模式等,还-X, --xattrs
可以选项保留扩展属性,例如AppArmor和SELinux使用的安全标签:
sudo rsync -raX /var/ /var.new/
通过将以/var
下行添加到,将新文件系统配置为用作新的安装点/etc/fstab
。请注意,0
它用作密码(最后一个字段),以便fsck
在重启一定次数后不会自动检查文件系统()。
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
由于无法更改为单用户模式,因此请重新引导计算机以将该新卷用作/var
。
机器重新启动后,新文件系统将被挂载,/var
因此可以安全地删除临时挂载点:
sudo rmdir /var.new
旧/var
文件仍将占据根分区上的空间,但是在挂载另一个文件系统时,它们不容易访问/var
(使用/var
目录作为其挂载点,新文件系统会“遮盖”它们)。使用临时安装点安装根文件系统,以使原始/var
目录的内容可通过备用路径使用。
sudo mkdir /old-root
sudo mount /dev/mapper/VolGroup00-root /old-root/
sudo rm -rf /old-root/var/*
sudo umount /old-root/
sudo rmdir /old-root/
lvcreate
并且mkfs.ext4
没有解释使用什么或为什么使用。也许您可以简单地说出来,因为它们不是答案的主要主题,因此是用于创建新分区。
/var
:从livecd开始,将分区安装在已安装的系统上,/
然后rm -rf /var/*
。