使用 LVM 将多个硬盘合并,解决 /home 目录容量不足问题
误伤这又何妨
于 2023-11-08 21:38:42 发布
阅读量698
收藏
点赞数 11
文章标签: 5G 运维
版权
你是否有这样一个难题,由于在安装系统时仅仅给了/home目录100G硬盘大小,但过了一段时间,发现“哎,100G不够用了,当初怎么不多分点呢。”你当然知道重装系统就能解决这个问题,但你的数据就都丢了呀。这时,刚好你还有几块没用的硬盘,于是你就想:可不可以不用重装系统,就可以扩容 /home 目录呢?
目录
1-将多个硬盘合并成一个虚拟磁盘
1.1 使用`fdisk -l` 查看当前系统识别到的硬盘:
1.2 合并成一个虚拟硬盘
1.3 查看是否虚拟硬盘是否创建成功
2-将虚拟硬盘挂载到/home目录下
2.1 挂载到/home目录下
2.2 修改/etc/fstab文件,实现开机自动挂载
参考资料
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文件,实现开机自动挂载
查看/dev/mapper/lvm_data-vg_data的 UUID
blkid
把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
重启系统,检测是否成功
shutdown -r now
# 重启后执行
df -h
删除多余文件
sudo rm -rf /home_old
suod rm -rf /data
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_61552056/article/details/134297482