使用 LVM 将多个硬盘合并,解决 /home 目录容量不足问题

你是否有这样一个难题,由于在安装系统时仅仅给了/home目录100G硬盘大小,但过了一段时间,发现“哎,100G不够用了,当初怎么不多分点呢。”你当然知道重装系统就能解决这个问题,但你的数据就都丢了呀。这时,刚好你还有几块没用的硬盘,于是你就想:可不可以不用重装系统,就可以扩容 /home 目录呢?

1-将多个硬盘合并成一个虚拟磁盘

首先Linux只允许一个硬盘对应一个挂载点,也就是说,你只可以使用一个硬盘挂载到 /home,其余硬盘无法再进行挂载。解决方法有两种,一种是Logical Volume Manager(LVM)将多个硬盘合并成一个逻辑卷组,形成一个虚拟磁盘,并且可以方便地动态调整容量。另一种是RAID存储阵列,允许将多个磁盘组成一个大型存储池,并提供冗余功能。这里采用的是第一种。

1.1 使用fdisk -l 查看当前系统识别到的硬盘:

在这里插入图片描述
假设我需要挂载的是这三块硬盘。

1.2 合并成一个虚拟硬盘

# 1.创建 pv 
# pvcreate [物理卷名]
sudo pvcreate /dev/nvme1n1
sudo pvcreate /dev/nvme2n1
sudo pvcreate /dev/nvme3n1

# 2.创建 vg
# vgcreate [自定义lvm名] [物理卷名]
sudo vgcreate lvm_data /dev/nvme1n1 # 其中一个盘做开始盘
sudo vgextend lvm_data /dev/nvme2n1 # 其余两个盘做扩展
sudo vgextend lvm_data /dev/nvme3n1

# 3.创建 lv
# lvcreate -l[容量] -n [自定义分区名] [lvm名]
# eg:lvcreate -l100G -n vg_data lvm_data
sudo lvcreate -l 100%VG -n vg_data lvm_data
sudo mkfs -t ext4 /dev/lvm_data/vg_data  # 做格式化

1.3 查看是否虚拟硬盘是否创建成功

df -h

在这里插入图片描述

2-将虚拟硬盘挂载到/home目录下

2.1 挂载到/home目录下

# 1. 创建目录
sudo mkdir /data
# 2. 把/dev/mapper/lvm_data-vg_data挂载到/data
sudo mount /dev/mapper/lvm_data-vg_data /data
# 3. 同步/home到/data,执行这一步需要时间,会出现卡住不动的情况,一定要耐心等待。
sudo rsync -aXS /home/. data/.
# 4. 重命名/home
sudo mv /home /home_old
# 5. 新建/home
sudo mkdir /home
# 6. 取消/dev/mapper/lvm_data-vg_data
sudo umount /dev/mapper/lvm_data-vg_data
# 7. 重新挂载/dev/mapper/lvm_data-vg_data到/home
sudo mount /dev/mapper/lvm_data-vg_data /home

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

  1. 查看/dev/mapper/lvm_data-vg_dataUUID

    blkid
    

    在这里插入图片描述

  2. UUID复制下来,修改/etc/fstab文件,实现开机自动挂载

    sudo nano /etc/fstab  # nano打开,使用别的编辑器可以
    

    在文件最后添加(#号是解释,不需要添加):

    # UUID=8da46012-ab9c-434f-a855-2484112fd1a7:这是文件系统的唯一标识符(UUID),用于指定要挂载的文件系统。
    # /home:这是文件系统的挂载点,也就是文件系统将被挂载到的目录。
    # ext4:这是文件系统的类型,这里是 ext4 类型的文件系统。
    # nodev,nosuid:这是文件系统的挂载选项。nodev 表示不允许在该文件系统上创建设备文件,nosuid 表示不允许 setuid 和 setgid 位。
    # 0:这是用于确定文件系统是否应该被备份的字段。0 表示不需要备份。
    # 2:这是用于确定文件系统是否应该被检查的字段。2 表示在启动时需要被检查。
    UUID=5bf12e10-cf61-447e-b171-91de34eedee7 /home ext4 nodev,nosuid 0 2
    
  3. 重启系统,检测是否成功

    shutdown -r now
    # 重启后执行
    df -h
    

    在这里插入图片描述

  4. 删除多余文件

    sudo rm -rf /home_old
    suod rm -rf /data
    

参考资料

Linux中将多块新硬盘合并成一个,挂载到/data目录下 - CSDN(Persistence___)
Linux系统下重新挂载/home到其他硬盘或分区 - 知乎(saszhuqing)

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

误伤这又何妨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值