내가 뭘 하려는 거지?

내가 뭘 하려는 거지?

내가 뭘 하려는 거지?

다음을 사용하여 외부 하드 드라이브(sdb)의 LUKS 위에 LVM을 사용하여 전체 시스템 암호화(부팅 및 미디어 파티션 없음)로 Arch를 설치합니다.http://suddenkernelpanic.blogspot.com/2013/03/arch-linux-lvm-on-top-of-luks-2013-style.html

내 문제는 무엇입니까?

시스템이 grub으로 부팅되고 루트를 찾을 수 있는 위치에 약간의 혼란이 있는 것 같습니다.

오류: 'uuid=f7153c4b-e6ea-48a2-9ee1-bf38c037173d' 장치를 찾을 수 없습니다. fsck 건너뛰기

오류: 루트 장치 'uuid=f7153c4b-e6ea-48a2-9ee1-bf38c037173d'를 찾을 수 없습니다.

이 튜토리얼에서 내가 벗어난 부분

  1. 튜토리얼에서 제안한 대로 Syslinux 대신 Grub을 사용했는데(이것이 핵심인 것 같습니다) Grub 솔루션이 정말 흐릿합니다.

  2. 내 파티션 구성표는 암호화와 관련되지 않은 추가 FAT32 파티션으로 구성되어 있습니다(문제와 관련이 없는 것 같습니다).

/etc/default/grub 관련 문제:

(여기가 문제인 것 같아요)

내가 읽은 내용에 따르면 이 파일에서 구체적으로 몇 군데를 업데이트해야 합니다.

GRUB_CMDLINE_LINUX="root=/dev/mapper/lvmpool-root cryptdevice=/dev/sdb2:crypt ro"

그리고 주석 처리를 제거해야 합니다:

GRUB_DISABLE_LINUX_UUID=true

문제/etc/mkinitcpio.conf

다음과 같이 후크를 추가해야합니다

HOOKS="... encrypt lvm2 ... filesystems ..."

루트에 대한 내 fstab 항목은 다음과 같습니다.

<filesystem>
/dev/mapper/lvmpool-root                                                 
UUID=f7153c4b-e6ea-48a2-9ee1-bf38c037173d / ext4 rw,relatime,data=ordered   0 1

현재 해결 방법

오류가 발생한 후 복구 셸로 이동하기 때문에 시스템을 계속 사용할 수 있습니다. 이 유형에서는 간단히 다음을 수행할 수 있습니다.

cryptsetup luksOpen /dev/sdb2 crypt 
enter password

그런 다음 복구 쉘을 종료하면 일반 아치 로그인 프롬프트로 돌아갑니다. 시간이 많이 걸리지 않는다면 그렇게 나쁘지는 않을 것입니다... (부팅 시 오류가 발생하는 데는 20초 정도가 소요됩니다.)

내가 시도한 다른 리소스

나는 또한 다음을 사용했습니다:

  • wiki.archlinux.org/index.php/Beginners%27_guide

  • wiki.archlinux.org/index.php/Gr … 암호화

  • wiki.archlinux.org/index.php/Dm … oot_loader

  • wiki.archlinux.org/index.php/Dm … VM_on_LUKS

답변1

:crypt문제는 볼륨 그룹으로 사용하는 것과 루트에 대한 매개변수로 볼륨 그룹 이름으로 /dev/sdb2사용하는 것의 차이에 있는 것 같습니다 .lvmpool-

GRUB_CMDLINE_LINUX="root=/dev/mapper/lvmpool-root cryptdevice=/dev/sdb2:crypt ro"

여기:

cryptdevice=/dev/partition:MyStorage root=/dev/mapper/MyStorage-rootvol

:MyStorage일치하는 및 가 있습니다 MyStorage-. 저것페이지특히 grubLUKS 위에 LVM을 사용하여 (Syslinux가 아닌) 대상을 지정합니다. 그래서 나는 그 설정을 따를 것입니다.

암호화되지 않은 추가 파티션이 있다는 것은 중요하지 않습니다.

답변2

위의 답변에 대해 Anthon에게 감사드립니다. 제 문제를 해결하는 데 크게 도움이 되었습니다.

내 문제에 대한 해결책은 두 부분인 것 같습니다.

  1. /etc/default/grub의 항목은 다음과 같아야 합니다.

    GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdb2:lvmpool 루트=/dev/mapper/lvmpool-root"

각 항목을 분석하려면:

cryptdevice는 암호화를 적용한 파티션으로 구성됩니다. 제 경우에는 /dev/sdb2 및 lvmpool(내 볼륨 그룹)입니다.

루트는 단순히 암호화된 루트 lvmpool(sdb2에 있음)의 위치를 ​​가리키고 있습니다.

  1. 해당 항목을 입력한 후(이것은 나에게 중요한 실수였습니다) 다음을 실행해야 합니다.

    grub-mkconfig -o /boot/grub/grub.cfg

그러면 /etc/default/grub에 추가한 정보로 /boot/grub/grub.cfg가 업데이트됩니다.

그런 다음 시스템은 루트 파티션 잠금을 해제하라는 프롬프트로 바로 부팅되었습니다.

답변3

에 포함하다mkinitcpio.conf

MODULES="dm_mod dm_crypt ext4 aes_x86_64 sha256 sha512"

HOOKS="... encrypt lvm2 ..."

에 포함하다/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="... quiet "

GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdX:name"

GRUB_ENABLE_CRYPTODISK="y"

실행 명령:

sudo mkinitcpio -p linux

sudo grub-mkconfig -o /boot/grub/grub.cfg

sudo grub-install --recheck --target=i386-pc /dev/sda

sudo pacman -S linux linux-headers 

관련 정보