问题描述
我使用以下选项安装了 Ubuntu:
-
擦除磁盘并安装 Ubuntu
-
加密新的 Ubuntu 安装
-
使用LVM
如何创建 LVM 快照,以便在需要时能够恢复系统更改?
最佳办法
注意:所有命令都应从 sudo
执行
首先,减小根卷的大小,为快照卷腾出一些空间
-
从 Live CD 启动
-
fdisk -l
查看您的设备名称。 \n\n\n设备起始结束扇区大小类型\n/dev/sda1 2048 1050623 1048576 512M EFI 系统\n/dev/sda2 1050624 2050047 999424 488M Linux 文件系统\n/dev/sda3 2050048 500117503 4980674 56 237.5G Linux 文件系统\n \n/dev/sda3
在我的例子中 -
cryptsetup luksOpen /dev/sda3 crypt1
解密您的卷 -
vgscan --mknodes
查找所有卷组\n\n\n读取所有物理卷。这可能需要一段时间…\n使用元数据类型 lvm2 找到卷组 “ubuntu-vg”\n -
vgchange -ay
激活所有卷组\n\n\n卷组 “ubuntu-vg” 中的 2 个逻辑卷现在处于活动状态\n -
lvreduce -r -L -20G /dev/ubuntu-vg/root
将根卷的大小减少 20 Gb。这可能需要一段时间(我花了大约 4 分钟)。\n该空间稍后将用于创建 LVM 快照。 -
vgs
看看你实际上有 20G 的可用空间\n\n\nVG #PV #LV #SN Attr VSize VFree\nubuntu-vg 1 2 0 wz–n- 230.44g 20.01g\n -
reboot
并删除 Live CD
创建快照(即激活 “experimentation” 模式)
现在,每当您想对系统做一些有风险的事情时,请运行以下命令
-
lvcreate -s -n snap -L 20G /dev/ubuntu-vg/root
\n注意:/dev/ubuntu-vg/root
是您想要为其创建快照的逻辑卷 -
lvs
查看卷已创建\n\n\nLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert\nroot ubuntu-vg owi-aos— 201.59g \nsnap ubuntu-vg swi-a-s— 20.00g root 0.00 \nswap_1 ubuntu-vg -wi-ao—- 15.90g\n\n\n快照从运行lvcreate
的那一刻起就处于活动状态。您现在可以开始尝试新事物。
场景#1:您想要恢复更改
-
lvconvert --merge /dev/mapper/ubuntu--vg-snap
\n\n逻辑卷 ubuntu-vg/root 包含正在使用的文件系统。\n无法合并开放源卷。\n快照 ubuntu-vg/snap 的合并将在下次激活 ubuntu-vg/root 时进行。\n -
reboot
场景 #2:您想要保留更改
-
lvremove /dev/mapper/ubuntu--vg-snap
综上所述
您基本上必须运行 lvcreate
来启动该进程,然后运行 lvconvert --merge
或 lvremove
来结束它。
请记住,当快照处于活动状态时,由于 Copy-On-Write 策略,所有更改都将保存到这 20Gb 空间(或您设置的任何值)。\n检查剩余容量的一种方法是查看 lvs
命令的 Data% 列。