怎么折腾也弄不坏的 Linux 系统?- Linux逻辑卷管理(LVM)快照功能

当对系统进行一些不可预知后果的操作时,我们需要提前对系统备份。工具很多,如 Deepin 全盘安装默认方案就自带系统备份与恢复功能,还有全盘镜像备份的 cloneZilla,快照备份的timeshift 等等。我今天再介绍一种Linux逻辑卷管理(LVM)的快照备份功能。用虚拟机演示恢复一个删除了重要系统文件夹的 Deepin Linux 操作系统。视频演示地址:https://www.bilibili.com/video/BV1Pr4y1k7SQ/

一、系统现状
现在运行的系统是 Deepin Linux 20.2.4 和 Lubuntu 21.10 双系统,安装在一块128G的磁盘上,使用 4 个 LVM 逻辑卷 /dev/myvg/{swap,deepinroot,deepinhome,lubuntu} 分别容纳 swap(8G)、Deepin 的 /(50G)和 /home(20G) 、Lubuntu 的 / (20G)分区。另余下30G的卷组空间未分配。

二、步骤
1、进入 Deepin Linux 中,创建用于 / 分区和 /home 分区的快照卷, 大小分别是 10G 和 1G

sudo lvscan 
df -h
sudo lvcreate -s -L 10G -n deepinrootsnap1 /dev/myvg/deepinroot -v
sudo lvcreate -s -L 1G -n deepinhomesnap1 /dev/myvg/deepinhome -v
sudo lvscan

2、强制删除 / 分区中的一些重要系统文件夹

ls /
sudo rm /{bin,etc,sbin,usr,var,home} -frv

3、重启系统,不能进入 Deepin 系统了
4、重启进入在另一逻辑卷上的 Lubuntu(或者进入 Deepin 安装光盘 Live 模式也行),恢复快照

sudo lvscan
sudo lvchange -a y /dev/myvg/deepinroot -v # 如果相应逻辑卷未激活时就激活
sudo mkdir /mnt/{tmp1,tmp2} -v # 创建临时挂载点
sudo mount /dev/myvg/deepinroot /mnt/tmp1 -v
sudo mount /dev/myvg/deepinrootsnap1 /mnt/tmp2 -v
df -h
sudo umount /mnt/{tmp1,tmp2} -v
sudo lvconvert --mergesnapshot /dev/myvg/deepinrootsnap1 -v
sudo lvconvert --mergesnapshot /dev/myvg/deepinhomesnap1 -v

5、重启,系统正常。
完毕。

三、注意事项
1、需要 LVM 快照备份的源分区必须建立在 LVM 逻辑卷上面;
2、进行快照备份和恢复的系统都必须安装LVM(Deepin Linux 上包名是 lvm2);
3、卷组(VG)中必须有空余的空间用于创建快照;
4、快照只存储在源备份分区基础上改变了的数据,所以快照分区应大于备份分区数据量改变的大小;
5、恢复快照时如源分区(和快照分区)没有激活,则在下次激活后自动在后台恢复快照;
6、如果 /home 分区是独立的,正在运行中的系统破坏可能会影响到其中文件,最好一并建立 /home 分区的快照。

发表评论

电子邮件地址不会被公开。 必填项已用*标注