Grub2는 Windows 10, 하드 드라이브 2개에서 이중 부팅, UEFI/GPT 시스템을 감지할 수 없습니다.

Grub2는 Windows 10, 하드 드라이브 2개에서 이중 부팅, UEFI/GPT 시스템을 감지할 수 없습니다.

두 개의 SSD가 있는데, Windows 10은 /dev/sda1에 있고 OpenSuse는 /dev/sda3에 있습니다(/dev/sda2는 스토리지 하드 드라이브용입니다). 몇 달 전에 /dev/sda3에 Ubuntu를 설치했습니다. 하지만 개인적인 이유로 OpenSuse를 사용하기로 결정했습니다. 그래서 일주일 전에 저는 /dev/sda3에 OpenSuse를 설치했습니다.

Ubuntu에서 /dev/sda3을 사용할 때 부팅 순서는 /dev/sda1 대신 /dev/sda3입니다. 머신을 부팅하면 grub이 시스템을 부팅합니다. Ubuntu를 감지하고 Windows 10이 내 /dev/sda1에 있습니다.

그러나 /dev/sda3을 포맷하고 /dev/sda3에 OpenSuse를 설치한 후 새 OpenSuse 설치와 함께 제공된 grub은 동일한 부팅 순서로 Windows 10을 감지하지 못했습니다.

그래서 일부 포럼을 확인하고 os-prober또는 같은 다양한 방법을 시도했지만 update-bootloader아무 효과가 없었습니다.

이러한 시도 후에 나는 방법에 대한 stackoverflow wiki 질문을 발견했습니다.두 번째 하드 드라이브의 듀얼 부팅 창, UEFI/GPT 시스템. 나는 이것을 단계별로 따라 갔다.

완료 시 첫 번째 시도가 실패했습니다. 이것이 내 /etc/grub.d/40_custom의 모습입니다.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "MS Windows" {
        insmod part_gpt
        insmod search_fs_uuid
        insmod ntfs
        insmod chain
        search --fs-uuid --no-floppy --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 685EBC705EBC3920
        chainloader /Windows/Boot/EFI/bootmgfw.efi
}

그것을 만들기 위해 나는 다음 단계를 따랐습니다. (내가 뭔가 잘못했다면 위의 링크를 사용하여 동일한 단계를 다시 작성했습니다...)

1) Windows 10 디스크의 마운트 경로를 찾으세요. 이것이 제 상황입니다 /run/media/cavit/685EBC705EBC3920,,

2) 환경 변수를 로 설정합니다 win.

3) Windows용 efi를 찾으면 나에게 /Windows/Boot/EFI/bootmgfw.efi,

4) grub2-probe --target=hints_string $win주어진 --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4 --hint='hd2,gpt4',

5) grub-probe --target=fs_uuid $win주어진 685EBC705EBC3920,,

drivemap6) Windows 10 디스크가 이미 첫 번째 디스크이기 때문에 해당 디스크가 없습니다 .

7) find /boot -name grub.cfg주어진 /boot/grub2/grub.cfg,,

8) grub-mkconfig -o /boot/grub2/grub.cfg다음과 같은 출력을 제공합니다.

Generating grub configuration file ...
Found theme: /boot/grub2/themes/openSUSE/theme.txt
Found linux image: /boot/vmlinuz-4.4.2-1-default
Found initrd image: /boot/initrd-4.4.2-1-default
Found linux image: /boot/vmlinuz-4.4.1-1-default
Found initrd image: /boot/initrd-4.4.1-1-default
Found memtest image: /boot/memtest.bin
done

9) grub-script-check /boot/grub/grub.cfg출력이 제공되지 않습니다.

그러나 재부팅하고 새 항목을 선택한 후 첫 번째 시도에서 grub은 출력을 제공했습니다 can't find command chainload. 원래 글에는 마지막 코드 줄이 이렇게 생겼는데 /etc/grub.d/40_custom, chainload (${root})/Windows/Boot/EFI/bootmgfw.efi혹시 그 명령어가 로 수정된 건 아닐까 해서 혹시나 chainloader해서 확인해봤는데 이번에는 오류가 떴네요 Error: Invalid Signature.

반면, Windows 10 디스크(/dev/sda1)에는 이상한 파티션이 있습니다. 추가 파티션이 있는데 왜 존재하는지 이해할 수 없습니다. 이것이 내 blkid결과입니다.

/dev/sda1: LABEL="Recovery" UUID="6AC8BAAFC8BA78C1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="83e0d3c4-f90b-4f2f-8f8b-500b1f773d5d"
/dev/sda2: UUID="08BA-F986" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4c3e9d7b-1f9c-49e7-8bfe-83d1e3d778b4"
/dev/sda3: PARTLABEL="Microsoft reserved partition" PARTUUID="2686e370-0de7-466c-85b7-1e6594f6eb56"
/dev/sda4: UUID="685EBC705EBC3920" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="901c7e27-71f0-4e61-9626-095783661f2d"

/dev/sda2 에 트리구조의 EFI폴더 가 있는데,

EFI                                                                                                                                                                            
├── Boot                                                                                                                                                                     
│   └── bootx64.efi                                                                                                                                                          
├── Microsoft                                                                                                                                                                
│   ├── Boot                                                                                                                                                                 
│   │   ├── BCD                                                                                                                                                              
│   │   ├── BCD.LOG                                                                                                                                                          
│   │   ├── BCD.LOG1                                                                                                                                                         
│   │   ├── BCD.LOG2                                                                                                                                                         
│   │   ├── bootmgfw.efi                                                                                                                                                     
│   │   ├── bootmgr.efi                                                                                                                                                      
│   │   ├── BOOTSTAT.DAT                                                                                                                                                     
│   │   ├── boot.stl     
│   │   ├── kd_02_10df.dll
│   │   ├── kd_02_10ec.dll
│   │   ├── kd_02_1137.dll
│   │   ├── kd_02_14e4.dll
│   │   ├── kd_02_15b3.dll
│   │   ├── kd_02_1969.dll
│   │   ├── kd_02_19a2.dll
│   │   ├── kd_02_8086.dll
│   │   ├── kd_07_1415.dll
│   │   ├── kd_0C_8086.dll
│   │   └── kdstub.dll
│   └── Recovery
│       ├── BCD
│       ├── BCD.LOG
│       ├── BCD.LOG1
│       └── BCD.LOG2
└── ubuntu
    ├── grub.cfg
    ├── grubx64.efi
    ├── MokManager.efi
    └── shimx64.efi

ubuntu그래서 내가 뭔가 잘못하고 있는 것인지, 왜 이 폴더가 내 디렉토리에 있는지 알 수 없습니다 EFI. 이 문제를 해결하기 위해 확인할 수 있는 포럼이나 위키가 더 이상 없는 것 같습니다. 그렇다면 Windows 10에서 그럽 감지 문제를 해결할 수 있는 방법이 있습니까?

참고: Windows에서 최대 절전 모드를 끄고 빠른 시작 등을 비활성화했습니다.

관련 정보