GRUB OS 목록에 Windows 10 추가


29

최근에 학교에서 컴퓨터를 받았습니다. Windows 8.1이 설치되어 제공됩니다. 그런 다음 다른 Windows 8.1 복사본 (내장 Windows Pro 라이센스를 사용함)을 설치하고 Windows 10으로 업그레이드했습니다. 그런 다음 Windows 8 및 10과 함께 Ubuntu를 설치했습니다.

/ boot에 대해 별도의 255MB ext2 파티션을 만들었습니다.

이제 컴퓨터를 부팅 할 때 Windows 8 및 Ubuntu 옵션과 함께 GRUB 프롬프트가 표시됩니다 (나는 이미 그런 식으로 좋아하는 grub 프롬프트를 숨겼습니다). 그러나 Windows 10 옵션은 없습니다. Ubuntu를 선택하면 컴퓨터가 Ubuntu로 부팅됩니다. 그러나 Windows 8 옵션을 선택하면 Windows 부트 로더로 보내져 Windows 8 또는 Windows 10 부팅 옵션이 제공됩니다. 그러나이 시점에서 컴퓨터는 이미 커널과 분명히 마이크로 소프트는 부트 로더 의 개념을 이해하지 못하고 "실제로 부트 로더를 보여주기 전에 실질적으로 전체 시스템을 부팅"한다는 의미로 결정했습니다.

Windows 부트 로더를 비활성화하고 GRUB에 Windows 10 옵션을 추가하려면 어떻게해야합니까? 편집 : 누군가 Windows 부트 로더를 비활성화하라는 응답을 받았습니다. 그러나 여전히 GRUB OS 목록에 Windows를 추가하는 방법을 모르겠습니다. 누구든지 이것을 도울 수 있습니까?

편집 2 : EasyBCD를 사용하여 Windows 부트 로더에서 Windows 10을 제거한 후 몇 번의 재부팅 후에도 계속 숨기기가 해제되고 Windows 10이 다시 나타납니다. 그러나 나중에 msconfig의 OS 목록에서 Windows 10을 삭제했으며 삭제 된 상태로 유지됩니다.

그러나 여전히 GRUB에 Windows 10을 표시하지 못했습니다. 마치 GRUB이 감지하지 못하는 것처럼 보입니다.

또한 사람들이 그것을 볼 수 있도록 질문에 넣을 것입니다. boot-repair하지만 사용하려고 시도했지만 도움이되지 않았습니다.


1
@ daltonfury42 OP의 요구 사항을 듣지 않거나 이해하지 못하면 믿지 마십시오! 특수한 요구 사항이있는 비정형 UEFI 설치의 경우 일반적인 레거시 부팅 설정에서 일반적으로 발생하는 문제를 대부분 해결하는 도구를 권장하는 것은 오해의 소지가 있으며 생산성이 떨어집니다.
LiveWireBT

2
@LiveWireBT 정말 죄송합니다. 나는 당신의 대답을 보았다. 내 의견을 삭제했습니다 (믿기 : P). 감사!
daltonfury42

1
어쨌든 전체 Windows 10 파티션을 삭제하고 VM으로 옮길 것입니다.
Hitechcomputergeek

왜 사람들이 여전히 이것을지지하는지 확실하지 않습니다. IMO는 큰 질문이 아닙니다. 그러나 올해는 MBR에서 GPT 및 UEFI 부팅으로 변환하여 다른 방법으로 해결했습니다. 기본적으로 파티션 구성표를 GPT로 변환하고 Windows 파티션 크기를 조정하고 EFI 시스템 파티션을 추가 한 다음 rEFInd를 추가하고 Windows 설치 디스크를 사용하여 Windows BCD를 만들었습니다. 이제 UEFI 부팅을 사용하여 시스템이 부팅되므로 OS에서 더 쉽게 재생할 수 있습니다. 인터넷과 달리 Windows 설치를 BIOS에서 UEFI로 변환하는 것은 그리 어렵지 않았지만 쉽지 않았습니다.
Hitechcomputergeek

1
앞으로 이와 같은 일을하고 BIOS를 고수하려는 사람이라면 누구나 Windows BCD에 답이 있다고 생각합니다. Windows 10 설치에는 적절한 부트 로더 또는 BCD 등이 없으며 실제로 독립적으로 부팅 할 수 없다고 생각합니다. 제대로 완료되면 GRUB에서 Windows 10 파티션을 자동으로 찾기 시작합니다.
Hitechcomputergeek

답변:


25

용도:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

우분투 터미널의 명령을 사용하면 문제를 해결할 수 있습니다.

이 명령으로 시스템은 Windows 설치를 자동으로 감지하여 GRUB 목록에 추가합니다.


2
불행히도 작동하지 않았습니다. Windows 10 파티션을 감지하지 못하는 것 같습니다.
Hitechcomputergeek

1
실제로 나는 내 시스템 (윈도우 10 및 우분투 14.04가 있음)과 동일한 문제가 있었고이 명령으로 해결되었습니다.
Neel Shah

어떤 명령은 해결의 update-grub또는 grub-install? 그리고 별도의 / boot 파티션이 있습니까? 문제는 별도의 부트 파티션이 있다는 것입니다. 실제로는 sda6입니다.
Hitechcomputergeek

이 두 명령을 (분명히) 수행해도 해결되지 않았습니다.
Hitechcomputergeek

7
sudo update-grub그것을했다.
thameera

21

때로는 os-prober가 잘못되었습니다.

예를 들어 Windows 10 파티션의 UUID를보십시오.

sudo blkid /dev/sda2

그런 다음 편집 /etc/grub.d/40_custom하고 파일 끝에 다음을 추가하십시오.

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

UUID를 변경하는 것을 잊지 마십시오.

마지막으로 grub 설정 파일을 업데이트하십시오 :

sudo update-grub

출처


2
Windows 10의 경우 일반적으로 첫 번째 파티션이 Windows 시스템 파티션이 아닙니다 (예 : sdb2가 정확하고 sdb1이 아님). 이것은 설치하는 동안 Windows 10이 디스크에 저장되는 방식과 시스템 예약 파티션에 기인합니다. 또는 시스템 수리가 항상 우선입니다). 디스크의 첫 번째 파티션이 이미 부팅 가능한 것을 제공하는 경우 Grub은 종종 두 번째 파티션을 찾지 못합니다. 올바른 UUID를 찾는 가장 쉬운 방법은 가장 큰 파티션을 찾고 sudo fdisk -lblkid의 결과와 일치시키는 것입니다.
janmyszkier

9

이 솔루션은 grub2 메뉴에 올바른 항목을 제공하고 BIOS를 참조하지 않고 Windows 10에 직접 체인로드합니다. https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi 에서 으므로 크레딧을 요구하지 않습니다. 작동하는 솔루션을 찾는 것이 안도감이었습니다

간단히 /etc/grub.d/40_custom을 편집하고 다음을 추가하십시오.

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

--set = root 행 (예 : CC66-4B02)의 UUID를 찾으려면 sudo fdisk -l을 사용하여 EFI 파티션을 식별 한 다음 sudo blkid / dev / sda1 (또는 기타)을 사용하여 EFI 파티션의 UUID를 찾으십시오. . Windows 파티션이 아니라 필요한 EFI 파티션입니다. 편집 내용을 저장 한 후 sudo update-grub을 실행하여 /boot/grub/menu.cfg 파일을 생성 한 다음 다시 시작하여 테스트하십시오.


sudo / dev / sda1 명령은 sudo blkid / dev / sda1이어야합니다.
makapuf

@ makapuf-당신은 절대적으로 맞습니다, 감사합니다. 수정되었습니다.
peterthevicar

정확한 튜토리얼을 따르고 항목을 부팅하려고하면 "오류 : 파티션을 찾을 수 없습니다"라는 메시지가 나타납니다. 파티션을 마운트 할 때 해당 파티션에 "EFI / Microsoft / Boot / bootmgfw.efi"가없는 것 같습니다.
Xerus

8

Windows 용이 응용 프로그램 EasyBCD를 사용 http://neosmart.net/EasyBCD/ 무료 버전을 다운로드하여 설치하십시오.

열면 Windows 8에 대한 항목과 Windows 10에 대한 항목이 표시됩니다.

Windows 8 항목을 삭제하면 계속 진행할 수 있습니다.

위의 단계를 수행 한 후 업데이트 하면 우분투로 돌아갑니다.

ctrl+ alt+ 를 눌러 터미널을 엽니 다T

이 명령을 지나서 차례로 복사하십시오.

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

이를 통해 boot-repair라는 도구를 설치하게됩니다.

대시에서 부팅 복구를 열면이 창이 나타납니다.

여기에 이미지 설명을 입력하십시오

권장 수리를 선택하고 단계를 따르십시오.

참고 당신이 부팅 복구를 사용하는 경우 인터넷에 연결해야합니다.


1
@Hitechcomputergeek 도움이 더 필요하면 Windows로 부팅하고 화면을 캡처하겠습니다.
RonnieDroid

GRUB에 Windows 10이 추가됩니까? GRUB에서 세 가지 OS 모두에 액세스 할 수 있기를 원하며 문제의 일부만 해결됩니다.
Hitechcomputergeek

GRUB OS 목록에 Windows 10을 추가하는 방법을 묻는 질문을 업데이트했습니다. 문제의 일부를 해결했기 때문에 귀하의 답변을 찬성했지만 여전히 GRUB에 Windows 10을 추가해야하므로 아직 답변을 수락하지 않습니다.
Hitechcomputergeek

2
또한 대시에서 부트 복구를 열라고 말했지만 줄 sudo apt-get install -y boot-repair && boot-repair이 이미 열렸습니다.
Hitechcomputergeek

1
인터넷이나 아내에 연결 한 후 설치, 실행 및 사용할 수있는 "우분투 테스트 모드 (라이브 CD 모드)"iso에서이 도구를 사용할 수도 있습니다.
Alamjit Singh

4

귀하의 질문을 이해하는 한 하나 이상의 하드 드라이브에 두 개의 서로 다른 Windows 설치가 있으며 Windows 로더가 방해가되거나 두 Windows 설치를 관리하지 않기를 바랍니다. 레거시 설정에서 Grub에서 Windows 커널을 직접 부팅 할 수 있었지만 (여기서는 잘못되었을 수 있음) UEFI 설정에서이 작업을 수행 할 수 없었습니다. Grub에서 독립적으로 호출 할 수있는 두 개의 독립적 인 Windows 부트 로더 구성은 원하는 것과 매우 유사해야합니다.

Windows 8.1이 설치되어 제공됩니다.

이것이 UEFI 가능 컴퓨터라고 가정하겠습니다.

  1. 컴퓨터가 실제로 UEFI 가능인지 확인하고 (그렇지 않은 경우 대답을 제거하겠습니다) BIOS와 UEFI의 차이점 ( 다른 부팅 모드 , efibootmgr, 다른 파티션 테이블, EFI 시스템 파티션 (ESP), EFI 로더)에 익숙해 지십시오 …).
  2. 그런 다음 모든 OS가 UEFI 모드로 설치되어 있는지 확인 하고 GPT 파티션 테이블이 있는지 확인하십시오 . Windows를 사용 dism하여 파티션을 새로운 파티션 테이블 레이아웃으로 백업 및 복원하고 최신 Windows 설치 미디어의 명령 프롬프트를 사용하여 부트 로더를 다시 설치할 수 있습니다.
    • 문제를 해결하지 못하는 다양한 도구를 사용해 보는 것이 좋으므로 이러한 변경 사항을 원래 상태로 되돌려 야합니다. 그렇지 않으면 점점 더 혼란스러워집니다. 미안합니다. :(
  3. GRUB을 통해 UEFI 모드의 레거시 MBR 파티션에서 Windows 8을 부팅하는 방법의 대답을 사용할 수 있습니까?
    • 이 답변은 bcdbootGrub이 호출하는 다른 위치에 독립적 인 Windows 부트 로더 구성을 설치 합니다. 편의상 Windows 루트 파티션을 선택했습니다. 모든 Windows 설치마다 고유하고 자체 부팅 만 가능하도록 모든 Windows 설치에 대해이 작업을 수행해야 합니다 (다른 항목에서 개별 Windows 부팅 메뉴를 청소).
    • 부팅하려는 각 Windows 설치마다 개별 항목을 작성하고 /etc/grub.d/40_customUUID, 파티션 및 파티션 테이블에 대한 지시 사항 및 설명을 따라야합니다.
    • Grub ( GRUB_DISABLE_OS_PROBER)의 OS-prober와 같은 다른 OS를 감지 하거나 Windows 또는 부팅 복구의 부팅 문제를 해결하거나 수동으로 정리하는 모든 세미 스마트 기능을 비활성화하십시오 .

주의 : 귀하의 요청은 Grub으로 모든 OS를 관리 할 수 ​​있어야했지만 UEFI에서는 전통적인 "듀얼 부트"라는 용어가 거의 잘못되었습니다. UEFI를 사용하면 ESP에 여러 부트 로더가 공존 할 수 있으며 부팅 할 부트 로더를 선택할 수 있습니다 (UEFI 펌웨어에 등록되어 있고 제조업체 펌웨어가 Windows 부팅과 같은 사양을 벗어나지 않는 경우). 슬픈 점은 하나 이상의 컴퓨터에 하나 이상의 Windows , Linux 또는 Ubuntu 릴리스를 설치하는 것에 대해 생각할 수있는 사람이 거의 없다는 것입니다.(또는 여러 컴퓨터에서 사용되며 각 컴퓨터에서 동일한 OS 릴리스의 다른 설치를 부팅하는 하드 드라이브). 이것의 대부분은 이미 가능하지만 Windows와 Ubuntu (Fedora 등)의 메커니즘은 네임 스페이스에있는 항목을 하나만있을 수 있다는 잘못된 가정하에 덮어 씁니다.

( 하나의 컴퓨터 에서 Windows8 / 10, Ubuntu, Ubuntu LTS 및 Fedora를 부팅하고 다른 요구 사항에 따라 UEFI 부팅으로 몇 번 땜질했습니다.)


1
Windows를 사용하지 않습니다. 그러나 누구든지 / EFI / Windows를 / EFI / Windows10 및 / 또는 / EFI / Windows8로 복사하고 각 BCD를 해당 버전에 맞게 편집하려고 했습니까? 그리고 UEFI에서 각각에 대한 전체를 만듭니다. 그것이 UEFI에서 작동하면 grub은 각각에 직접 연결할 수 있습니다.
oldfred

@oldfred 그것은 아래 섹션에서 지적하고 싶었던 것입니다. bcdboot다른 대상 디렉토리를 지정 하는 매개 변수가있을 수도 있지만 확실하지 않습니다. 하나의 ESP에서 다른 EFI 바이너리를 체인로드하면 40_custom오류가 발생하기 쉬워지고 단순화 됩니다. 멀티 하드 드라이브 시나리오에 너무 집중 한 것 같습니다 (이 경우 hdd1의 ESP에서 hdd2의 Windows를 부팅하도록 bcdboot에 지시 할 수 있어야한다고 생각합니다). m (
LiveWireBT

컴퓨터는 UEFI 가능하지만, 솔직히 wtf가 파티션과 관련이 있다고 생각하지 않습니다. 학교에는 사용자 정의 Windows 8 이미지가 설치되어 있으며 UEFI 및 보안 부팅을 사용하고 있지만 (현재 BIOS는 UEFI와 레거시 부팅을 모두 허용하도록 구성되어 있다고 생각합니다. 보안 부팅을 사용하지 않도록 설정하는 것을 기억합니다) 하드 디스크 자체는 MBR. 여기에 스크린 샷이 있습니다 : imgur.com/1vDS4jf (예, 곧 파티션의 크기를 조정할 계획입니다.) 또한 우분투 자체 (그렙 dmesg에서)는 EFI 모드에서 시작되지 않은 것으로 보입니다. GRUB 자체가
가능한지 모르겠습니다

@Hitechcomputergeek 스크린 샷은 확장 파티션이 있고 EFI 파티션이없는 msdos / MBR 파티션 테이블을 보여줍니다. 앞서 말했듯이 GPT가 있어야 dism하며 Windows 파티션에 사용할 수 있습니다 .
LiveWireBT

UEFI로 시작한 다음 다른 OS를 비 UEFI 또는 다른 것으로 시작하십시오. UEFI는 혼란스러워합니다. 편집 : GRUB이 UEFI로 시작되지 않습니다. 원래 Windows에서 무슨 일이 있었는지 전혀 모른다. 실제로, 생각해 보니, 처음에는 UEFI가 없을 수도 있습니다. Windows 8의 최대 절전 모드로 인해 BIOS를 시작하는 것이 기본적으로 불가능했기 때문에 처음 부팅 한 다음 "다시 시작"을 누르지 않으면 BIOS에 들어 가려고 시도한 것입니다. 우분투 (및 GRUB)를 설치 한 이후로 다시 할 필요가 없었습니다.
Hitechcomputergeek

2

Ubuntu OS에 로그인하고 터미널을 엽니 다.

sudo update-grub

재부팅

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.