Xubuntu 20.04.3 - Btrfsファイルシステム - スナップショットからルートリストア

前回構築したスナップショットからルートをリストアしたいと思います。
この手順が正解で正しいのかまったく自信ありませんが。。。一応、私のPCで実施できたので自身の備忘録としてメモしておきます。

1. Xubuntu Live USBからOS起動

2. rootパーテーションの確認

私は、/dev/sda2にXubuntuをインストールしています。

# fdisk -l /dev/sda
Disk /dev/sda: 238.49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: TS256GMTS400
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 4B84FF6A-A471-48CC-AF22-24412BC816CF

Device      Start       End   Sectors  Size Type
/dev/sda1    2048    999423    997376  487M EFI System
/dev/sda2  999424 500117503 499118080  238G Linux filesystem
#

3. rootパーテーションのマウント

mount -t btrfs -o subvolid=0 /dev/sda2 /mnt/root

# cd /mnt
# mkdir root
# mount -t btrfs -o subvolid=0 /dev/sda2 /mnt/root

4. マウント確認

@がXubuntuのrootとなります。

# cd /mnt/root
# ls
@  @rootsnap  @swap

5. ルートスナップショットの確認

@rootsnap以下に保存されているルートのスナップショットを確認します。
今回は、最新のスナップショット:@.20211011T1600をリストアしたいと思います。

# cd /mnt/@rootsnap/
# ls
@.20210928T1353  @.20210930T0000  @.20211002T1149  @.20211004T0841  @.20211006T0755  @.20211009T1130  @.20211011T1358  @.20211011T1500
@.20210929T0759  @.20211001T0819  @.20211003T0952  @.20211005T0813  @.20211007T0827  @.20211010T0951  @.20211011T1400  @.20211011T1600
#

6. @のリネーム

# mv @ @_bk
# ls -al
total 16
drwxr-xr-x 1 root root  36 Oct 11 08:13 .
drwxr-xr-x 1 root root  60 Oct 11 08:09 ..
drwxr-xr-x 1 root root 180 Sep 28 05:40 @_bk
drwxr-xr-x 1 root root 480 Oct 11 07:00 @rootsnap
drwxr-xr-x 1 root root  16 Sep 24 11:37 @swap

7. @.20211011T1600のスナップショットを@の名前で作成

# btrfs subvolume snapshot @rootsnap/@.20211011T1600 @
Create a snapshot of '@rootsnap/@.20211011T1600' in './@'
#
# ls
@  @_bk  @rootsnap  @swap
#
# ls -al
total 16
drwxr-xr-x 1 root root  38 Oct 11 08:14 .
drwxr-xr-x 1 root root  60 Oct 11 08:09 ..
drwxr-xr-x 1 root root 180 Sep 28 05:40 @
drwxr-xr-x 1 root root 180 Sep 28 05:40 @_bk
drwxr-xr-x 1 root root 480 Oct 11 07:00 @rootsnap
drwxr-xr-x 1 root root  16 Sep 24 11:37 @swap

8. rootのデフォルトサブボリュームの変更

@bk → @にデフォルトサブボリュームを変更します。
変更後、@
bkのサブボリュームを削除します。

# btrfs subvolume get-default /mnt/root/
ID 375 gen 15996 top level 5 path @_bk
#
# btrfs subvolume list /mnt/root
ID 267 gen 15776 top level 5 path @swap
ID 367 gen 15999 top level 5 path @rootsnap
ID 375 gen 15996 top level 5 path @_bk
ID 528 gen 15942 top level 367 path @rootsnap/@.20211011T1500
ID 529 gen 16001 top level 367 path @rootsnap/@.20211011T1600
ID 530 gen 16001 top level 5 path @
#
# btrfs subvolume set-default 530 /mnt/root
#
# btrfs subvolume get-default /mnt/root/
ID 530 gen 16001 top level 5 path @
#
# btrfs subvolume delete @_bk -c
Delete subvolume (commit): '/mnt/root/@_bk'
#
# ls -al
total 16
drwxr-xr-x 1 root root  30 Oct 11 08:17 .
drwxr-xr-x 1 root root  60 Oct 11 08:09 ..
drwxr-xr-x 1 root root 180 Sep 28 05:40 @
drwxr-xr-x 1 root root 480 Oct 11 07:00 @rootsnap
drwxr-xr-x 1 root root  16 Sep 24 11:37 @swap
#

9. 再起動をしてOS起動確認

Xubuntuの起動確認をします。