如何在 Ubuntu 中使用 LVM 快照?

Ale*_*tal 21 lvm

我已经使用这些选项安装了 Ubuntu:

  • 擦除磁盘并安装 Ubuntu
  • 加密新的 Ubuntu 安装
  • 使用 LVM

如何创建 LVM 快照,以便在必要时恢复系统更改?

Ale*_*tal 23

注意:所有命令都应该从 sudo

首先,减小根卷的大小,为快照卷腾出一些空间

  • 从 Live CD 启动
  • fdisk -l 查看您的设备名称。
    设备开始结束扇区大小类型
    /dev/sda1 2048 1050623 1048576 512M EFI 系统
    /dev/sda2 1050624 2050047 999424 488M Linux 文件系统
    /dev/sda3 2050048 500117503 498067456 237.5G Linux 文件系统
    
    /dev/sda3 就我而言
  • cryptsetup luksOpen /dev/sda3 crypt1 解密你的卷
  • vgscan --mknodes 查找所有卷组
    读取所有物理卷。可能还要等一下...
    使用元数据类型 lvm2 找到卷组“ubuntu-vg”
    
  • vgchange -ay 激活所有卷组
    卷组“ubuntu-vg”中的 2 个逻辑卷现在处于活动状态
    
  • lvreduce -r -L -20G /dev/ubuntu-vg/root将根卷的大小减少 20 Gb。这可能需要一段时间(对我来说大约需要 4 分钟)。
    该空间稍后将用于创建 LVM 快照。
  • vgs 查看您实际上获得了 20G 的可用空间
    VG #PV #LV #SN Attr VSize VFree
    ubuntu-vg 1 2 0 wz--n- 230.44g 20.01g
    
  • reboot 并移除 Live CD

创建快照(即激活“实验”模式)

现在,每当您想对系统做一些有风险的事情时,请运行以下命令

  • lvcreate -s -n snap -L 20G /dev/ubuntu-vg/root
    注意:/dev/ubuntu-vg/root是您想要创建快照的逻辑卷
  • lvs 查看已创建卷
    LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    根 ubuntu-vg owi-aos--- 201.59g                                                    
    snap ubuntu-vg swi-as--- 20.00g 根 0.00                                   
    swap_1 ubuntu-vg -wi-ao---- 15.90g
    
    快照从您运行的那一刻起就处于活动状态lvcreate。您现在可以开始尝试新事物。

场景 #1:您想要还原更改

  • lvconvert --merge /dev/mapper/ubuntu--vg-snap
    逻辑卷 ubuntu-vg/root 包含一个正在使用的文件系统。
    无法合并开放源卷。
    快照 ubuntu-vg/snap 的合并将在下次激活 ubuntu-vg/root 时发生。
    
  • reboot

场景#2:您想要持久化更改

  • lvremove /dev/mapper/ubuntu--vg-snap

综上所述

您基本上必须运行lvcreate以启动该过程,然后运行lvconvert --mergelvremove结束它。

请记住,当快照处于活动状态时,由于 Copy-On-Write 策略,所有更改都会保存到 20Gb 的空间(或您设置的任何值)。检查剩余容量的一种方法是查看lvs命令的Data% 列。