実行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
は、grub
保持したい「適切な」Windows メニューエントリが含まれています。セクションに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
最初の3行を除くすべてを使用して削除します。
#!/bin/sh
exec tail -n +3 $0
- これで、ファイルには2行のテキストと1行の空白行が含まれています。
- ファイルを保存します。
- を実行します
sudo update-grub
。
- リブート。
これで、メニューは、機能しない5つの偽のWindowsメニューエントリで肥大化しなくなりました。
3行あることを再確認してください 25_custom
このコマンドを実行し25_custom
て、3行あることを確認します。
$ wc /etc/grub.d/25_custom
3 6 30
# ^ ^ ^
# | | +--- Number of characters
# | +----------- Number of words
# +------------------- Number of lines
#
解読wc
(単語数)出力にコメントを追加しました。