Boot-Repair đã tạo quá nhiều mục menu grub cho Windows


11

Gần đây tôi đã cài đặt Ubuntu trong khởi động kép cùng với Windows 10 trên máy tính xách tay HP. Ban đầu, tôi không thể khởi động Windows bằng grub vì việc chọn các tùy chọn Windows sẽ chỉ lặp lại thành grub.

Sau đó, tôi đã thực hiện sửa chữa khởi động và tất cả các tùy chọn bổ sung này hiển thị trong menu grub.

Tôi có thể mở Windows bằng tùy chọn "Windows UEFI bootmgfw.efi", nhưng không sử dụng tùy chọn tiêu chuẩn của "Windows Boot Manager (on / dev / sda1).

Làm cách nào để giảm các mục này và tại sao tôi không thể khởi động Windows bằng tùy chọn sau?

Đây là một hình ảnh của grub. Tùy chọn đầu tiên là Ubuntu:

grub - tùy chọn đầu tiên là Ubuntu



3
Nó không thực sự là một bản sao của điều đó. Của tôi không hiển thị các mục nhân Linux. Cộng với điểm tôi không thể khởi động Windows bằng tùy chọn trình quản lý khởi động.
Abhay

1
Wow, bạn nhanh lên! Bạn chỉ nên chấp nhận sau khi bạn đã thử trả lời, nhưng điều này chắc chắn sẽ có ích !!! ;-) Ngoài ra, tôi đã đề cập đến việc bạn nên thực sự sao lưu trước khi bắt đầu hoặc thực sự, thực sự cẩn thận về những gì bạn xóa?!
Fabby

1
Sử dụng GRUB Customizer, như Fabby gợi ý, có khả năng sẽ giúp ích. Về lý do tại sao một tùy chọn hoạt động và một tùy chọn khác thì không, chúng tôi cần xem /boot/grub/grub.cfgtệp từ hệ thống của bạn. Sự nghi ngờ của tôi là mục không hoạt động được thiết kế cho các hệ thống dựa trên BIOS, nhưng mục của bạn rõ ràng dựa trên EFI, vì vậy tùy chọn chế độ BIOS là không bắt đầu (theo nghĩa đen).
Rod Smith

Câu trả lời:


5

Windows không có chủ đề ở đây, nhưng câu trả lời là đây là công nghệ rất cũ và khu vực khởi động chỉ có 512 byte, vì vậy nó không đủ lớn để chứa mọi thứ chúng ta muốn giữ.

Để dễ dàng thêm và xóa các mục từ grub tất cả, vui lòng:

  1. Sao lưu toàn bộ hệ thống của toàn bộ máy tính của bạn, kể cả các HĐH khác bằng CloneZilla Live
  2. Không, tôi không đùa! Hãy sao lưu toàn bộ hệ thống trước! :-)
  3. Bất cứ khi nào ai đó bảo bạn cài đặt PPA hãy hết sức thận trọng, hãy tự nghiên cứu nếu đây là điều bạn thực sự muốn và chỉ sau đó tiếp tục
  4. Cài đặt grub-customizer bằng cách thực hiện các lệnh sau:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Bắt đầu grub-customizervà tùy chỉnh địa ngục của nó: nhập mô tả hình ảnh ở đây

  6. Nếu bạn gặp rắc rối nghiêm trọng, hãy khôi phục hệ thống của bạn sao lưu.


1
Bạn có một phong cách tinh tế trong câu trả lời, và thậm chí trong ý kiến ​​của bạn. Thành thật tôi thực sự tự hỏi tại sao không phải ai cũng đánh dấu câu trả lời đúng và hữu ích như một câu trả lời, làm tôi thất vọng nhưng tôi không bao giờ yêu cầu nó. Tôi có thể sao chép ý kiến ​​của bạn và dán nó sau câu trả lời của tôi
Haitham A. El-Ghareeb 22/07/17

Tôi chỉ cung cấp cho bạn một điểm cộng cho một grubcâu hỏi khác về ẩn menu khởi động. Tuy nhiên trong trường hợp này "Tôi tương đối chắc chắn" câu trả lời tôi vừa đăng trên chủ đề này là câu trả lời đúng. Nó đã xảy ra với tôi hai lần bây giờ và phương pháp sửa chữa là hoàn hảo mỗi lần.
WinEunuuchs2Unix

FTR Tôi cũng đã đưa ra câu trả lời này. Nhận xét năm ngoái có thể đã bị hiểu sai.
WinEunuuchs2Unix

12

Mỗi lần tôi chạy, boot-repairnó sẽ thêm 5 tùy chọn khởi động Windows vào grubmenu chính không hoạt động. Trong trường hợp của bạn, nó đã thêm 11 mục bổ sung!

grub.cfg cho thấy vấn đề

Bí mật có thể được tìm thấy trong /etc/grub/grub.cfgtập tin:

### 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 ###

Phần này 30_os-proberchứa các grubmục menu Windows "tốt" mà bạn muốn giữ. Phần 25_customchứa các mục không có thật được tạo bởi boot-repair. Bạn không thể chỉnh sửa tệp cấu hình grub vì đơn giản là nó sẽ bị ghi đè trong lần update-grubchạy tiếp theo .


Phần 25_customđược tạo bởi Boot Repair

Trên hệ thống của tôi:

$ 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

Hãy xem các tùy chọn Windows bổ sung đã được thiết lập (và không hoạt động):

$ 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

Đây là những mục sai lầm boot-repairđược tạo trong /etc/grub.d/25_customđó sau đó được biên dịch thành \boot\grub\grub.cfg.


Reverse Boot Repair thay đổi thành 25_custom

Sử dụng sudo -H gedit /etc/grub.d/25_customvà xóa mọi thứ trừ ba dòng đầu tiên:

#!/bin/sh
exec tail -n +3 $0
  • Bây giờ các tập tin chứa hai dòng với văn bản và một dòng trống.
  • Lưu các tập tin.
  • Chạy đi sudo update-grub.
  • Khởi động lại.

Bây giờ menu của bạn không còn đầy ắp với năm mục menu Windows không có thật mà không hoạt động.

Kiểm tra lại có ba dòng trong 25_custom

Chạy lệnh này và xác minh 25_customcó ba dòng:

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

Tôi đã thêm các #ý kiến ​​để giải mã wcđầu ra (đếm từ).


1
Tôi không thể hạ thấp câu trả lời của riêng mình cũng như không xóa nó, nhưng tôi có thể nâng cao bạn ... :) Xin lưu ý rằng một giải pháp GUI sẽ luôn nhận được nhiều phiếu hơn một giải pháp dựa trên văn bản mặc dù giải pháp dựa trên văn bản thường chính xác hơn (= kỹ thuật tốt hơn)
Fabby

1
Khi tôi vừa nhận được một câu trả lời về câu trả lời của mình, tôi rất ngạc nhiên khi thấy rằng non-GUI của bạn đã giành được nhiều phiếu hơn so với của tôi! Làm tốt lắm!
Fabby

1
@Fabby Cảm ơn. Tôi cũng vừa cho bạn một phiếu bầu lên :)
WinEunuuchs2Unix 19/11/18

Tôi có thể bị trễ khi hỏi nhưng ... tại sao lại cần 25_custom? Tại sao 3 dòng đó là cần thiết?
poomerang

@poomerang Đó là thứ tự tự nhiên của một tệp cấu hình trống trong thế giới của grub. Nó dễ dàng để phù hợp hơn là nổi loạn.
WinEunuuchs2Unix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.