将/home目录挂载到新分区(或新硬盘)

谨以此文记录自用linux系统/home目录扩容过程(当时没有截图保存,因此下文部分图是事后的示意图,不过影响不大)。

系统安装时只挂载了/目录在一个分区下,后续想把/home目录单独挂载到容量更大的分区,可行。

工具

使用图形分区工具:GParted,类似windows下的diskgenius,功能强大,感谢开源世界!

iso刻录工具:balenaEtcher,将iso文件刻录到u盘制作启动盘;

多合一启动盘工具:Ventoy,Ventoy解决了装一个系统就要刻录一次的痛点,使用balenaEtcherVentoy镜像刻录到u盘后,只需要将要启动的镜像文件复制到u盘Ventoy/文件夹下,启动时选择,可以同时复制多个文件,u盘启动时使用方向键进行选择启动即可。

GParted使用原则是不能操作当前系统使用的分区(如想在当前系统下压缩部分磁盘空间出来,是操作不了的),如果要操作当前系统的分区:

  • 需要以启动盘形式(GParted启动盘)启动后操作;
  • 或者启动带有GParted软件包的linux安装镜像(如manjaro xfce镜像自带Gparted),在试用模式下操作。

步骤

假定已经装好新硬盘(未分区)或通过Gparted分出空闲磁盘空间,直接在当前系统下操作就好;如果计算机上的硬盘都没有空闲磁盘空间的情况下,需要先通过u盘启动盘启动带有Gparted的系统,进入试用模式(不要安装!)调整出可用的空闲磁盘空间后方可进入系统操作。

总体操作大致分为以下几步

image-20211116180939668

1. 分区

  1. 在系统中打开Gparted,加锁的分区都是当前系统使用的分区(不能操作);

image-20211116162927893

  1. 默认灰色区域为空闲空间,选中目标区域后鼠标右键选择“新建”分区,根据实际需求填入给/home分配的磁盘空间,单位为MB,分区名称根据其他分区进行命名,这里是nvme盘,因此分区都是/devnvme0n1p开头,我的分区之前分到/devnvme0n1p5,所以填/devnvme0n1p6(图片仅为示意图),文件系统保持默认ext4就好,最后点击“添加”;

image-20211116164925016

  1. 此时还没有开始真正的分区,要点击工具栏上的✅按钮才开始执行分区操作(数据无价,需要确认无误后操作);

image-20211116170047281

2. 挂载新分区到/mnt/home

  1. 分区新建完成后打开终端,在/mnt目录下新建/home目录;
sudo mkdir /mnt/home
  1. 把新分区挂载到/mnt/home目录,分区名/dev/nvme0n1p6根据实际情况调整;
sudo mount /dev/nvme0n1p6 /mnt/home

3. 将/home目录的文件同步到/mnt/home

使用rsync命令进行同步,等待命令行返回。

sudo rsync -aXS /home/ /mnt/home

说明:

-a --archive :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"
–xattrs, -X :保留扩展属性
–relative, -R:使用相对路径名

4. 挂载/mnt/home到/home

  1. 重命名原来的/home,做完这一步,有些依赖于/home目录的软件将异常,不要慌,因为/home目录系统找不到了;
sudo mv /home /home_old
  1. 新建/home目录;
sudo mkdir /home
  1. 卸载/dev/nvme0n1p6分区设备(根据实际情况卸载);
sudo umount /dev/nvme0n1p6
  1. 挂载/dev/nvme0n1p6到/home,此时异常的软件应该恢复正常了。
sudo mount /dev/nvme0n1p6 /home

5. 修改/etc/fstab文件,实现开机自动挂载

  1. 查看blkid,根据自己的实际分区输入;
blkid | grep /dev/nvme0n1p6
  1. 复制上一步输出中的UUID值(""中的字符串)备用;
  2. 修改/etc/fstab文件;
sudo vim /etc/fstab

在打开的文件末尾添加一行,参照下图填入,本人直接用了原来/分区的部分参数

image-20211116174425351

说明:

noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)
defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.
dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 应设为 0。
fsck 读取 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2. 0 表示设备不会被 fsck 所检查。

编辑完成后保存。

  1. 重启系统后无异常,删除/home_old(慎重操作)。
sudo rm -rf /home_old

注:本文记录的是将/home挂载到新分区,个人认为挂载到新硬盘也是类似的操作。

参考

[1] Linux系统下重新挂载/home到其他硬盘或分区

[2] 第2章 rsync(一):基本命令和用法

[3] linux之fstab文件详解

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LVM(Logical Volume Manager)是一种逻辑卷管理工具,可以将硬盘分成一个个的逻辑卷,灵活地管理存储空间。下面介绍如何使用LVM卷挂载到/home目录。 1. 创建物理卷 首先,需要创建物理卷。假设我们要使用/dev/sdb分区作为物理卷,可以使用以下命令: ``` pvcreate /dev/sdb ``` 2. 创建卷组 在创建逻辑卷之前,需要先创建卷组。假设我们要创建一个名为vg_home的卷组,可以使用以下命令: ``` vgcreate vg_home /dev/sdb ``` 3. 创建逻辑卷 在创建卷组之后,可以创建逻辑卷。假设我们要创建一个名为lv_home的逻辑卷,大小为50GB,可以使用以下命令: ``` lvcreate -L 50G -n lv_home vg_home ``` 4. 格式化逻辑卷 在创建逻辑卷之后,需要格式化它。假设我们要将逻辑卷格式化为ext4文件系统,可以使用以下命令: ``` mkfs.ext4 /dev/vg_home/lv_home ``` 5. 挂载逻辑卷 最后,将逻辑卷挂载到/home目录。可以先创建一个挂载点,如/mnt/home,然后将逻辑卷挂载到此目录: ``` mkdir /mnt/home mount /dev/vg_home/lv_home /mnt/home ``` 可以将上述步骤写成一个脚本,方便重复使用。例如: ``` #!/bin/bash # create physical volume pvcreate /dev/sdb # create volume group vgcreate vg_home /dev/sdb # create logical volume lvcreate -L 50G -n lv_home vg_home # format logical volume mkfs.ext4 /dev/vg_home/lv_home # mount logical volume mkdir /mnt/home mount /dev/vg_home/lv_home /mnt/home ``` 注意,以上步骤需要以root权限执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值