일반적으로 간단해야 하는 노트북에 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
sda1
as /boot
(레거시 BIOS 부팅으로 인해 필요)를 루트 암호화 파일 시스템으로 sda2
사용 합니다 /boot/efi
. sda3
이 시나리오는 암호화되지 않은 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를 실행하고 있으며 이 문서에서는 기존 OS 설치를 암호화된 설치로 이동하는 방법에 대해 자세히 설명합니다. 미디어 파일을 라이브로 실행할 수 없고 rsync
OS가 실제(비라이브) 설치처럼 작동하도록 할 수 없었기 때문에 Kali의 설치 프로그램을 사용하여 마치 하드 드라이브인 것처럼 설치를 USB에 기록했습니다(설치 프로그램이 작동하는 이유는 확실하지 않음). Fine은 파티션)을 USB에 기록하지만 내 디스크에는 기록하지 않지만 w/e). 그런 다음 두 파일을 모두 마운트하고 USB의 루트 파일 시스템을 암호화된 디스크에 동기화할 수 있었습니다. 마술적인 것 같습니다.
해당 부분을 약간 변경한 후 큰 문제 없이 세부적으로 Grub을 다시 설치할 수도 있었습니다. 기본적으로 나는 sudo 오류를 피하기 위해 chroot 이전에 --rbind
마운트할 때 사용하며 /dev
chroot 이전에 proc을 마운트/바인딩해야 합니다. chroot에 성공한 후에도 sudo를 실행할 때마다 호스트 이름 "kali"를 확인할 수 없다는 오류가 계속 발생하지만 실행 중인 명령에는 영향을 주지 않는 것 같아서 무시합니다.
내 그럽 설정은 다음과 같이 생겼습니다.
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
이러한 구성을 기반으로~인 것 같다정상적으로 OS로 부팅할 수 있어야 하는 것처럼 말이죠. 내가 아는 한 내 UUID는 정확하고 장치 잠금을 해제하려면 비밀번호를 묻는 메시지가 표시되므로 grub 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