[Share Experiences] Linux逻辑卷管理(LVM)系统折腾者的利器-分分钟再加一个Linux
Tofloor
poster avatar
littlebat
deepin
2021-11-12 06:54
Author

(转自我的学习日记:https://www.learndiary.com/2021/11/partition-adjust-in-linux-on-lvm/ ,爱好 Linux 、开源及IT技术的朋友,今天的视频里有双11小福利哦,祝大家好运气)

在我的前2篇日记中,讲了配置“RAID0 加快磁盘速度” 和“把 “Linux 安装到 RAID0+LVM”上,今天这篇日记以两个有代表性的系统使用场景为例,以视频演示的方式介绍Linux逻辑卷管理(LVM)对 Linux 系统安装分区调整的方便性。一个场景是 Linux 根分区磁盘空间不够怎么一个命令扩大其容量,一个场景是怎样在分分钟内腾出一块分区恢复另一个备份的Linux发行版。视频地址:

https://www.bilibili.com/video/BV1N44y1v7Gi?share_source=copy_web

一、系统现状

现在运行的系统是 Deepin Linux 20.2.4,安装在一块128G的磁盘上,使用 3 个 LVM 逻辑卷 /dev/myvg/{swap,deepinroot,deepinhome} 分别容纳 swap(8G)、/(30G)、/home(90G) 分区。

二、调整目标
1、缩小 /home 为20G
2、扩大根分区 / 为50G
3、腾出一个20G大小的空间来恢复安装用 tar 备份的 Lubuntu
4、剩下的空间备用

三、步骤
因为在 LVM 中缩小分区时分区必须是卸载的,所以我们利用上篇日记中提到的 Deepin 安装光盘的 Live 环境来操作。
1、安装光盘运行中,在显示选择语言时,切换到 tty2 等控制台,执行startx即可。
2、进入 deepin live 模式可以设置一下分辨率之类的显示方面的东西。
3、查看并激活逻辑卷

sudo lvscan
sudo lvchange -a y /dev/myvg/{deepinroot,deepinhome} -v
sudo lvscan
4、建立临时挂载点,查看分区并挂载 tar 备份的 Lubuntu 所在分区

sudo mkdir /mnt/{tmp1,tmp2} -v
sudo fdisk -l
sudo mount /dev/sdb1 /mnt/tmp1 -v
5、调整 Deepin 的 /home 、/ 分区

sudo lvresize -L 20G -r /dev/myvg/deepinhome -v
sudo lvresize -L 50G -r /dev/myvg/deepinroot -v
6、创建供Lubuntu使用的逻辑卷 lubuntu

sudo lvcreate -L 20G -n lubuntu myvg
7、格式化 lubuntu 并把 tar 备份的系统恢复到 lubuntu 逻辑卷上

sudo mkfs.ext4 -L LUBUNTU /dev/myvg/lubuntu
sudo mount /dev/myvg/lubuntu /mnt/tmp2 -v
sudo tar -xpzvf /mnt/tmp1/lubuntu2110.tar.gz -C /mnt/tmp2/
cd /mnt/tmp2
sudo mv media m -v

cd /*/*/sudo mv * /mnt/tmp2/ -v

8、修改 Lubuntu 中的 fstab 和 grub.cfg中的根分区挂载设备为 /dev/myvg/lubuntu

cd ../../../
sudo vim etc/fstab
sudo vim boot/grub/grub.cfg
9、卸载光盘,重启进入 Deepin 中更新 grub 菜单
10、重启进入 Lubuntu 中更新 grub 全部菜单项
11、重启进入 Deepin 再次更新 grub 菜单,这次会添加更新过的 Lubuntu 菜单
完毕。

四、小结
Linux 下的 LVM 可以方便的扩大、缩小、添加、减少逻辑分区,喜欢尝试各种 Linux 发行版的朋友可以试用一下。如果需要安装不支持 LVM 的操作系统(如 Windows)在同一块硬盘上。你可以在创建 LVM 之前,对硬盘多分几个物理分区,LVM 也可以方便的加入或删除物理分区,这样你就可以腾出物理分区安装其它不支持 LVM 的操作系统了。

Reply Favorite View the author
All Replies
deepin-mq
deepin
2021-11-12 17:45
#1

感谢分享

Reply View the author
babyfengfjx
Super Moderator
CQA
2021-11-12 21:12
#2

经典技术贴~yeah

Reply View the author
Feng Yu
deepin
2021-11-12 21:16
#3

自从有了btrfs, zfs这一类高级文件系统之后,LVM已经用的越来越少了,当年学RHEL的时候专门花时间重点学习过LVM,现在发现没什么卵用了,因为LVM的功能在底层的文件系统基本都已经实现了,而且做的更好,底层FS上实现性能更高,LVM只有在不支持这些高级特性的文件系统比如EXT4上还有点用,以后用的会越来越少

Reply View the author
littlebat
deepin
2021-11-12 21:30
#4
Feng Yu

自从有了btrfs, zfs这一类高级文件系统之后,LVM已经用的越来越少了,当年学RHEL的时候专门花时间重点学习过LVM,现在发现没什么卵用了,因为LVM的功能在底层的文件系统基本都已经实现了,而且做的更好,底层FS上实现性能更高,LVM只有在不支持这些高级特性的文件系统比如EXT4上还有点用,以后用的会越来越少

我看到华为欧拉似乎仍是默认LVM部署。

我个人喜欢事先多个物理磁盘+多个物理分区+RAID+LVM 的结构,觉得层次分明,易于理解操作。

btrfs 和zfs 也浅尝则止,个人用着觉得有点复杂,无法把控的感觉。也许技术能力不足吧

Reply View the author
Feng Yu
deepin
2021-11-14 05:54
#5
littlebat

我看到华为欧拉似乎仍是默认LVM部署。

我个人喜欢事先多个物理磁盘+多个物理分区+RAID+LVM 的结构,觉得层次分明,易于理解操作。

btrfs 和zfs 也浅尝则止,个人用着觉得有点复杂,无法把控的感觉。也许技术能力不足吧

它那个系统基于CentOS的,RHEL/CentOS面向服务器操作系统,而且从上古时期就默认使用LVM,为了照顾这些人,所以依旧默认使用LVM,其实并不是LVM不可抛弃,而是向后兼容。

至于其他服务器操作系统比如Ubuntu Server, Debian Stable一类默认不会有LVM,在部署的时候你自己可以指定LVM, OpenSUSE Server, ArchLinux之类的是有一个默认不勾选的选项是LVM,也就是不默认LVM,但是可以让用户自己启用,也不需要像Ubuntu Server那样得用户手工挂载成LVM。

另外你把层次分太多也给自己增加了维护成本。其实底层硬件+上层FS两层已经很好的抽象了,RAID解决底层的硬件存储问题,而FS解决逻辑层的问题,FS能直接支持分区、快照、合并等功能就直接用,这样会比上面再套一层LVM接口效率更高,也会更稳定

Reply View the author
littlebat
deepin
2021-11-14 22:07
#6

我觉得,针对个人来说,哪种用得顺手就用哪种,有兴趣的话,也可以都尝试一下。如果有这方面的人才,说不定哪天就会出现国人领导的文件系统呢

不同的文件系统各有长短,生产环境针对不同的应用都会有格式和参数的调整,适合的就是好的。

纵观IT史,一些所谓技术不领先的产品笑到了最后。

比如,华为的欧拉系统如其愿景一般在国内甚至全球范围内的数字基础设施中普及,你说在上面用 LVM + EXT4 的多,还是 btrfs 或者其它系统多?

比如,哪天,btrfs 像Linux服务管理程序 systemd 一样在文件系统领域大发神威,一统江湖。那么,哪怕我觉得它不符合我不知好像在什么地方看到过的“一个程序只干好一个事”的unix哲学,我也得去适应它了。

Reply View the author
铁山老道孔乙己
deepin
2021-11-17 17:28
#7

我现在就用 btrfs ,非常好用。

特别是 子卷+快照,真的是折腾系统的利器!

Reply View the author
littlebat
deepin
2021-11-23 17:49
#8

@Feng Yu @grassvalley 我上周关注了一下 btrfs,从 Debian wiki 上( https://wiki.debian.org/Btrfs )的描述来看,感觉还是不太适合普通用户使用。不待旧 bug 修复,新特性又不断引入,有不少要避坑的地方。我根据 Debian wiki 上的文章(Btrfs migration: https://wiki.debian.org/Btrfs%20migration)制作了一个视频,参见:把 Deepin Linux 迁移到 btrfs 文件系统上 https://bbs.deepin.org/zh/post/228272

Reply View the author
Feng Yu
deepin
2021-11-23 19:58
#9
littlebat

@Feng Yu @grassvalley 我上周关注了一下 btrfs,从 Debian wiki 上( https://wiki.debian.org/Btrfs )的描述来看,感觉还是不太适合普通用户使用。不待旧 bug 修复,新特性又不断引入,有不少要避坑的地方。我根据 Debian wiki 上的文章(Btrfs migration: https://wiki.debian.org/Btrfs%20migration)制作了一个视频,参见:把 Deepin Linux 迁移到 btrfs 文件系统上 https://bbs.deepin.org/zh/post/228272

我现在主要用zfs和f2fs了

Reply View the author
xuqi
deepin testing team
2022-10-09 22:45
#10

like

Reply View the author
流浪的加菲
deepin
2023-07-05 00:17
#11

这真是技术活了,当赏like

Reply View the author