이중 부팅 후 Grub에 Windows 8 옵션이 표시되지 않음


25

그래서 우분투 12.04로 Windows 8 컴퓨터를 성공적으로 이중 부팅했습니다. 그러나 여전히 부팅 할 때로 드 할 OS를 선택하는 편리한 방법이 없습니다.

Ubuntu를 설치 한 후에도 컴퓨터는 여전히 Windows 8을 직접로드합니다. 그런 다음 grubx64.efi부트 로더의 화이트리스트에 추가 했습니다. 그러나 그 후에 내 컴퓨터는 GRUB의 그림자조차 나타나지 않고 Ubuntu를 직접로드합니다!

부팅 복구를 사용하고 paste.ubuntu URL ( paste.ubuntu.com/1326074)을 얻었습니다 . 부트 복구를 실행하고 grubx64.efi파일을 다시 흰색으로 표시하면 GRUB이 표시되지만 Windows 8 옵션은 없습니다!

마지막으로, 나는 달렸고 sudo fdisk -l나에게 이것을 주었다.

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

내 문제에 fdisk위 의 경고와 관련이 있다고 생각 하지만 어떻게 해야할지 모르겠습니다. 지금 진행하려면 어떻게합니까?

편집하다

etc/default/grub다음과 같습니다

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

또한, 단지 기록을 위해, 이것은 내가 듀얼 부트를 설치할 때 따라온 것 입니다. 11.10을 사용하는 튜토리얼에서는이 문제에 대해 언급하지 않습니다. 내가하지 말아야 할 것이 있습니까?


이 답변을 읽으면
NickTux

답변:


17

첫째, fdisk -l출력은 문제가되지 않습니다. GUID 파티션 테이블 (GPT) 파티션 시스템 을 사용하여 디스크를 식별합니다 . 파티션을 보려면, 대신 같은 같은 GPT 지원 도구를 사용해야 gdisk하거나 parted보다는, fdiskGPT을 이해하지 않는다.

둘째, 적절한 항목을 추가 한 /etc/grub.d/40_custom다음을 수행하여 GRUB이 Windows를 체인로드하도록 할 수 있습니다 sudo update-grub. 항목은 다음과 같습니다.

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

세부 사항은 설치에 따라 다를 수 있습니다.

셋째, rEFInd가보기 흉한 것으로 생각 되면 rEFInd 문서에 설명 대로 언제든지 다른 rEFInd 테마를 시도하거나 나만의 테마를 작성할 수 있습니다 . 또는 텍스트 모드 부트 로더를 선호하는 경우에서 textonly옵션을 설정할 수 있습니다 refind.conf. gummiboot 로 전환하여 비슷한 목적을 달성 할 수 있습니다 .

넷째, rEFInd가 주기적으로 오류를보고하는 경우 오류를 기록하거나 디지털 카메라로 화면을 촬영하여 나에게보고하십시오. (나는 rEFInd의 관리자입니다.) 아무도보고하지 않으면 버그를 고칠 수 없습니다. 또는 rEFInd에서 버그가 아닌 경우 메시지가 문제를 해결하는 방법에 대한 힌트를 제공 할 수 있습니다.

마지막으로 GRUB을 사용하지 않고 rEFInd (또는 gummiboot)를 통해 Linux를 부팅 할 수 있습니다. 다른 EFI 부트 로더가 필요합니다. 개인적으로 선호하는 것은 Linux 커널의 EFI 스텁 로더입니다. 그러나 이것은 3.3.0 이상 커널에서만 사용할 수 있습니다. Ubuntu 12.04는 3.2.0 커널과 함께 제공되므로 Ubuntu 12.04 용으로 사전 빌드 된 3.3.0을 찾거나 (그런데 들리는 링크는 없습니다) 빌드해야합니다. 소스 코드에서 자신의. (적절한 커널과 함께 제공되는 Ubuntu 12.10을 설치할 수도 있지만 아마도 LTS 릴리스를 원할 것이므로 최적이 아닐 수도 있습니다.) Linux 부팅에 대한 rEFInd 설명서 페이지를 참조하십시오.설정 방법에 대한 자세한 내용은 ELILO 또는 GRUB Legacy를 사용할 수도 있습니다. 단순히 지연에 반대하는 경우 GRUB 2 시간 초과 값을 줄이고 기본적으로 메뉴가 표시되지 않도록 설정할 수 있습니다.


1
우선, 당신이 rEFInd의 관리자라는 것을 몰랐습니다. 다음으로 GRUB 메뉴 항목과 관련하여 ... 나는 그것을 시도했지만 작동하지 않습니다. 다른 장면들 중에서도 ESP 파티션 설정을 시도했지만 아무 소용이 없습니다. 그래픽 GRUB 편집기 중 하나를 사용해 보았습니다 (이름을 잊어 버렸습니다). 마지막으로, rEFInd와 관련하여보고하는 오류는 중요하지 않습니다 (내 게시물을 편집하여 메모 할 것입니다). 시작시 특정 .efi를 찾을 수 없음을 알려줍니다. 나는 그들이 어디에서 왔는지 전혀 모른다.
skytreader

ESP에 지정된 파일이 있는지 확인하십시오. 또한 파일 이름 의 대소 문자 가 올바른지 확인하십시오. (중요하지는 않지만 버그가있는 EFI에 대해서는 알고 있습니다.) 그래도 도움이되지 않으면이 항목을 통해 Windows를 시작할 때 GRUB이 반환하는 오류 메시지 (있는 경우)는 무엇입니까?
로드 스미스

8

CD를 사용하여 우분투로 부팅은
"우분투 시도"를 선택하여
인터넷에 연결,
사용하여 터미널 창을 열고을 Ctrl- Alt- t다음 실행 :boot-repair

부팅 복구가 없으면 다음을 설치하십시오.

sudo add-apt-repository ppa:yannubuntu/boot-repair &&
sudo apt-get update &&
sudo apt-get install -y boot-repair &&
boot-repair

권장 수리를 클릭하십시오. 나타날 새 URL을 종이에 쓰십시오. PC를 재부팅하면 Ubuntu와 Windows에 모두 액세스 할 수있는 GRUB 메뉴가 나타납니다. 문제가 있으면 새 URL을 표시하십시오.


7

두 가지 모두 /EFI/Microsoft/Boot/bootmgfw.efi할 것입니다. 그러나에 대한 올바른 설정을 얻기 위해 지옥처럼 해킹했습니다 set root='(hd0,gpt1)'. 아시면 매우 간단합니다

GRUB 시작시 : 프롬프트 c 에서 명령 ls을 누르십시오 .
(hd0, gpt1) 등과 같은 하드 디스크의 파티션 목록을 얻습니다. (hd0, gpt1)을
입력 ls하고 다른 것을 시도하십시오.
레이블을보고 EFI라고 표시되어 있으면 히트 한 것을 알 수 있습니다.

경고 : Ubuntu 설치 방법에 따라 EFI로 레이블이 지정된 파티션이 더있을 수 있습니다. 그들 모두를 시도하십시오.


6

실행 해보십시오 sudo update-grub. 희망적으로 Windows 8을 자동으로 인식하고 GRUB에 추가하고 메뉴를 다시 구성해야합니다.

실패하면 /etc/default/grub여기에서 파일을 공유하십시오 . 살펴 보겠습니다.


1
안녕. sudo update-grub트릭을하지 않았다. 을 포함하도록 질문을 편집했습니다 /etc/default/grub. 한편, 나는 NikTh 링크 답변을 공부하고 있습니다.
skytreader

3

/etc/grub.d/30_windows이것을 포함 하는 파일을 만들어보십시오 .

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
그런 다음 실행 sudo update-grub하고 재부팅하십시오.

전체 튜토리얼


1
  1. super Grub을 다운로드하고 지시를 따르십시오. 나는 그것없이 집을 떠나지 않습니다. 그럽 메뉴가 표시되지 않을 때 매우 유용합니다.

  2. 당신은 CD에로드하고 부팅해야합니다. 함께 제공되는 지침을 따르십시오.

  3. 창을 수정하는 데에도 사용할 수 있습니다. Windows 8로만 부팅 할 수 있으므로 Linux 수정 프로그램을 선택하려고합니다.

이것과 함께 놀아하지만 지시 사항을 읽으십시오. 잠시 후 전문가처럼 느껴질 것입니다. RS


0

내 궁극적 인 해결 방법

(* Tom이 작동하지 않고 NikTh의 링크가 너무 복잡하기 때문에 귀찮게 해 주셔서 감사합니다!)

rEFInd를 설치 하십시오 .


누군가가 가능한 결점과 그에 대한 수정 사항을 지적하거나 내 문제를 해결할 때까지 내 자신의 대답을 받아들이고 있습니다 (불행히도 "Windows 8을 GRUB에 쉽게 넣는 방법 ?"

( 편집 8/6/17 : 나는 궁극적으로 rEFInd를 사용 하여이 문제를 해결했습니다 (위의 허용 된 답변 참조).

완벽한 솔루션과는 달리 rEFInd를 사용하는 것은 매우 해킹 작업처럼 보입니다. 하나, 그것은 추악한 (죄송한 rEFInd) 보이고 특정 .efi ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi)에서 액세스가 거부되었다고 말하지만 중요하지는 않지만 버튼으로 사라집니다. 프레스*. 마지막으로 Ubuntu efi를 선택하면 GRUB이 여전히로드되지 않습니다. GRUB은 적어도 여러 커널 버전을 유지하지 않아도되므로 완전히 불필요한 단계입니다.

요약해서 말하자면...

장점 : 내 시스템은 이제 UEFI 사전 이중 부팅처럼 작동합니다. 단점 : 못생긴 것처럼 보이고 부팅 시간이 길어집니다.

*이 rEFInd는 install.shUbuntu 파티션을 통해 설치되었습니다 . rEFInd (Windows를 통한 설정)에 대한 이전 경험에는이 문제가 없었습니다.


Windows를 통한 이전 rEFInd 설치에서 찾을 수 없었지만 Linux에서 현재 설치 한 파일에 대해서는 오류가 발생하지 않으면 다음 두 가지 중 하나가 진행되고있는 것입니다. 1) 대소 문자 구분 버그.이 경우 파일이나 디렉토리의 경우 문제를 개선 할 수 있습니다. 또는 2) ESP에 이상한 것이 있습니다 (예 : FAT16 vs. FAT32 또는 약간의 파일 시스템 손상). 일부 EFI는 ESP의 파일 시스템에 대해 매우 까다로운 것으로 보입니다. 정확한 파일 이름은 문제를 좁히는 데 도움이 될 수 있습니다.
로드 스미스

승인. 내 잘못이야. 특정 efi를 찾을 수 없다고 말한 것이 아니라 특정 efi에서 액세스가 거부되었다는 것입니다. 나는 아직도 그들이 어디에서 왔는지 전혀 모르지만이 파일들을 주목했다.
skytreader

"액세스 거부"는 제 경험상 EFI에서 드문 오류입니다. AFAIK, EFI는 Linux처럼 소유권 또는 권한을 지원하지 않으므로 디스크 읽기 오류가없는 한 실제로 의미가 없습니다. 다음에 다시 부팅 할 때 EFI 에서 이상한 디스크 쓰기 오류가 발생했습니다. 이 문제가 지속되면 하드웨어 결함이있는 경우 디스크에서 SMART 테스트를 실행하고 dosfsck로 해결할 수없는 이상한 파일 시스템 손상이있는 경우 ESP를 백업하고 다시 작성하십시오. 그 외에는 어떤 파일이 문제를 일으키는 지보고하는 것이 유용 할 수 있습니다.
Rod Smith

1
"액세스 거부"메시지는 보안 부팅과 거의 관련이 있습니다. 보안 부팅 모드에서 rEFInd가 서명되지 않은 EFI 바이너리를로드하려고하면 이러한 메시지가 발생합니다. 이에 대한 수수께끼는 서명되지 않았기 때문에 rEFInd를 전혀 시작할 수 없다는 것입니다. 내 직감은 펌웨어에 일종의 이상한 버그 활성화 반 활성화 보안 부팅 설정이 있다는 것입니다. 현재 가장 쉬운 해결책은 보안 부팅을 완전히 비활성화하는 것이지만 다른 방법도 있습니다. 자세한 내용은 내 웹 페이지 rodsbooks.com/efi-bootloaders/secureboot.html 을 참조하십시오.
로드 스미스

내 hp 랩톱에서 f9 키를 누른 다음 시동을 켜야합니다. 그렇지 않으면 창이로드됩니다. 또한 사용하지는 않지만 grub에서 Windows를 부팅하는 옵션도 있습니다. Windows에 지루한 경우 전원을 켜고 Windows를 기다립니다. 우분투를 부팅 할 계획이라면, 전원을 켜 자마자 f9를 누르면됩니다.
geoffmcc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.