
Windows 11을 추가하기 위해 Ubuntu 22.04 LTS 드라이브를 분할했을 때 문제가 시작되었습니다(드라이브 분할을 위해 Ubuntu 부팅 가능 장치를 사용했습니다).
Windows 11이 설치되면 내 컴퓨터는 grub 메뉴를 표시하는 대신 Windows 11을 부팅하기 시작했습니다. BIOS에 들어가서 Ubuntu를 맨 위로 이동하여 이 문제를 해결했습니다. 내 컴퓨터가 이제 Ubuntu로 부팅 중이었지만 여전히 grub 메뉴가 표시되지 않았습니다.
이 포스팅을 보신 후,컴퓨터를 시작할 때 Grub 메뉴가 표시되지 않는 이유는 무엇입니까?, Grub 메뉴를 다시 표시할 수 있었습니다(@Akalgnotum). 하지만 Windows 11은 메뉴에 포함되지 않았습니다.
이번 포스팅을 참고하여,GRUB가 Windows를 감지하지 못합니다나는
sudo os-prober
다음을 실행했습니다: /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
. 그런 다음 나는 sudo update-grub
나에게 다음과 같은 "경고"를주었습니다.
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.15.0-46-generic
Found initrd image: /boot/initrd.img-5.15.0-46-generic
Found linux image: /boot/vmlinuz-5.15.0-43-generic
Found initrd image: /boot/initrd.img-5.15.0-43-generic
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
sudo update-grub
내가 수집한 바에 따르면 Windows는 os-prober에서 제공한 정보를 실행하고 사용하지 않기 때문에 추가되지 않습니다 .
이 문제를 해결하는 방법을 모르겠습니다. 어떤 제안이라도 매우 도움이 될 것입니다. 더 많은 정보가 필요하면 기꺼이 제공해 드리겠습니다.
감사해요!
답변1
며칠 동안 인터넷을 뒤진 끝에 답을 찾았습니다!
모든 크레딧은 이 게시물에 있습니다.https://askubuntu.com/a/977251/1191399. 나는 그것을 반복하고 있습니다.
sudo fdisk -l
다음과 같은 내용이 포함된 긴 결과를 얻어야 합니다.
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 874729471 873678848 416.6G Linux filesystem
/dev/nvme0n1p3 874729472 874762239 32768 16M Microsoft reserved
/dev/nvme0n1p4 874762240 1000214527 125452288 59.8G Microsoft basic data
- UUID를 가져옵니다.EFI 파티션
sudo blkid /dev/nvme0n1p1
(nvme0n1p1을 올바른 파티션으로 교체하세요)
반품:
dev/nvme0n1p1: UUID="3C26-6A4C" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3b64b43f-e7eb-4ac8-a32c-9af2edf64d0d"
/etc/grub.d의 '40_custom' 파일에 대한 쓰기 권한을 자신에게 부여하십시오.
터미널을 열고(ctrl+alt+t) 다음 명령을 실행하십시오.
cd /etc/grub.d
sudo chmod o+w 40_custom
40_custom 파일을 엽니다.
open ./40_custom
파일 하단에 다음을 작성하고 3C26-6A4C를 올바른 UUID로 바꿉니다.
menuentry 'Windows 11' {
search --fs-uuid --no-floppy --set=root 3C26-6A4C
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
파일을 저장하고 편집기를 닫습니다.
터미널로 돌아가서 쓰기 권한을 제거합니다.
sudo chmod o-w 40_custom
다음을 사용하여 GRUB 업데이트
sudo update-grub
(선택 사항) /boot/grub/grub.cfg로 이동하여 243-251행을 확인하여 변경이 성공적으로 이루어졌는지 확인할 수 있습니다. 40_custom 파일의 편집 내용을 반영해야 합니다.
컴퓨터를 재부팅하세요
reboot
답변2
Grub 2.06은 /etc/default/grub에서 os-prober를 끕니다.
https://www.phoronix.com/news/Ubuntu-22.04-Multi-Boot-Changes
다른 시스템을 찾기 위해 모든 파티션을 검색하는 데 일종의 보안 문제가 있습니다. /etc/default/grub에서 켜거나 끌 수 있습니다.
한 번만 실행한 다음 Windows 부팅 스탠자를 40_custom에 복사하는 것이 가장 좋습니다. 또한 특히 스캔할 파티션이 많은 경우 향후 모든 업데이트가 더 빨라집니다.
sudoedit /etc/default/grub
그런 다음 필요에 따라 true/false로 변경합니다. 사실 추천합니다.
GRUB_DISABLE_OS_PROBER=true
부팅 스탠자를 40_custom에 쉽게 복사할 수 있습니다.
설명을 수정하는 한 가지 방법은 Windows 항목을 40_custom으로 이동하고 원하는 대로 편집하는 것입니다.
다음 항목을 복사하세요.
sudo cp -a /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
sudoedit /boot/grub/grub.cfg
원하는 항목만 포함하도록 복사하고 편집하세요.
sudoedit /etc/grub.d/40_custom
Grub 또는 Grub의 스크립트를 변경한 후에는 Grub 메뉴를 업데이트해야 합니다.
sudo update-grub
Windows 10 및 Ubuntu 14.04의 Grub 메뉴
os-prober에서 일반화된 일반적인 UEFI Windows 부팅 스탠자입니다. 각 ESP에는 고유한 UUID와 partUUID가 있습니다. 부팅 스탠자의 UUID는 ESP의 UUID입니다.
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-F8FD-D8E5' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root F8FD-D8E5
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
위 스탠자를 사용하는 경우 UUID로 업데이트해야 하며 os-prober 사용에 대한 설명은 필요하지 않습니다. ESP의 UUID를 보려면.
lsblk -f
참고: Grub은 Windows 작동만 부팅합니다. 그리고 UEFI 보안 부팅이 꺼져 있어야 합니다. Windows에서는 업데이트를 통해 Windows 빠른 시작을 다시 켜는 경우가 많습니다. 따라서 UEFI 일회용 부팅 키(종종 f12)를 사용하여 Windows를 직접 부팅해야 하지만 공급업체에 따라 다릅니다.
답변3
1. 디스크 및 파티션 나열
lsblk
2. Windows 파티션이 포함된 디스크를 식별합니다.
sudo cfdisk /dev/sd<YOUR DISK LETTER (NO NUMBER)>
- 장치를 순환하려면 수직 화살표 키를 사용하십시오.
- EFI 파티션은 "EFI 시스템"으로 유형이 지정된 장치입니다.
- EFI 장치의 "파일 시스템 UUID"를 복사합니다. (XXXX-XXXX)
[ Quit ]
키보드의 화살표 키를 사용하여 선택하세요 . cfdisk를 종료하려면 Enter를 누르세요.
3. 열기 /etc/grub.d/40_custom
좋아하는 편집기에서 ( nano
, vim
, code
)
sudo nano /etc/grub.d/40_custom
4. 설명 아래에 메뉴 항목을 추가합니다.
menuentry 'Windows 11' {
search --fs-uuid --no-floppy --set=root <YOUR "File system UUID">
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
5. grub 구성을 업데이트합니다.
sudo grub-mkconfig -o /boot/grub/grub.cfg
와 끝내다sudo reboot
답변4
적어도 나에게는 이것이 문제를 해결한 것입니다. os-prober가 비활성화되었습니다. 나는 우분투 22.04에 있습니다
sudo nano /etc/default/grub
세트GRUB_DISABLE_OS_PROBER=false
그런 다음 실행
sudo update-grub