Mỗi lần tôi chạy, boot-repair
nó sẽ thêm 5 tùy chọn khởi động Windows vào grub
menu 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.cfg
tậ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-prober
chứa các grub
mục menu Windows "tốt" mà bạn muốn giữ. Phần 25_custom
chứ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-grub
chạ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_custom
và 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_custom
có 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ừ).