2개의 하드 드라이브

저도 부팅 할 때 F12 눌러서 부팅 디스크를 변경합니다.

그게 더 편하지 않나요?

하드디스크 두개인 PC가 없어서 되는지 모르겠는데 아래와 같이 한번 해보고 결과를 알려주시면 도움이 될것 같습니다.

일단, BIOS(Firmware) 셋업에서 우분투를 먼저 부팅하도록 설정합니다. Grub2를 사용할 것이니까요…

아래와 같은 Grub2 메뉴엔트리를 만들어서,

[code:2zzotxn1]menuentry ‘Windows 7 UEFI from 2nd HDD’ {
insmod part_gpt
insmod fat
set root=‘hd1,gpt1’
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
[/code:2zzotxn1]
위에서 Windows 7이 두번째 하드디스크에 설치되어 있고 그 첫번째 파티션이 EFI System Partition이라고 가정한겁니다.

root 권한으로 /etc/grub.d/40_custom 파일 맨 끝에 위의 메뉴 엔트리를 추가합니다.
$ sudo nano /etc/grub.d/40_custom

$ sudo update-grub
$ sudo reboot

결과를 알려 주셔서 감사합니다. 아래의 설명대로 다시 해보시고 결과를 알려주시면 고맙겠습니다.

UEFI에서는 GPT 파티션을 사용하는데 gdisk나 parted/gparted가 유용합니다.
fdisk는 BIOS 모드의 MBR 파티션에만 유용합니다.

Windows가 설치된 디스크 파티션 정보는 아래와 같이 알수 있구요.
$ sudo parted /dev/sdb print

또, Windows가 사용하는 EFI System Partiton(ESP)은 1번 또는 2번 파티션일겁니다.
일단, /dev/sdb1을 마운트해서 폴더를 살펴볼 필요가 있습니다.
$ sudo mount /dev/sdb1 /mnt
$ ls /mnt/EFI/Microsoft/Boot/bootmgfw.efi
위와 같이 해서 bootmgfw.efi 파일이 있으면 1번 즉, /dev/sdb1이 ESP입니다.

ESP가 1번 파티션이라고 가정할때 이제 아래 두개의 명령으로 메뉴엔트리에 사용할 <hints_string>과 <fs_uuid> 정보를 얻어 냅니다.

$ sudo grub-probe --target=hints_string /mnt/EFI/Microsoft/Boot/bootmgfw.efi
–hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1

$ sudo grub-probe --target=fs_uuid /mnt/EFI/Microsoft/Boot/bootmgfw.efi
ffff-ffff

위 두개의 명령 결과값들은 메뉴엔트리에서 아래와 같이 사용됩니다.
search --fs-uuid --set=root <hints_string> <fs_uuid>

즉, 위의 결과값을 예로 들어 메뉴엔트리를 다시 만들면 아래와 같이 됩니다.

[code:3ty68ysc]menuentry "Microsoft Windows Vista/7/8+ UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1 ffff-ffff
drivemap -s hd0 hd1
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
[/code:3ty68ysc]
위의 메뉴엔트리에서 drivemap 부분은 일단 넣고 했다가 안되면 빼서 다시 시도해 보시기 바랍니다. Windows가 물리적으로 두번째 하드디스크에 설치된 경우에 drivemap을 사용한다는데 해보시기 바랍니다.

이제 다시 /etc/grub.d/40_custom 파일 맨 끝에 위의 내용을 넣고,
$ sudo nano /etc/grub.d/40_custom

$ sudo update-grub
$ sudo reboot

그리고, 위의 새로 추가한 Windows 메뉴로 부팅시에 잘 안되면 증상도 같이 알려 주시면 고맙겠습니다.

하드디스크 파티션인 gpt(uefi), mbr 파티션이 이해가 필요하네요.
보드 바이오스의 csm, fastboot, secure boot의 설정을 확인해야 겠지요.
OS를 설치할 때 uefi인지 mbr인지를 확인해야 합니다.

즉, 하드의 파티션 + 보드의 바이오스 + 부팅시 uefi 여부의 각 조합들이 맞아야 합니다.

속편하게는 mbr로 사용하는게 괜찮습니다.
윈도7은 64비트만 uefi를 지원하고 그것도 csm을 켜야 에뮬레이터로 돌아가는 반쪽짜리라서 부팅시 mbr을 선택하지 않아야 합니다.

아무 윈도8이었다면 정상적인 uefi를 지원하기 때문에 불편이 없었겠는데,
윈도7을 설치하면서 혼란에 빠진 듯 보이네요.

아무튼 문제를 해결하셨으니 다행입니다.

UEFI 환경에서 디스크가 여러 개일때 Grub2가 잘 동작하는지 궁금했는데 담 기회로 미루어야겠어요. BIOS 환경에서는 예전에 잘 썼었구요.

[quote:dhindubz]UEFI에서는 GPT 파티션을 사용하는데 gdisk나 parted/gparted가 유용합니다.
fdisk는 BIOS 모드의 MBR 파티션에만 유용합니다.
[/quote:dhindubz]

방금 발견했는데 우분투 14.04까지는 fdisk가 MBR(msdos) 파티션만 지원했는데 우분투 14.10의 fdisk는 GPT 파티션까지 지원하는군요… gdisk 만든 사람이 우분투에 들어갔는데 fdisk와 gdisk를 fdisk로 통합하는 듯한 느낌이네요.