我有一个完全加密的 Arch Linux 系统,在 LUKS 之上运行 BTRFS,并为 root、home 和 /var/log 提供单独的子卷。另外boot是一个单独的分区。
如何在该系统上安装另一个发行版(opensuse Tumbleweed),同时保留加密的文件系统和现有分区?
我不关心保留任何数据,尽管我将重用的单独主分区应该会保留数据(我假设)。
我需要首先打开 LUKS 设备,然后将新系统安装到现有分区中。听起来很简单,但我没有找到任何现有的说明。我在这里发现的唯一类似问题没有答案:
更新:修复了拼写错误并添加了 lsblk 和 fstab 的输出。 (请注意,lsblk 仅列出 syssluks 中包含的 BTRFS 子卷的最后一次挂载。希望 fstab 能让挂载变得清晰。)
NAME FSTYPE LABEL MOUNTPOINT
sda
├─sda1 vfat ESP /boot
└─sda2 crypto_LUKS
nvme0n1
├─nvme0n1p1 (not used)
├─nvme0n1p2 crypto_LUKS
│ └─sysluks btrfs top_level /.snapshots
└─nvme0n1p3 swap [SWAP]
在 crypto_LUKS 内部,我们有 BTRFS 子卷,安装方式如下:
UUID=abc / btrfs rw,noatime,nodiratime,acl,ssd,space_cache,subvol=/@,subvol=@ 0 0
# /dev/sdf1 LABEL=ESP
UUID=wxyz /boot vfat noauto,rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
# /dev/mapper/sysluks LABEL=top_level <-- @snapshots
UUID=abc /.snapshots btrfs rw,relatime,ssd,space_cache,subvol=/@snapshots,subvol=@snapshots 0 0
# /dev/mapper/sysluks LABEL=top_level
UUID=abc /home btrfs rw,noatime,nodiratime,acl,ssd,space_cache,subvol=/@home,subvol=@home 0 0
# /dev/mapper/sysluks LABEL=top_level
UUID=abc /var/log btrfs rw,noatime,nodiratime,acl,ssd,space_cache,subvol=/@varlog,subvol=@varlog 0 0