将/home目录挂载到新分区(或新硬盘)
/home目录挂载到新分区步骤:1. 给/home目录分配新分区2. 挂载新分区到临时目录/mnt/home3. 同步/home目录数据到新分区4. 重命名/home目录,新建空/home目录5. 卸载新分区6. 挂载新分区到/home目录7. 修改fstab文件使新分区自动挂载
谨以此文记录自用linux系统/home
目录扩容过程(当时没有截图保存,因此下文部分图是事后的示意图,不过影响不大)。
系统安装时只挂载了/目录在一个分区下,后续想把/home目录单独挂载到容量更大的分区,可行。
工具
使用图形分区工具:GParted,类似windows下的diskgenius
,功能强大,感谢开源世界!
iso刻录工具:balenaEtcher,将iso文件刻录到u盘制作启动盘;
多合一启动盘工具:Ventoy,Ventoy解决了装一个系统就要刻录一次的痛点,使用balenaEtcher将Ventoy镜像刻录到u盘后,只需要将要启动的镜像文件复制到u盘Ventoy/文件夹下,启动时选择,可以同时复制多个文件,u盘启动时使用方向键进行选择启动即可。
GParted
使用原则是不能操作当前系统使用的分区(如想在当前系统下压缩部分磁盘空间出来,是操作不了的),如果要操作当前系统的分区:
- 需要以启动盘形式(
GParted
启动盘)启动后操作; - 或者启动带有
GParted
软件包的linux安装镜像(如manjaro xfce镜像自带Gparted),在试用模式下操作。
步骤
假定已经装好新硬盘(未分区)或通过Gparted
分出空闲磁盘空间,直接在当前系统下操作就好;如果计算机上的硬盘都没有空闲磁盘空间的情况下,需要先通过u盘启动盘启动带有Gparted的系统,进入试用模式(不要安装!)调整出可用的空闲磁盘空间后方可进入系统操作。
总体操作大致分为以下几步
1. 分区
- 在系统中打开Gparted,加锁的分区都是当前系统使用的分区(不能操作);
- 默认灰色区域为空闲空间,选中目标区域后鼠标右键选择“新建”分区,根据实际需求填入给/
home
分配的磁盘空间,单位为MB,分区名称根据其他分区进行命名,这里是nvme盘,因此分区都是/devnvme0n1p
开头,我的分区之前分到/devnvme0n1p5
,所以填/devnvme0n1p6
(图片仅为示意图),文件系统保持默认ext4就好,最后点击“添加”;
- 此时还没有开始真正的分区,要点击工具栏上的✅按钮才开始执行分区操作(数据无价,需要确认无误后操作);
2. 挂载新分区到/mnt/home
- 分区新建完成后打开终端,在/mnt目录下新建/home目录;
sudo mkdir /mnt/home
- 把新分区挂载到/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
- 重命名原来的/home,做完这一步,有些依赖于/home目录的软件将异常,不要慌,因为/home目录系统找不到了;
sudo mv /home /home_old
- 新建/home目录;
sudo mkdir /home
- 卸载/dev/nvme0n1p6分区设备(根据实际情况卸载);
sudo umount /dev/nvme0n1p6
- 挂载/dev/nvme0n1p6到/home,此时异常的软件应该恢复正常了。
sudo mount /dev/nvme0n1p6 /home
5. 修改/etc/fstab文件,实现开机自动挂载
- 查看blkid,根据自己的实际分区输入;
blkid | grep /dev/nvme0n1p6
- 复制上一步输出中的
UUID
值(""
中的字符串)备用; - 修改/etc/fstab文件;
sudo vim /etc/fstab
在打开的文件末尾添加一行,参照下图填入,本人直接用了原来/分区的部分参数
说明:
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 所检查。
编辑完成后保存。
- 重启系统后无异常,删除/home_old(慎重操作)。
sudo rm -rf /home_old
注:本文记录的是将/home挂载到新分区,个人认为挂载到新硬盘也是类似的操作。
参考
[3] linux之fstab文件详解
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)