LUKS 密码正确,但不被接受

LUKS 密码正确,但不被接受

我正在尝试在笔记本电脑上安装 Kali,这通常应该很简单。然而,在此特定设备上,由于某种原因,Kali 安装程序在将分区更改写入磁盘时出错。我之前可以通过手动对驱动器进行分区来解决这个问题fdisk。卡利跑得很好。但是,我缺乏磁盘加密。因此,我擦除了驱动器并开始使用 LUKS 加密手动分区和配置 Kali。

我找到了一篇关于此的文章,我能够遵循它,只有一些偏差
https://devconnected.com/how-to-encrypt-root-filesystem-on-linux/
我最终得到的分区方案如下

Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000LPVX-7
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C6EB1185-05CF-4E8D-ABAC-1376C75628F8

Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1953791   1951744   953M Linux filesystem
/dev/sda2  1953792   3907583   1953792   954M EFI System
/dev/sda3  3907584 976773119 972865536 463.9G Linux filesystem

使用sda1as /boot(由于 BIOS 旧版引导而需要),sda2as/boot/efisda3as 我的根加密文件系统。该方案适用于未加密的 Kali 安装,因此我所需要做的就是设置 LUKS。

cryptsetup按照文章中的详细说明使用我有以下内容sda

$ lsblk                      
NAME               MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                  8:0    0 465.8G  0 disk  
├─sda1               8:1    0   953M  0 part  
├─sda2               8:2    0   954M  0 part  
└─sda3               8:3    0 463.9G  0 part  
  └─crypto         254:0    0 463.9G  0 crypt 
    ├─cryptVG-swap 254:1    0     2G  0 lvm   
    └─cryptVG-root 254:2    0 461.9G  0 lvm

我在实时 USB 上运行 Kali 来设置我的笔记本电脑硬盘驱动器,本文详细介绍了将现有操作系统安装转移到加密安装。我无法rsync实时媒体文件并使操作系统像实际(非实时)安装一样工作,因此我只是使用 Kali 的安装程序将安装写入 USB,就像它是硬盘驱动器一样(不确定为什么安装程序可以很好地写入分区)到 USB,但不是我的磁盘,而是 w/e)。然后,我能够挂载这两个文件并将 USB 的根文件系统同步到我的加密磁盘。这似乎有魔力。

在对该部分进行小更改后,我还能够按照详细信息重新安装 grub,而不会出现重大问题。基本上我在 chroot 之前--rbind挂载时使用/dev以避免 sudo 错误,并且我还需要在 chroot 之前挂载/绑定 proc。成功 chroot 后,我​​仍然收到一条错误,指出每次运行 sudo 时都无法解析主机名“kali”,但它似乎并没有影响我正在运行的命令,因此我忽略了它。

我的 grub 设置最终如下:

UUID

$ lsblk -f
NAME FSTYPE FSVER LABEL     UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                               
├─sda1
│    vfat   FAT32           9080-831D                                             
├─sda2
│    vfat   FAT32           345D-5BB8                                             
└─sda3
     crypto 2               f0b2bee7-9566-4178-9a3a-6ffee87482df                  
  └─crypto
     LVM2_m LVM2            6t1L5r-GdTD-Fda4-A3D7-OjMI-DiI9-mKM76J                
    ├─cryptVG-swap
    │  swap   1               9d7471b5-cd00-477b-a599-48517194122c                  
    └─cryptVG-root
       ext4   1.0             740ca216-99a9-46ee-a2c2-fa2dbde2ccb7    417.1G     3% /mnt

/etc/fstab

$ cat /mnt/etc/fstab 
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# root
UUID=740ca216-99a9-46ee-a2c2-fa2dbde2ccb7 /               ext4    errors=remount-ro 0       1
# efi
UUID=345D-5BB8  /boot/efi       vfat    umask=0077      0       1
# swap
UUID=9d7471b5-cd00-477b-a599-48517194122c none            swap    sw              0       0

/etc/crypttab

$ cat /mnt/etc/crypttab 
# <target name> <source device>     <key file>  <options>
crypt UUID=f0b2bee7-9566-4178-9a3a-6ffee87482df none luks

基于这些配置似乎就像我应该能够正常启动进入操作系统一样。据我所知,我的 UUID 是正确的,并且 grub stage 1 安装得很好,因为它会提示我输入密码来解锁设备。但是,虽然我可以/dev/sda3使用密码解锁cryptsetup luksOpen /dev/sda3 crypto,但在启动屏幕上使用相同的密码会出现密码错误的错误。

启动后sda我看到

Enter passphrase for hd0,gpt3 (f0b2bee7-9566-4178-9a3a-6ffee87482df):

输入正确的密码后,它会立即打印

error: Invalid passphrase
error: no such cryptodisk found
error: disk `lvmid/kJKtcZ-eQPE-zpEE-r5hz-MWlz-WdzV-hg2lMF/GAVDs1-caOS-pBlM-bQsb-MDyN-2LdM-nyQveG' not found
grub rescue>

为什么 grub 无法解锁我的 LUKS 驱动器,而 cryptsetup 可以?我怎样才能修复 grub 以便它可以呢?

我知道这在技术上是一个 XY 问题,但我尝试解决 X(Kali 安装程序失败)但没有成功,因为似乎没有其他人遇到我的问题,而且我现在非常接近解决 Y,我认为这并不重要。另外我想了解更多关于 grub 的知识。

编辑:luks转储信息

$ sudo cryptsetup luksDump /dev/sda3
LUKS header information
Version:        2
Epoch:          3
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           f0b2bee7-9566-4178-9a3a-6ffee87482df
Label:          (no label)
Subsystem:      (no subsystem)
Flags:          (no flags)

Data segments:
  0: crypt
    offset: 16777216 [bytes]
    length: (whole device)
    cipher: aes-xts-plain64
    sector: 4096 [bytes]

Keyslots:
  0: luks2
    Key:        512 bits
    Priority:   normal
    Cipher:     aes-xts-plain64
    Cipher key: 512 bits
    PBKDF:      argon2id
    Time cost:  4
    Memory:     1048576
    Threads:    4
    Salt:       73 ... 12 
    AF stripes: 4000
    AF hash:    sha256
    Area offset:32768 [bytes]
    Area length:258048 [bytes]
    Digest ID:  0
Tokens:
Digests:
  0: pbkdf2
    Hash:       sha256
    Iterations: 77101
    Salt:       c2 ... 80 
    Digest:     c7 ... 43

相关内容