如何在单独的分区上存储/ var?
我想将/var
存储在/var
的单独分区上。 设置它的正确方法是什么?
首先准备一个新分区(例如,使用parted
和mkfs
)。
假设分区是/ dev / sda5
挂载新分区:
mkdir /var2 mount /dev/sda5 /var2
同步您当前的var:
rsync -a /var/ /var2
将条目添加到/ etc / fstab
/dev/sda5 /var ext4 defaults 2 2
重启。
如果您碰巧需要返回给您,您的旧/ var只会注释掉fstab中的条目。
当我接管由我的雇主的托管公司为我配置的新虚拟服务器时,我为var
和home
创建了额外的逻辑卷,这些卷是根分区中的常规目录。 由于虚拟服务器提供程序没有提供类似KVM的接口,我可以通过该接口以单用户模式访问服务器,因此我使用了与Aleksander概述的方法非常相似的方法(此答案包含有关恢复磁盘空间的额外详细信息)除了特定于LVM的命令之外)。
使用LVM创建和使用新的/ var文件系统
为新var
卷创建文件系统,挂载它(使用临时目录)并将文件从当前/var
复制到新文件系统。 使用rsync
复制文件时,请使用其-a, --archive
选项保留时间戳,所有权,模式等,并使用其-X, --xattrs
选项保留扩展属性,例如AppArmor使用的安全标签和SELinux的。
sudo lvcreate -L 60GB -n var VolGroup00 sudo mkfs.ext4 /dev/VolGroup00/var sudo mkdir /var.new sudo mount /dev/VolGroup00/var /var.new sudo rsync -raX /var/ /var.new/
更新文件系统表
通过将以下行添加到/etc/fstab
将新文件系统配置为/var
的新挂载点。 请注意, 0
用作传递号(最后一个字段),以便在一定次数的重新启动后不会自动检查文件系统( fsck
)(我无法以单用户模式登录服务器) 。
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
由于我无法更改为单用户模式,因此请重新启动计算机以将此新卷用作/var
。
从根文件系统恢复磁盘空间
重新启动计算机后,执行以下步骤以清除临时目录并从根文件系统中删除旧的/var
文件:
-
删除临时挂载点:
sudo rmdir /var.new
-
创建一个新的挂载点,以创建根文件系统上旧
/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/