Boot-Repair membuat terlalu banyak entri menu grub untuk Windows

11

Saya baru-baru ini menginstal Ubuntu dalam dual boot bersama dengan Windows 10 pada laptop HP. Awalnya saya tidak dapat boot Windows menggunakan grub karena memilih opsi Windows hanya akan kembali ke grub.

Kemudian saya melakukan perbaikan boot, dan semua opsi tambahan ini muncul di menu grub.

Saya dapat membuka Windows menggunakan opsi "Windows UEFI bootmgfw.efi", tetapi tidak menggunakan opsi standar "Windows Boot Manager (on / dev / sda1).

Bagaimana cara mengurangi entri ini dan mengapa saya tidak bisa mem-boot Windows menggunakan opsi yang terakhir?

Ini gambar grub. Opsi pertama adalah Ubuntu:

grub - opsi pertama adalah Ubuntu

Abhay
sumber
3
Ini bukan duplikat dari itu. Milik saya tidak menampilkan entri kernel Linux. Ditambah poin bahwa saya tidak dapat mem-boot Windows menggunakan opsi boot manager.
Abhay
1
Wow, kamu cepat! Anda hanya boleh menerima setelah Anda mencoba jawaban, tetapi yang ini pasti akan membantu !!! ;-) Juga, apakah saya menyebutkan Anda harus benar-benar mengambil cadangan sebelum memulai atau benar - benar, sangat berhati-hati tentang apa yang Anda hapus ?!
Fabby
1
Menggunakan GRUB Customizer, seperti yang disarankan Fabby, kemungkinan akan membantu. Mengapa satu opsi berfungsi dan yang lainnya tidak, kami perlu melihat /boot/grub/grub.cfgfile dari sistem Anda. Kecurigaan saya adalah bahwa entri yang tidak berfungsi dirancang untuk sistem berbasis BIOS, tetapi entri Anda jelas berbasis EFI, sehingga opsi mode-BIOS adalah (literal) non-starter.
Rod Smith

Jawaban:

5

Windows di luar topik di sini, tetapi jawabannya adalah bahwa ini adalah teknologi yang sangat lama dan sektor boot hanya 512 byte, jadi tidak cukup besar untuk menampung semua yang ingin kita pegang.

Untuk menambah dan menghapus entri dengan mudah dari Anda sendiri, silakan:

  1. Ambil cadangan sistem lengkap seluruh komputer Anda termasuk OS lainnya menggunakan CloneZilla Live
  2. Tidak, saya tidak bercanda! Ambil cadangan sistem penuh terlebih dahulu! :-)
  3. Setiap kali seseorang mengatakan kepada Anda untuk memasang PPA sangat berhati-hati, lakukan riset sendiri jika ini yang benar-benar Anda inginkan dan baru kemudian melanjutkan
  4. Instal grub-customizer dengan menjalankan perintah berikut:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Mulai grub-customizerdan sesuaikan semuanya: masukkan deskripsi gambar di sini

  6. Jika Anda mengalami masalah serius, pulihkan cadangan sistem Anda.

Fabby
sumber
1
Anda memiliki gaya jawaban yang halus, dan bahkan dalam komentar Anda. Jujur saya benar-benar bertanya-tanya mengapa tidak semua orang menandai jawaban yang benar dan berguna sebagai jawaban, membuat saya frustasi tetapi saya tidak pernah memintanya. Saya dapat menyalin komentar Anda dan menempelkannya setelah jawaban saya 😂
Haitham A. El-Ghareeb
Saya baru saja memberi Anda plus satu pada grubpertanyaan berbeda tentang menyembunyikan menu boot. Namun dalam hal ini "Saya relatif yakin" jawaban yang baru saya posting di utas ini adalah yang benar. Itu terjadi pada saya dua kali sekarang dan metode perbaikannya tanpa cacat setiap kali.
WinEunuuchs2Unix
FTR Saya juga mengangkat jawaban ini. Komentar tahun lalu mungkin telah disalahartikan.
WinEunuuchs2Unix
12

Setiap kali saya menjalankannya boot-repairmenambahkan 5 opsi boot Windows tambahan ke grubmenu utama saya yang tidak berfungsi. Dalam kasus Anda, ia telah menambahkan 11 entri tambahan!

grub.cfg menunjukkan masalahnya

Rahasianya dapat ditemukan dalam /etc/grub/grub.cfgfile:

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

Bagian ini 30_os-proberberisi grubentri menu Windows "baik" yang ingin Anda simpan. Bagian 25_customberisi entri palsu yang dibuat oleh boot-repair. Anda tidak dapat mengedit file konfigurasi grub karena hanya akan ditimpa saat update-grubdijalankan berikutnya .


Bagian 25_customtelah dibuat oleh Perbaikan Boot

Di sistem saya:

$ 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

Lihatlah opsi Windows tambahan yang disiapkan (dan tidak berfungsi):

$ 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

Ini adalah entri yang salah boot-repairdibuat /etc/grub.d/25_customyang kemudian dikompilasi ke dalam \boot\grub\grub.cfg.


Reverse Boot Repair ganti ke 25_custom

Gunakan sudo -H gedit /etc/grub.d/25_customdan hapus semuanya kecuali tiga baris pertama:

#!/bin/sh
exec tail -n +3 $0
  • File sekarang berisi dua baris dengan teks dan satu baris kosong.
  • Simpan file.
  • Lari sudo update-grub.
  • Mulai ulang.

Sekarang menu Anda tidak lagi membengkak dengan lima entri menu Windows palsu yang tidak berfungsi.

Periksa ulang ada tiga baris di 25_custom

Jalankan perintah ini dan verifikasi 25_custommemiliki tiga baris:

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

Saya menambahkan #komentar untuk menguraikan wc(jumlah kata) output.

WinEunuuchs2Unix
sumber
1
Saya tidak dapat meng-downvote jawaban saya sendiri atau menghapusnya, tetapi saya dapat meng-upgrade Anda ... :) Hati-hati karena solusi GUI akan selalu mendapatkan lebih banyak suara daripada solusi berbasis teks meskipun solusi berbasis teks umumnya lebih tepat (= secara teknis lebih baik)
Fabby
1
Karena saya baru saja mendapat jawaban atas jawaban saya, saya terkejut melihat bahwa non-GUI Anda mendapatkan lebih banyak suara daripada milik saya! Kerja bagus!
Fabby
1
@ Fabby Terima kasih. Saya baru saja memberikan suara Anda juga :)
WinEunuuchs2Unix
Saya mungkin terlambat bertanya tetapi ... mengapa dibutuhkan 25_custom sama sekali? Mengapa 3 baris itu dibutuhkan?
poomerang
@poomerang Ini adalah urutan alami dari file konfigurasi kosong di dunia grub. Lebih mudah menyesuaikan diri daripada memberontak.
WinEunuuchs2Unix