GRUB2 menunjukkan Windows 7 atau Windows Recovery Environment bukannya Windows 10

8

Ini adalah T&J yang baru-baru ini saya ketahui, jadi saya telah memposting jawaban di bawah ini.

Setelah menginstal Windows 10, setiap kali saya mendapatkan pembaruan kernel atau saya menjalankannya update-grub2selalu menunjukkan Windows 7atau Windows Recovery Environmentbukannya Windows 10. Bagaimana cara memperbaikinya secara permanen?

Terrance
sumber
Perubahan-perubahan itu sudah ada di (Mint saya 19.2) / usr / lib / os-probes / mount / 20microsoft, tetapi masih mengembalikan "Windows Vista". Perhatikan bahwa, ketika sistem dual-boot adalah Windows 7, itu mengembalikan nilai yang benar, sehingga tampaknya itu adalah sumber informasi yang hilang.
cdg
@cdg Ini harus ditanyakan di Linux & Unix karena situs ini hanya untuk rasa resmi Ubuntu . Selain itu, Anda harus mengajukan laporan bug dengan Mint Development jika Anda sudah memiliki semua ini karena mereka mungkin tidak dapat mendeteksi dengan benar.
Terrance

Jawaban:

10

Pembaruan: Saya baru saja melakukan instalasi bersih Xubuntu 14.04 dan entri ke file yang tercantum di bawah sudah ada di sana. Sepertinya Tim GRUB sekarang telah menyertakan pembaruan. Saya akan meninggalkan ini di sini untuk siapa saja yang mungkin menemukan ini tanpa pembaruan pada sistem mereka.


Pembaruan # 2: Jika Anda membuat LiveUSB Ubuntu 14.04 dengan setidaknya 1GB file Persisten di atasnya, lokasi file ini sama dan file persisten akan memungkinkan perubahan yang dibuat untuk tetap. File ini hanya boleh dimodifikasi setelah mem-boot sistem ke drive USB saat Try Ubuntuboot.


Alasan mengapa itu masih menunjukkan Windows 7atau Windows Recovery Environmentbukan Windows 10karena file /usr/lib/os-probes/mounted/20microsofttidak mengandung label untuk Windows 10, jadi selama os-proberdeteksi OS itu kembali ke Windows 7atau Windows Recovery Environment.

Untuk memperbaikinya, Anda perlu membuat perubahan berikut ke file berikut (saya akan menempatkan gedit sebagai editor, tetapi gunakan apa yang Anda inginkan):

sudo gedit /usr/lib/os-probes/mounted/20microsoft

CATATAN: Anda harus selalu membuat cadangan file sebelum memodifikasinya!

if item_in_dir -q bootmgr "$2"; then
        # there might be different boot directories in different case as:
        # boot Boot BOOT
        for boot in $(item_in_dir boot "$2"); do
                bcd=$(item_in_dir bcd "$2/$boot")
                if [ -n "$bcd" ]; then
                        if grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; then
                                long="Windows 10 (loader)"
                        elif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then
                                long="Windows 8 (loader)"
                        elif grep -qs "W.i.n.d.o.w.s. .7" "$2/$boot/$bcd"; then
                                long="Windows 7 (loader)"

perubahan di atas mengubah baris if grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; thenke elif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then, dan menambahkan if grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; thendan di long="Windows 10 (loader)"atas garis itu dan menyimpannya.

Setelah disimpan, lalu jalankan os-probersekarang terlihat seperti ini:

terrance@terrance-ubuntu:~$ sudo os-prober
[sudo] password for terrance: 
/dev/sdf1:Windows 10 (loader):Windows:chain

kemudian menjalankannya update-grub2sekarang akan membuat pembaruan ke /boot/grub/grub.cfgpermanen Anda kapan saja Anda mendapatkan pembaruan kernel sehingga akan menampilkan versi Windows yang benar sekarang (contoh di bawah):

terrance@terrance-ubuntu:~$ sudo update-grub2
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.19.0-26-generic
Found initrd image: /boot/initrd.img-3.19.0-26-generic
Found linux image: /boot/vmlinuz-3.13.0-58-generic
Found initrd image: /boot/initrd.img-3.13.0-58-generic
Found linux image: /boot/vmlinuz-3.13.0-57-generic
Found initrd image: /boot/initrd.img-3.13.0-57-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 (loader) on /dev/sdf1
done

Semoga ini membantu!

Terrance
sumber
4
Apakah ini diposting di hulu (sebagai bug / perbaikan), untuk pengelola Grub2?
david6
@ david6 Saya tidak tahu apakah sudah. Saya baru saja membuat penemuan tadi malam ketika mencoba mempelajari lebih lanjut tentang GRUB2 dan bagaimana OS menentukan apa yang ditemukannya.
Terrance
Skrip '20microsoft' terlihat berantakan, dan mungkin perlu perbaikan lainnya.
david6