Restore snapshot with timeshift from a live medium with LUKS and LVM
Today I learned to restore a snapshot with timeshift on a LUKS and LVM installation of Ubuntu.
Today (Sunday) I messed up my Laptop and could not boot anymore. No idea why but I also did not want to tackle the problem. I just did not have the time for it and also need the laptop ready for work on Monday.
I am glad I just have Timeshift running for my root filesystem. Everything except my home directory is backed up and I can just restore a snapshot and boot again.
The restore process would be a very easy process but since I have an encrypted LUKS setup with LVM I had a few obstacles. I just write down my procedure for the next time and others.
Start a live distro
Boot from ubuntu live USB or whatever distro you can run Timeshift on:
Check your drives:
lsblk
nvme0n1 259:0 0 465,8G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part
├─nvme0n1p2 259:2 0 512M 0 part
└─nvme0n1p3 259:3 0 464,3G 0 part
Open the LUKS encrypted drive:
sudo cryptsetup open /dev/nvme0n1p3 nvme
Since LUKS and LVM do not play perfectly together you have to do a few steps now.
Identify volume group:
sudo vgdisplay --short
"system" 464,24 GiB [459,62 GiB used / 4,62 GiB free]
List your logical volumes:
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root system -wi-ao---- 451,62g
swap system -wi-ao---- 8,00g
Activate your logical volumes:
sudo lvchange -ay system
Mount your root filesystem in some folder:
mkdir nvme
sudo mount /dev/system/root nvme
Found these instructions here:
There are almost still valid except that opening and closing a LUKS device has a change in syntax.
Restore data with timeshift
Install timeshift. Here are the instructions:
sudo add-apt-repository -y ppa:teejee2008/timeshift
sudo apt-get update
sudo apt-get install timeshift
Open timeshift and Go to Settings -> Location and choose your root file system, or where ever you have your backups.
This is a screenshot from my normal booted system. It looks slightly different when you boot from USB but you get the idea.
Now browse your snapshots and choose to restore:
Timeshift will automatically find the /boot partition and /boot/efi partition.
Restoring now is just an order of following the wizard now.
Prepare for restart
Here comes the kicker. You should not just restart now because of LVM and LUKS.
Unmount your root system:
sudo umount root
Umount timeshift mount point:
lsblk
nvme0n1 259:0 0 465,8G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part
├─nvme0n1p2 259:2 0 512M 0 part
└─nvme0n1p3 259:3 0 464,3G 0 part
└─crypt_dev_nvme0n1p3 253:0 0 464,3G 0 crypt
├─system-root 253:1 0 451,6G 0 lvm /run/timeshift/backup
sudo umount /run/timeshift/backup
Deactivate LVM:
sudo lvchange -an system
Close your LUKS device
sudo cryptsetup close /dev/nvme0n1p3
Restart your system
Now you should have a bootable system restored and be happy about having backups.
Big thanks to Timeshift, one of the first programs I configure on my Desktop devices.