我有两个带有加密ZFS分区的驱动器: sda和sdd。
如何将sda5分区安装到/media/sda5 5,并将sdd5分区安装到/media/sdd5?
sdd驱动器是USB拇指驱动器,sda是内部驱动器。
这两个驱动器都包含一个新的Ubunru安装。
sda
├─sda1
├─sda2 vfat FAT32
├─sda3 crypto_LUKS 2
├─sda4 zfs_member 5000 bpool
└─sda5 zfs_member 5000 rpool
sdd
├─sdd1
├─sdd2 vfat FAT32
├─sdd3
├─sdd4 zfs_member 5000 bpool
└─sdd5 zfs_member 5000 rpool发布于 2022-10-05 15:06:51
gdisk -l /dev/sda
Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02
2 4096 1054719 513.0 MiB EF00 EFI System Partition
3 1054720 5249023 2.0 GiB 8200
4 5249024 9443327 2.0 GiB BE00
5 9443328 488397134 228.4 GiB BF00 这些分区是由Ubuntu22.04安装程序创建的。分区1和2是EFI,分区3是加密交换,分区4和5是zfs:
# blkid /dev/sda3
/dev/sda3: UUID="46081d1f-4d72-44d0-9bff-dc9ebda4f590" TYPE="crypto_LUKS" PARTUUID="4d56cb7e-69a9-2849-9c20-eb9688669b76"
# blkid /dev/sda4
/dev/sda4: LABEL="bpool" UUID="14572403564643613467" UUID_SUB="7325057841745216519" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="1773b78d-af63-0548-862a-8dd9f0a74800"
# blkid /dev/sda5
/dev/sda5: LABEL="rpool" UUID="6561332372469175307" UUID_SUB="3722037216287012081" BLOCK_SIZE="4096" TYPE="zfs_member" PARTUUID="2905452c-9f72-3042-b010-97663c37194c"
zfs import bpool
zfs import rpool
zpool status -v
pool: bpool
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
bpool ONLINE 0 0 0
1773b78d-af63-0548-862a-8dd9f0a74800 ONLINE 0 0 0
errors: No known data errors
pool: rpool
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
2905452c-9f72-3042-b010-97663c37194c ONLINE 0 0 0
errors: No known data errors
# zfs list -o name,type,keylocation
NAME TYPE KEYLOCATION
bpool filesystem none
bpool/BOOT filesystem none
bpool/BOOT/ubuntu_aqj46w filesystem none
rpool filesystem file:///run/keystore/rpool/system.key
rpool/ROOT filesystem none
rpool/ROOT/ubuntu_aqj46w filesystem none
rpool/ROOT/ubuntu_aqj46w/srv filesystem none
rpool/ROOT/ubuntu_aqj46w/usr filesystem none
rpool/ROOT/ubuntu_aqj46w/usr/local filesystem none
rpool/ROOT/ubuntu_aqj46w/var filesystem none
rpool/ROOT/ubuntu_aqj46w/var/games filesystem none
rpool/ROOT/ubuntu_aqj46w/var/lib filesystem none
rpool/ROOT/ubuntu_aqj46w/var/lib/AccountsService filesystem none
rpool/ROOT/ubuntu_aqj46w/var/lib/NetworkManager filesystem none
rpool/ROOT/ubuntu_aqj46w/var/lib/apt filesystem none
rpool/ROOT/ubuntu_aqj46w/var/lib/dpkg filesystem none
rpool/ROOT/ubuntu_aqj46w/var/log filesystem none
rpool/ROOT/ubuntu_aqj46w/var/mail filesystem none
rpool/ROOT/ubuntu_aqj46w/var/snap filesystem none
rpool/ROOT/ubuntu_aqj46w/var/spool filesystem none
rpool/ROOT/ubuntu_aqj46w/var/www filesystem none
rpool/USERDATA filesystem none
rpool/USERDATA/andrew_rh4h1s filesystem none
rpool/USERDATA/root_rh4h1s filesystem none
rpool/keystore volume none看看这个,我可以看到我已经导入了两个池: bpool和rpool。Bpool有一个数据集:启动。rpool有三个数据集: ROOT、USERDATA和keystore。尤里卡!那个keystore数据集听起来像是我们可能想要看的东西。并查看rpool的Keylocation参数:它包括那个keystore单词。因此,让我们仔细看看keystore数据集。它是体积型的。这是zfs用来存储原始、未格式化数据的类型。从手册中:
ZFS卷是表示块设备的数据集。ZFS卷被标识为/dev/zvol/{dsk,rdsk}/pool目录中的设备。在下面的示例中,创建了一个5-GBZFS卷system1 1/vol:# ZFS创建-V 5gb system1 1/vol。当改变音量的大小时要小心。
那么,这个数据集可能是存储zfs键的luks卷吗?
# cryptsetup luksOpen /dev/zvol/rpool/keystore keystore
Enter passphrase for /dev/zvol/rpool/keystore: (enter key used in the ubuntu installer when you created the encrypted zfs install)
# mkdir /mnt/keystore
# mount /dev/mapper/keystore /mnt/keystore/
# ls /mnt/keystore/
lost+found system.key
# hexdump /mnt/keystore/system.key
0000000 81de 1df7 a36e 6fd2 7cdf 367a 4e4a 0601
0000010 9679 0be2 7445 bbbd 853c 6f07 79fe ad28
0000020万岁!看起来像是512位的系统密钥。
更改挂载点
我们不希望rpool/ROOT文件系统破坏我们的根文件系统。所以改变安装点。
# mkdir /mnt/rpool
# zfs set mountpoint=/mnt/rpool rpool回顾一下rpool的keylocation属性,我们知道zfs希望在/run/keystore/rpool/system.key中找到解密密钥。所以我们需要创建这个子目录并将键移动到那个位置。
# mkdir -p /run/keystore/rpool
# cp /mnt/keystore/system.key //run/keystore/rpool由于某种原因,rpocan装入属性被设置为off。因此,我们将其设置为on,加载密钥并挂载它。
# zfs set canmount=on rpool
# zfs load-key rpool
# zfs mount rpool
# ls //mnt/rpool那里什么都没有。那是因为我安装了池,而不是数据集。我可以使用zfs挂载-a命令快速挂载所有数据集,但这会使我现有的许多文件夹崩溃。回顾一下数据集的清单,我发现这个列表中的每一行都是一个挂载点,其中有很多。我只想要USERDATA/andrew_rh4h1s信息,所以我将挂载它。
# mkdir -p //mnt/rpool/USERDATA/andrew_rh4h1s
# zfs set mountpoint=/mnt/rpool/USERDATA/andrew_rh4h1s rpool/USERDATA/andrew_rh4h1s
# ls -ah //mnt/rpool/USERDATA/andrew_rh4h1s完成了!现在我可以把我所有的东西拷贝到备份驱动器上,然后重新开始。
我发现答案是网上的一篇文章这里。
https://askubuntu.com/questions/1432959
复制相似问题