无法在树莓派 4 上创建加密 USB 驱动器

无法在树莓派 4 上创建加密 USB 驱动器

我有一个树莓派 4。我已按照以下说明进行操作 https://linuxconfig.org/usb-stick-encryption-using-linux

我已经创建并重新创建了分区,尝试了 fat32、apt 和 gpt。我一开始偏离了说明,使用 gparted gui 在 USB 驱动器上创建两个主分区,但此后完全重现了给出的步骤。如果您有一个完全分区的驱动器,这些说明似乎不起作用,所以我删除了所有分区。我刚刚使用 gparted 做到了这一点,第二个分区(加密的分区)我需要先关闭加密,然后才能删除。因此,从没有分区的空白 USB 驱动器开始。

sudo  fdisk -l

清楚地显示我的驱动器是 /dev/sda

Disk /dev/sda: 115.52 GiB, 124037038080 bytes, 242259840 sectors
Disk model: USB DISK 3.0    
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: 7DFCBD4A-32FA-427F-B298-8CA9229DB3FF

然后我输入

sudo fdisk /dev/sda

结果是

$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition number (1-128, default 1): 
First sector (34-242259806, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-242259806, default 242259806): +64GB

Created a new partition 1 of type 'Linux filesystem' and of size 59.6 GiB.
Partition #1 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help): n
Partition number (2-128, default 2): 
First sector (125001728-242259806, default 125001728): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (125001728-242259806, default 242259806): 

Created a new partition 2 of type 'Linux filesystem' and of size 55.9 GiB.
Partition #2 contains a crypto_LUKS signature.

Do you want to remove the signature? [Y]es/[N]o: y

The signature will be removed by a write command.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

令我惊讶的是,删除所有分区后签名仍然存在。我选择删除预先存在的签名。下一步似乎是将驱动器格式化为 fat

sudo mkfs.fat /dev/sda1
sudo mkfs.fat /dev/sda2

导致

$ sudo mkfs.fat /dev/sda1
mkfs.fat 4.2 (2021-01-31)
$ sudo mkfs.fat /dev/sda2
mkfs.fat 4.2 (2021-01-31)

跳过第 5 步,用随机内容填充驱动器。下一步是加密第二个分区。

sudo cryptsetup -h sha256 -c aes-xts-plain -s 256 luksFormat /dev/sda2

这是成功的。接下来我们挂载分区

sudo cryptsetup luksOpen /dev/sda2 private

这是成功的。说明表明我的加密分区现在可以作为 /dev/mapper/private 使用,但那里唯一的东西看起来像是到 ../dm-0 的映射,我确实对私有链接进行了 cat 操作,并在杀死之前获得了许多二进制内容的屏幕输出。

/dev/mapper $ ls -ltr
total 0
crw------- 1 root root 10, 236 Dec 24 17:54 control
lrwxrwxrwx 1 root root       7 Dec 24 18:52 private -> ../dm-0

下一部分是一切出错的地方。由于之前的多次尝试, /mnt/private 文件夹存在,但为了彻底,我只是将其删除并重新创建

sudo rm -rf /mnt/private
sudo mkdir /mnt/private
sudo mount /dev/mapper/private /mnt/private

这再次导致

mount: /mnt/private: wrong fs type, bad option, bad superblock on /dev/mapper/private, missing codepage or helper program, or other error.

我已经尽我所能了,但这对我来说根本不起作用,现在我需要你的帮助。

答案1

/dev/mapper/private,但唯一的东西看起来像是到 ../dm-0 的映射

是的,这是正确的,/dev/mapper/private只是设备的一个很好的“人类可读”符号链接,内部设备映射器设备始终是/dev/dm-<number>,您应该使用/dev/mapper/private符号链接,它将始终可用。

挂载:/mnt/private:文件系统类型错误、选项错误、/dev/mapper/private 上的超级块错误、缺少代码页或帮助程序或其他错误。

问题是您首先创建了 FAT 文件系统,然后用于cryptsetup设置 LUKS 加密,这会用 LUKS 签名覆盖 FAT 文件系统签名,因此您最终会得到未格式化的加密设备。您需要在 LUKS 之后创建 FAT 文件系统:

  1. 创建幸运:cryptsetup luksFormat /dev/sda2
  2. 打开设备:cryptsetup open /dev/sda2 private
  3. 将明文设备格式化为 FAT:mkfs.fat /dev/mapper/private
  4. 现在您可以安装它:mount /dev/mapper/private /mnt/private

相关内容