두 개의 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
,,
drivemap
6) 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에서 최대 절전 모드를 끄고 빠른 시작 등을 비활성화했습니다.