Arch와 Ubuntu Linux를 이중 부팅하려고 하는데 어떻게든 두 개의 grub 메뉴로 끝나는 것 같습니다. grub 프롬프트에서 exit를 입력하면 두 번째 메뉴가 나타납니다. 더 이상한 점은 처음 나타나는 grub 메뉴에 Arch Linux용 부팅 항목이 있지만 내 시스템에 존재하지 않는 /dev/sde에서 uuid를 찾으려고 한다는 것입니다. 우분투 항목이 정상적으로 부팅됩니다.
이유는 잘 모르겠지만, 저는 grub이 Linux의 가장 혼란스러운 측면 중 하나라고 생각합니다.
Archlinux를 설치한 후 실행했습니다.
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux --recheck
Th3에 대한 플래그를 추가하고 실행합니다.grub-mkconfig -o /boot/grub/grub.cfg
이 문제를 어떻게 해결하며 왜 이상한 구성이 발생합니까?
기타 관련 정보는 모두 아래에 있을 것으로 생각됩니다. 누락된 정보가 있으면 알려주시기 바랍니다.
트리의 출력:
/boot/efi/
|-- EFI
| |-- ArchLinux
| | `-- grubx64.efi
| |-- BOOT
| | |-- BOOTX64.EFI
| | |-- fbx64.efi
| | `-- mmx64.efi
| `-- ubuntu
| |-- BOOTX64.CSV
| |-- grub.cfg
| |-- grubx64.efi
| |-- mmx64.efi
| `-- shimx64.efi
`-- System\ Volume\ Information
|-- AadRecoveryPasswordDelete
`-- ClientRecoveryPasswordRotation
내가 추가한 부팅 미디어 레이아웃 [Ubuntu**].
lsblk /dev/nvme0n1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 476.9G 0 disk
|-nvme0n1p1 259:1 0 487M 0 part /boot/efi
|-nvme0n1p2 259:2 0 274.4G 0 part [Ubuntu**]
|-nvme0n1p3 259:3 0 122.1G 0 part [SWAP]
`-nvme0n1p4 259:4 0 80G 0 part /
답변1
이는 대부분의 efi BIOS가 efistub를 사용하여 Linux 커널을 부팅할 수 있는 경우 grub이 필요하지 않기 때문입니다. Efistub은 Linux 커널을 직접 부팅합니다.
https://wiki.archlinux.org/title/EFISTUB
grub을 계속 사용할 수도 있지만, 발견한 바와 같이 각 grub은 grub 중 하나가 두 가지 모두에 대한 커널 경로와 설정을 올바르게 찾을 수 있도록 추가 디버깅 없이 특정 운영 체제(Ubuntu 또는 아치)를 부팅하는 데만 능숙합니다. .
답변2
첫 번째 GRUB 메뉴는 Ubuntu의 GRUB(GRUB 버전 2.04)에서 제공됩니다. shimx64.efi
Ubuntu의 ESP 디렉터리에 설치되므로 Ubuntu는 완전히 grubx64.efi
별도의 버전일 수 있습니다. 보안 부팅에서는 GRUB의 모듈 로드를 허용하지 않기 때문입니다. 왜냐하면 GRUB 모듈은 보안 부팅 펌웨어가 이해하는 PE32+가 아닌 ELF 바이너리 형식을 사용하기 때문입니다. 서명 확인을 통해 완료됩니다.)
어쩌면 당신의 Arch 설치는 GRUB 2.04가 인식하지 못하는 파일 시스템 유형을 사용할 수도 있지만, Arch의 자체 GRUB(버전 2.06)은 그것을 읽을 수 있습니다. 이 경우, Arch의 GRUB를 기본 부팅 항목으로 사용하고 grub.cfg
Ubuntu의 GRUB 메뉴를 표시하기 위해 Ubuntu의 부팅 항목을 읽는 사용자 정의 부팅 항목을 만드는 것이 가장 좋습니다 . 그런 다음 해당 메뉴 항목을 사용하여 Ubuntu를 부팅할 수 있습니다 grub.cfg
. Ubuntu GRUB의 나머지 부분이 실제로 전혀 사용되지 않더라도 Ubuntu가 커널 업데이트를 받을 때마다 평소처럼 업데이트됩니다 .
실행 efibootmgr -v
: Ubuntu의 시작 항목과 Arch의 다른 시작 항목이 표시됩니다. 이를 통해 efibootmgr -o
Arch의 GRUB가 첫 번째로 시도되도록 부팅 순서를 다시 정렬할 수 있습니다. 출력 BootOrder
의 기존 설정을 살펴보고 efibootmgr -v
숫자를 원하는 순서로 이동하세요.
( 이상한 UEFI 펌웨어 구현이 있는 경우에 BootOrder
나열된 부팅 옵션의 총 수를 변경하지 않는 것이 가장 좋습니다 .)efibootmgr