首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何安装两个类似的ZFS文件系统?

如何安装两个类似的ZFS文件系统?
EN

Ask Ubuntu用户
提问于 2022-09-29 15:14:55
回答 1查看 308关注 0票数 0

我有两个带有加密ZFS分区的驱动器: sda和sdd。

如何将sda5分区安装到/media/sda5 5,并将sdd5分区安装到/media/sdd5?

sdd驱动器是USB拇指驱动器,sda是内部驱动器。

这两个驱动器都包含一个新的Ubunru安装。

代码语言:javascript
复制
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
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-10-05 15:06:51

查找加密密钥

代码语言:javascript
复制
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:

代码语言:javascript
复制
# 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卷吗?

代码语言:javascript
复制
# 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位的系统密钥。

挂载ZFS根

更改挂载点

我们不希望rpool/ROOT文件系统破坏我们的根文件系统。所以改变安装点。

代码语言:javascript
复制
# mkdir /mnt/rpool
# zfs set mountpoint=/mnt/rpool rpool

回顾一下rpool的keylocation属性,我们知道zfs希望在/run/keystore/rpool/system.key中找到解密密钥。所以我们需要创建这个子目录并将键移动到那个位置。

代码语言:javascript
复制
# mkdir -p /run/keystore/rpool
# cp /mnt/keystore/system.key //run/keystore/rpool

由于某种原因,rpocan装入属性被设置为off。因此,我们将其设置为on,加载密钥并挂载它。

代码语言:javascript
复制
# zfs set canmount=on rpool
# zfs load-key rpool
# zfs mount rpool
# ls //mnt/rpool

那里什么都没有。那是因为我安装了池,而不是数据集。我可以使用zfs挂载-a命令快速挂载所有数据集,但这会使我现有的许多文件夹崩溃。回顾一下数据集的清单,我发现这个列表中的每一行都是一个挂载点,其中有很多。我只想要USERDATA/andrew_rh4h1s信息,所以我将挂载它。

代码语言:javascript
复制
# 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

完成了!现在我可以把我所有的东西拷贝到备份驱动器上,然后重新开始。

我发现答案是网上的一篇文章这里

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1432959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档