GRUB2 hiển thị Windows 7 hoặc Windows Recovery Môi trường thay vì Windows 10


8

Đây là một câu hỏi và trả lời mà gần đây tôi đã tìm ra, vì vậy tôi đã đăng câu trả lời dưới đây.

Sau khi cài đặt Windows 10, mỗi khi tôi nhận được bản cập nhật kernel hoặc tôi chạy thì update-grub2nó luôn hiển thị Windows 7hoặc Windows Recovery Environmentthay vì Windows 10. Làm thế nào để tôi sửa lỗi này vĩnh viễn?


Những thay đổi đó đã tồn tại trong (Mint 19.2) / usr / lib / os-probes / Mounted / 20microsoft của tôi, nhưng nó vẫn trả về "Windows Vista". Lưu ý rằng, khi hệ thống khởi động kép là Windows 7, nó đã trả về giá trị chính xác, vì vậy có vẻ như đó là nguồn thông tin bị thiếu.
cdg

@cdg Điều này nên được hỏi tại Linux & Unix vì trang web này chỉ dành cho các hương vị Ubuntu chính thức . Ngoài ra, bạn nên gửi báo cáo lỗi với Mint Development nếu bạn đã có tất cả những điều này vì chúng có thể không được phát hiện chính xác.
Terrance

Câu trả lời:


10

Cập nhật: Tôi vừa thực hiện cài đặt sạch Xubfox 14.04 và các mục nhập vào tệp được liệt kê bên dưới đã có sẵn. Có vẻ như Nhóm GRUB hiện đã bao gồm bản cập nhật. Tôi sẽ để nó ở đây cho bất cứ ai có thể vấp phải điều này mà không có bản cập nhật trên hệ thống của họ.


Cập nhật # 2: Nếu bạn tạo Ubuntu 14.04 LiveUSB với ít nhất tệp 1 GB liên tục trên đó, vị trí tệp này là như nhau và tệp liên tục sẽ cho phép các thay đổi được thực hiện ở lại. Tập tin này chỉ nên được sửa đổi sau khi khởi động hệ thống vào ổ USB khi Try Ubuntukhởi động.


Lý do tại sao nó vẫn hiển thị Windows 7hoặc Windows Recovery Environmentthay vì Windows 10là tệp /usr/lib/os-probes/mounted/20microsoftkhông chứa nhãn cho Windows 10, vì vậy trong quá trình os-proberphát hiện HĐH, nó rơi trở lại Windows 7hoặc Windows Recovery Environment.

Để sửa lỗi này, bạn cần thực hiện các thay đổi sau cho tệp sau (Tôi sẽ đặt gedit làm trình chỉnh sửa, nhưng sử dụng những gì bạn muốn):

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

LƯU Ý: Bạn phải luôn tạo bản sao lưu của tệp trước khi sửa đổi tệp!

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)"

những thay đổi ở trên đang thay đổi dòng if grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; thenthành elif grep -qs "W.i.n.d.o.w.s. .8" "$2/$boot/$bcd"; then, và thêm if grep -qs "W.i.n.d.o.w.s. .1.0" "$2/$boot/$bcd"; thenlong="Windows 10 (loader)"trên dòng đó và lưu nó.

Sau khi lưu, sau đó chạy os-proberbây giờ trông như thế này:

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

sau đó chạy update-grub2nó sẽ thực hiện các bản cập nhật /boot/grub/grub.cfgvĩnh viễn bất cứ khi nào bạn nhận được bản cập nhật kernel để nó sẽ hiển thị phiên bản Windows chính xác ngay bây giờ (ví dụ bên dưới):

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

Hi vọng điêu nay co ich!


4
Điều này đã được đăng ngược dòng (như lỗi / sửa lỗi), cho người bảo trì Grub2 chưa?
david6

@ david6 Mình không biết có phải không. Tôi vừa thực hiện khám phá tối qua trong khi cố gắng tìm hiểu thêm về GRUB2 và cách nó xác định hệ điều hành mà nó tìm thấy.
Terrance

Các tập lệnh '20microsoft' trông lộn xộn và có thể cần các cải tiến khác.
david6
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.