Grub은 LUKS/LVM 없이 Ubuntu를 시작합니다.

Grub은 LUKS/LVM 없이 Ubuntu를 시작합니다.

LUKS/LVM에 Ubuntu 20.04를 설치했지만 불행히도 부팅 시에는유충>빠르게.

# lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                     8:0    0 465.8G  0 disk
├─sda1                  8:1    0   731M  0 part  /boot
└─sda5                  8:5    0   465G  0 part     
  └─sda5_crypt        253:0    0   465G  0 crypt  
    ├─ubuntu--vg-home 253:1    0   356G  0 lvm   /home
    └─ubuntu--vg-root 253:2    0   109G  0 lvm   /

MBR에 grub을 설치하고 grub.cfg를 생성하십시오.(바라보다1,2)

# grub-install /dev/sda

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

Grub.cfg에는 올바른 LVM 루트 볼륨 UUID가 있는 것 같습니다.

# cat /boot/grub/grub.cfg
....
set root='lvmid/MGzfKv-uhLG-wmry-Yqb2-D09r-OfKh-SDs3eb/lZDSre-QLBU-9OvM-aVrN-kR6V-DFXg-lBhRn7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/MGzfKv-uhLG-wmry-Yqb2-D09r-OfKh-SDs3eb/lZDSre-QLBU-9OvM-aVrN-kR6V-DFXg-lBhRn7'  617f84d9-1433-4620-a0c0-833fb8ce1e2f
else
  search --no-floppy --fs-uuid --set=root 617f84d9-1433-4620-a0c0-833fb8ce1e2f
fi
....

# blkid
/dev/sda5: UUID="3fbd1007-9f85-4b85-bdf2-ae55e0244bb6" TYPE="crypto_LUKS" PARTUUID="005a4774-05"
/dev/sda1: UUID="27ca1bd4-7811-4c3a-b319-2b8dd1ce57cd" TYPE="ext4" PARTUUID="005a4774-01"
/dev/mapper/sda5_crypt: UUID="UoR32h-GB2N-GYf4-XBEP-P0rd-RrZ6-f6PK6d" TYPE="LVM2_member"
/dev/mapper/ubuntu--vg-home: UUID="0d81e74f-fe7b-4ef4-ba61-6d664d54d77c" TYPE="ext4"
/dev/mapper/ubuntu--vg-root: UUID="617f84d9-1433-4620-a0c0-833fb8ce1e2f" TYPE="ext4"

# ls -l /dev/disk/by-id
rwxrwxrwx 1 root root 10 Oct 19 21:45 dm-name-sda5_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10 Oct 19 21:45 dm-name-ubuntu--vg-home -> ../../dm-1
lrwxrwxrwx 1 root root 10 Oct 19 21:45 dm-name-ubuntu--vg-root -> ../../dm-2
lrwxrwxrwx 1 root root 10 Oct 19 21:45 dm-uuid-CRYPT-LUKS2-3fbd10079f854b85bdf2ae55e0244bb6-sda5_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10 Oct 19 21:45 dm-uuid-LVM-MGzfKvuhLGwmryYqb2D09rOfKhSDs3ebHvMqdeqlhxMFcNl0XqdTRiC9sdWUmnVU -> ../../dm-1
lrwxrwxrwx 1 root root 10 Oct 19 21:45 dm-uuid-LVM-MGzfKvuhLGwmryYqb2D09rOfKhSDs3eblZDSreQLBU9OvMaVrNkR6VDFXglBhRn7 -> ../../dm-2
lrwxrwxrwx 1 root root 10 Oct 19 21:45 lvm-pv-uuid-UoR32h-GB2N-GYf4-XBEP-P0rd-RrZ6-f6PK6d -> ../../dm-0

crypttab 및 fstab에 sda5 UUID 및 볼륨 UUID를 추가합니다(참조:1):

# cat /etc/crypttab
sda5_crypt UUID=3fbd1007-9f85-4b85-bdf2-ae55e0244bb6 none luks

# cat /etc/fstab:
UUID=27ca1bd4-7811-4c3a-b319-2b8dd1ce57cd  /boot       ext4    defaults      0       2
UUID=617f84d9-1433-4620-a0c0-833fb8ce1e2f / ext4 defaults,errors=remount-ro 0 1
/swapfile                                 none            swap    sw              0       0

initramfs 생성(참조1):

# update-initramfs -c -k all

# ls -lah /boot
drwxr-xr-x  4 root root 4.0K Oct 19 21:31 grub
-rw-r--r--  1 root root  81M Oct 19 20:55 initrd.img-5.4.0-42-generic

답변1

LVM은 LUKS 암호화 파티션에 있으므로 암호화가 잠금 해제될 때까지 LVM 루트 볼륨 UUID가 표시되지 않습니다.

기본적으로 Debian/Ubuntu GRUB 구성은 다음을 포함하여 루트 파일 시스템에 있는 여러 항목을 참조할 수 있습니다.

  • 글꼴 파일/usr/share/grub/unicode.pf2
  • /usr/share/desktop-base/futureprototype-them/grub/grub-16x9.pngDebian 10 과 같은 GRUB 배경 이미지

/bootLUKS 비밀번호를 두 번(GRUB에 한 번, initramfs에 한 번) 입력하지 않으려면 해당 비밀번호를 (또는 GRUB이 액세스할 수 있는 암호화되지 않은 다른 파일 시스템) 복사해야 하며 GRUB이 검색할 것입니다. 거기에서 그들.

글꼴 파일의 경우 를 실행하기 전에 글꼴 파일을 설정하고 복사 GRUB_FONT=/boot/grub/unicode.pf2할 수 있습니다./etc/default/grub/boot/grubgrub-mkconfig

적어도 Debian 10에서는 /etc/grub.d/05_debian_theme스크립트에 배경 이미지를 복사하는 기능이 내장된 것 같습니다. 예를 들어 /boot/grub/.background_cache.pngGRUB가 루트 파일 시스템을 직접 읽을 수 없는 경우(귀하의 경우에는 암호화되기 때문에). 이 기능(또는 해당 Ubuntu 스크립트의 동등한 기능)이 올바르게 트리거되는지 확인해야 합니다. 그렇지 않은 경우 배경 이미지 경로를 GRUB_BACKGROUND=/boot/grub/<filename>in 으로 덮어쓰고 /etc/default/grub적절한 이미지 파일을 수동으로 복사합니다 /boot/grub/.

참고: 또는 명령이 grub.cfg있는 경우 에만 지정됩니다.set root=<something>search ... --set=root후속 GRUB 명령이 파일을 로드할 파일 시스템. 반드시 참고할 필요는 없음Ubuntu 설치를 위한 루트 파일 시스템root=...: 커널 부팅 옵션으로 구체적으로 지정하면 충분합니다 linux /boot/vmlinuz-....

귀하의 경우에는 LUKS 암호화를 잠금 해제하고 루트 파일 시스템을 찾는 것이 initramfsGRUB의 작업이 아닌 귀하의 작업이 될 것입니다.

관련 정보