Làm cách nào tôi có thể ngăn Windows ghi đè GRUB khi sử dụng máy khởi động kép


19

Tôi đã đọc rất nhiều về khả năng khởi động kép và có vẻ dễ như tải Windows và sau đó tải Linux bằng GRUB, nhưng mọi người đều nói rằng Windows rất thích rác GRUB khi có cơ hội. Một số bước tôi có thể thực hiện để ngăn điều này xảy ra (ngoài việc sử dụng bộ tải khởi động của Windows, tôi muốn giữ điều này đơn giản nhất có thể)?


Câu trả lời:


17

Windows sẽ ghi đè lên boot sector bất cứ khi nào bạn cài đặt nó, nâng cấp nó lên phiên bản mới, hoặc sử dụng công cụ thích bootrec /fixmbr, bootrec /fixboothoặc cũ hơn fdisk /mbr. Nói chung, cài đặt Windows trước, sau đó là Linux. Khu vực khởi động sẽ ở lại cho đến khi bạn làm một trong những điều trên. (Và có lẽ cũng có nhiều cách khác để ghi lên MBR.) Nhưng, nếu bạn mất GRUB, nó có thể được khôi phục dễ dàng:

  • Khởi động từ đĩa CD trực tiếp (CD / DVD hoặc ổ đĩa flash).
  • Trở thành root hoặc sử dụng sudovới các lệnh dưới đây.
  • Liệt kê các phân vùng có sẵn nếu cần: fdisk -l
  • Windows gần như chắc chắn sẽ tồn tại trên / dev / sda1: mount /dev/sda1 /mnt
  • Cài đặt lại GRUB trong MBR: grub-install --root-directory=/mnt/ /dev/sda
  • Khởi động lại: shutdown -r now
  • Khôi phục menu GRUB: update-grub

Bạn cũng có thể cài đặt 100% Unix, Linux hoặc BSD và chỉ cần chạy Windows trong một máy ảo nếu máy tính đủ mạnh cho điều đó.

Ngoài ra: BIOS máy tính của bạn có thể có tùy chọn để bảo vệ khu vực khởi động.


Bằng cách nâng cấp, bạn có nghĩa là Windows 7 lên Windows 8 hoặc chỉ chạy Windows Update?
Nathan2055

1
@ Nathan2055 Có, như 7 đến 8 ... phiên bản Windows mới, cao hơn. Windows Update sẽ không ảnh hưởng đến MBR.
Christopher

Tôi cũng nghĩ vậy Điều tốt là tôi nghi ngờ rằng tôi sẽ gặp rắc rối với MBR trong Windows, và không có cách nào tôi sẽ đến Windows 8 sau khi đọc .
Nathan2055

1
Để thay thế, bạn có thể thử định cấu hình bộ tải khởi động windows thành chainload thành grub: oreillynet.com/pub/h/2337 Tham gia nhiều hơn một chút và có thể làm việc quá nhiều vì quá ít hiệu quả, nhưng thực hiện theo cách đó sẽ khiến nó trở nên như vậy nếu Windows sẽ ghi đè lên bộ tải khởi động, bạn vẫn có thể khởi động vào Linux.
Bratchley

@JoelDavis: Vâng, tôi đã đọc một số hướng dẫn để làm điều đó, nhưng đối với một người hoàn toàn không có kinh nghiệm thậm chí tải GRUB và thực tế là tôi không nghĩ Windows sẽ gây rắc rối cho tôi, vì tôi không muốn nâng cấp, Tôi nghĩ rằng tôi sẽ đi với một thiết lập GRUB vanilla và không gây rối với bộ nạp khởi động.
Nathan2055

4

Tôi nghĩ rằng tôi sẽ đi với một thiết lập GRUB vanilla và không gây rối với bộ nạp khởi động.

Nếu bạn sử dụng bất kỳ hình thức grub nào, bạn đang rối tung với bộ tải khởi động. GRUB là viết tắt của "bộ nạp khởi động thống nhất lớn". Và có hai phiên bản - grub v1 adn grub v2. Tất cả các hệ thống linux hiện đại đều sử dụng grub2 tự động. Nếu bạn cài đặt bất kỳ hệ thống linux nào, grub là bộ tải khởi động mặc định trừ khi bạn đặc biệt đi với LILO, điều mà tôi không đề xuất.

Cá nhân tôi có một hệ thống khởi động kép với xp và Wheezy. Tôi giữ xp không viết grub bằng cách tắt tùy chọn "windows restore".

Trước khi tôi tắt tùy chọn khôi phục, tôi sẽ phải sửa grub ít nhất một lần một tuần vì bộ tải khởi động windows tiếp tục ghi đè lên grub.

Tôi đang sửa lỗi để cài đặt windows 8 trên ổ cứng ngoài thông qua cổng usb. Tôi hy vọng điều này sẽ không gặp trở ngại và không gây rối với mbr của tôi.


1
vô hiệu hóa tùy chọn khôi phục windows dường như đã khắc phục vấn đề này cho tôi.
DrCord

2

Đây là một cách giải quyết mà tôi sử dụng, nó hoạt động với các bản cập nhật Windows mà không cần can thiệp: Đổi tên EFI / Microsoft của bạn thành EFI / microsthing Thay thế Windows Boot Path trong grub.cfg thành EFI / microsthing / bootmfgw.efi Giống như sau:

menuentry "Microsoft Windows UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root <PROVIDE YOUR EFI DRIVE UUID>
    chainloader /EFI/Microsomething/Boot/bootmgfw.efi
}

1

Chỉ cần mở gparted, nhấp chuột phải vào phân vùng có Grub trong đó, đi đến quản lý cờ và đánh dấu khởi động.


2
Điều này có thể hoạt động nếu cài đặt Windows chỉ thay đổi phân vùng khởi động. Trong trường hợp của tôi, Windows 8.1 cài đặt ghi đè MBR, yêu cầu grub-installgiải pháp của Christopher .
Nathan Kidd

1

Một giải pháp tôi tìm thấy ở đâu đó trực tuyến (unix.stackexchange.com) liên quan đến việc tắt trình quản lý khởi động windows. Hãy vào Linux (cài đặt gốc, nếu bạn có thể hoặc CD / DVD trực tiếp) và chạy lệnh này:

efibootmgr

Lưu ý rằng phương pháp này sẽ chỉ hoạt động nếu Linux đã được cài đặt ở chế độ UEFI, vì vậy bạn sẽ gặp lỗi nếu Linux đã được cài đặt ở chế độ Legacy. Nếu bạn đã cài đặt nó ở chế độ UEFI, bạn sẽ nhận được một số thông tin và danh sách. Bạn sẽ nhận thấy trình tải / quản lý khởi động Windows và Linux ở đâu đó trong danh sách. Có khả năng Windows sẽ có mức độ ưu tiên cao hơn (thứ tự khởi động nằm trên danh sách).

Ngoài ra còn có các ngôi sao * bên cạnh một số, nếu không phải tất cả, các mục, đánh dấu chúng hoạt động.

Nhìn vào số khởi động 4 chữ số bên cạnh mục Windows và chạy

sudo efibootmgr --bootnum #### --inactive

Điều này sẽ hủy kích hoạt mục Windows. Ngoài ra, hãy đảm bảo rằng Windows đã hủy kích hoạt có mức độ ưu tiên cao hơn nếu chưa có:

sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

trong đó #### là số khởi động Windows.

Nếu bạn khởi động lại ngay bây giờ, bạn sẽ khởi động để grub, nếu tùy chọn Linux được bật với mức ưu tiên cao nhất.

Lưu ý rằng Windows dường như không nhận ra rằng nó đã bị hủy kích hoạt, vì vậy điều này sẽ không được hoàn nguyên bằng cách khởi động vào Windows hoặc cập nhật nó.

Tôi đã tham gia một chương trình cài đặt Linux cục bộ nơi chúng tôi cài đặt Linux cho những người quan tâm, thường là hệ điều hành phụ bên cạnh Windows. Tôi vẫn chưa thấy phương pháp này thất bại và tôi đã thử nó trên một số bản phát hành (chủ yếu là Ubuntu và Mint) và một số nhà cung cấp (Asus, Acer, HP, Lenovo).


0

Windows 10 sẽ ghi đè GRUB 2 khi bạn thay đổi màu văn bản, kích thước, phông chữ hoặc tiêu đề mục menu.

Có hai cách để giải quyết điều này.

  1. Bạn có thể cài đặt Linux ở Chế độ kế thừa (Cài đặt BIOS> Khởi động> Hỗ trợ kế thừa + Đầu tiên kế thừa).

  2. Bạn có thể TẮT khôi phục Windows (còn gọi là Bảo vệ hệ thống) (Bảng điều khiển> Hệ thống & Bảo mật> Hệ thống> Bảo vệ hệ thống> Cấu hình> Tắt).

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.