我有一个树莓派 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 文件系统:
- 创建幸运:
cryptsetup luksFormat /dev/sda2
- 打开设备:
cryptsetup open /dev/sda2 private
- 将明文设备格式化为 FAT:
mkfs.fat /dev/mapper/private
- 现在您可以安装它:
mount /dev/mapper/private /mnt/private