Boot-Repair가 Windows 용 그룹 메뉴 항목을 너무 많이 만들었습니다.


11

최근 HP 노트북에 Windows 10과 함께 듀얼 부팅으로 Ubuntu를 설치했습니다. 처음에는 Windows 옵션을 선택하면 grub으로 다시 돌아 가기 때문에 grub을 사용하여 Windows를 부팅 할 수 없었습니다.

그런 다음 부팅 복구를 수행했으며이 모든 추가 옵션이 grub 메뉴에 표시되었습니다.

"Windows UEFI bootmgfw.efi"옵션을 사용하여 Windows를 열 수 있지만 "Windows 부팅 관리자 (/ dev / sda1)의 표준 옵션을 사용하지 않습니다.

이러한 항목을 어떻게 줄이며 후자의 옵션을 사용하여 Windows를 부팅 할 수 없습니까?

다음은 그럽의 이미지입니다. 첫 번째 옵션은 우분투입니다 :

grub-첫 번째 옵션은 우분투입니다



3
그것은 실제로 그것의 복제본이 아닙니다. 내 리눅스 커널 항목을 표시하지 않습니다. 또한 부팅 관리자 옵션을 사용하여 Windows를 부팅 할 수 없다는 점이 있습니다.
Abhay

1
와우, 빨리! 답변을 시도한 후에 만 수락해야 하지만이 답변은 반드시 도움이 될 것입니다 !!! ;-) 또한, 나는 당신이 정말로 시작하기 전에 백업을하거나해야 언급 했느냐 정말, 정말 삭제 것에 대해 조심!
Fabby

1
Fabby가 제안한 것처럼 GRUB Customizer를 사용하면 도움이 될 것입니다. 하나의 옵션이 작동하고 다른 옵션이 작동하지 않는 이유에 대해서는 /boot/grub/grub.cfg시스템 에서 파일을 확인해야합니다. 비 작동 항목은 BIOS 기반 시스템 용으로 설계되었지만 분명히 EFI 기반이기 때문에 BIOS 모드 옵션은 (리터럴) 비스타 터입니다.
Rod Smith

답변:


5

여기서 Windows는 주제가 맞지 않지만 대답은 이것이 매우 오래된 기술이며 부팅 섹터가 512 바이트에 불과하므로 보유하려는 모든 것을 보유 할만큼 크지는 않습니다.

grub에서 직접 항목을 쉽게 추가하고 제거하려면 다음을 수행하십시오.

  1. CloneZilla Live를 사용하여 다른 OS를 포함한 전체 컴퓨터의 전체 시스템 백업
  2. 아니, 농담이 아니었다! 테이크 백업 전체 시스템을 처음! :-)
  3. 누군가 PPA설치 하도록 매우 신중하게 지시 할 때마다 이것이 정말로 원하는 것이라면 계속 연구하십시오.
  4. 다음 명령을 실행하여 grub-customizer 를 설치 하십시오.

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. grub-customizer지옥을 시작 하고 사용자 정의하십시오. 여기에 이미지 설명을 입력하십시오

  6. 심각한 문제가 발생하면 시스템 백업을 복원하십시오.


1
당신은 대답과 심지어 주석에 섬세한 스타일을 가지고 있습니다. 솔직히 나는 왜 모든 사람이 정답과 유용한 답을 답으로 표시하지 않는지 궁금해하지만 실망하지는 않았다. 귀하의 의견을 복사하여 답변 후 붙여 넣을 수 있습니다
.

방금 grub부팅 메뉴를 숨기는 다른 질문에 플러스 하나를주었습니다 . 그러나이 경우 "상대적으로 확실합니다"라는 방금이 스레드에 게시 한 답변이 맞습니다. 지금 두 번 일어 났으며 매번 수리 방법이 완벽합니다.
WinEunuuchs2Unix

FTR 나는이 답변도 찬성했습니다. 작년의 의견이 잘못 해석되었을 수 있습니다.
WinEunuuchs2Unix

12

내가 실행했습니다 때마다 boot-repair그것은 추가 5 내 주요 여분의 Windows 부팅 옵션을 grub일을하지 않는 메뉴를 선택합니다. 귀하의 경우에는 11 개의 추가 항목 이 추가되었습니다 !

grub.cfg 문제를 보여줍니다

비밀은 /etc/grub/grub.cfg파일 내에서 찾을 수 있습니다 .

### BEGIN /etc/grub.d/25_custom ###
    menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi
### END /etc/grub.d/25_custom ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-D656-F2A8' {
    savedefault
    insmod part_gpt
    insmod fat
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  D656-F2A8
    else
      search --no-floppy --fs-uuid --set=root D656-F2A8
    fi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-9478-B6E2' {
    savedefault
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  9478-B6E2
    else
      search --no-floppy --fs-uuid --set=root 9478-B6E2
    fi
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

이 섹션 30_os-prober에는 "양호한"Windows grub메뉴 항목이 있습니다. 섹션 25_custom은에 의해 생성 된 가짜 항목을 포함합니다 boot-repair. 다음 update-grub에 실행될 때 단순히 덮어 쓰기 때문에 grub 구성 파일을 편집 할 수 없습니다 .


25_custom부팅 복구로 섹션 이 생성되었습니다.

내 시스템에서 :

$ locate 25_custom
/boot/efi/boot-repair/log/20171111_224241/nvme0n1p5/25_custom
/boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
/etc/grub.d/25_custom

설정되었으며 작동하지 않는 추가 Windows 옵션을 살펴보십시오.

$ cat /boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
#!/bin/sh
exec tail -n +3 $0

menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi

이것들은 이후에로 컴파일 된 잘못된 항목 boot-repair/etc/grub.d/25_custom입니다 \boot\grub\grub.cfg.


리버스 부트 복구에서 다음으로 변경 25_custom

sudo -H gedit /etc/grub.d/25_custom처음 세 줄을 제외한 모든 것을 사용 하고 삭제 하십시오 .

#!/bin/sh
exec tail -n +3 $0
  • 파일에는 이제 텍스트가있는 두 줄과 빈 줄이 있습니다.
  • 파일을 저장하십시오.
  • 를 실행하십시오 sudo update-grub.
  • 재부팅하십시오.

이제 메뉴가 더 이상 작동하지 않는 5 개의 가짜 Windows 메뉴 항목으로 구성되지 않습니다.

세 줄이 있는지 다시 확인하십시오. 25_custom

이 명령을 실행 25_custom하고 세 줄 이 있는지 확인하십시오 .

$ wc /etc/grub.d/25_custom
      3       6      30
#     ^       ^       ^
#     |       |       +--- Number of characters
#     |       +----------- Number of words
#     +------------------- Number of lines

나는 추가 된 #암호문 해독에 주석을 wc(단어 수) 출력.


1
나는 내 대답을 공감하거나 삭제할 수는 없지만 당신을 공감 할 수는 있습니다 ... :) 텍스트 기반 솔루션이 일반적으로 더 정확하지만 GUI 솔루션은 항상 텍스트 기반 솔루션보다 더 많은 투표를 얻습니다. 기술적으로 더 나은)
Fabby

1
방금 답변에 찬성 투표를 했으므로 귀하의 비 GUI가 내 것보다 더 많은 표를 쌓았다는 것이 놀랍습니다! 잘 했어!
Fabby

1
@Fabby 감사합니다. 나는 방금 당신에게 투표권도주었습니다 :)
WinEunuuchs2Unix

물어 보는데 늦었을 수도 있지만 ... 왜 25_custom이 필요합니까? 이 3 줄이 왜 필요한가요?
poomerang

@poomerang 그것은 grub의 세계에서 빈 구성 파일의 자연스러운 순서입니다. 반란군보다 순응하는 것이 더 쉽습니다.
WinEunuuchs2Unix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.