阅读本指南后,我尝试将某些文件夹(例如/var
和/home
)移动到单独的分区:
我能够成功移动一个文件夹这指导。
但是,它似乎不适用于多个文件夹,并且我的所有文件夹都转储到没有适当文件夹的分区中。
我想将/var
、/home
、 、挂载/tmp
到单独的分区上;有人可以指导我吗?
答案1
1. 首先,您需要一些未分配的空间来为每个安装点(/var、/home、/tmp)创建分区。为此,请使用 Gparted。
2. 然后您需要为这些分区创建文件系统(也可以使用 Gparted 完成)或使用:
mkfs.ext4 /dev/sdaX
例如,在 /dev/sdaX 设备上创建新的 ext4 文件系统(将 /dev/sdaX 替换为您自己的设备)
3. 将新文件系统挂载到/mnt下
mkdir /mnt/var
mount /dev/sdaX /mnt/var
4. 进入单用户模式,以便在此过程中目录上没有 rw 活动
init 1
5. 输入您的 root 密码。
6. 仅备份var中的数据(而不是/var目录本身)
cd /var
cp -ax * /mnt/var
7. 数据传输成功后,重命名 /var 目录。
cd /
mv var var.old
8. 新建var目录
mkdir var
9. 卸载新分区。
umount /dev/sdaX
10.将其重新挂载为/var
mount /dev/sdaX /var
11. 编辑 /etc/fstab 文件以包含新分区,以 /var 为挂载点,以便在启动时自动挂载。
/dev/sdaX /var ext4 defaults 0 0
12. 对 /home 和 /tmp 重复步骤 1-11。
13.最后返回多任务模式。
init 5
答案2
如果您想在同一分区上使用它们,您可以使用LVM
或三个简单的绑定安装。
要创建基于绑定的解决方案,您
- 创建带有文件系统的分区
- 进入救援模式(单用户仍然需要一些文件夹)
- 将其安装为
/mnt/data
移动所有要移动的文件夹。使用
cp
andmv dir dir.old
可能更安全,但由于我在安装后执行了此操作,因此对我来说并不重要。mv /home /mnt/data/ mv /var /mnt/data/
在 fstab 中创建适当的绑定挂载条目,例如我有
UUID=01234567-89abc-def0-1234-567890abcde /mnt/data ext4 noatime,nodiratime,relatime 0 0 # Binds /mnt/data/opt /opt none bind 0 0 /mnt/data/home /home none bind 0 0 /mnt/data/usr /usr none bind 0 0
重启
答案3
我个人要么使用 @Fabian 的绑定安装解决方案,要么使用符号链接:
/etc/fstab
为新分区创建条目(blkid
用于获取新分区的正确 UUID,不要忘记mkdir /mnt/data
):UUID=01234567-89abc-def0-1234-567890abcde /mnt/data ext4 defaults 0 0
使用
mount -a
或类似的方法挂载新分区将原始文件夹移动到新分区:
mv /var /mnt/data/ mv /home /mnt/data/ # ... (you get the point)
创建符号链接
ln -s /mnt/data/var /var ln -s /mnt/data/home /home # ...
尽管绑定安装方法可能是最佳实践解决方案,但我更喜欢这种方法,因为您最终不会得到不必要的长列表df
和mount
分区列表。
答案4
将 /var 目录安装在不同的分区上。让我们开始附加一个新的 LVM、分区并创建所需的文件系统。
使用新磁盘创建 LVM:/dev/sdb
# pvcreate /dev/sdb
# vgcreate vg_var /dev/sdb
# vgdisplay
# df -Th
# lvcreate -n lv_var -l +<PE Free Size>
# mkfs.xfs /dev/mapper/vg_var-lv_var
# lsblk
创建一个新的挂载点并挂载新分区:
# mkdir /mnt/var
# mount /dev/mapper/vg_var-lv_var /mnt/var/
开始将 /var 同步到新的临时安装分区
# rsync -aqxP /var/* /mnt/var
同步成功后卸载临时分区
# umount /dev/mapper/vg_var-lv_var /mnt/var/
# lsblk
编辑 /etc/fstab 以包含新分区并选择相关文件系统:
/dev/mapper/vg_var-lv_var /var xfs defaults 0 0
重新启动系统即可完成。确认一切正常工作,并可以选择通过引导到某些 Live Linux 系统等来删除旧的 var 目录。