ฉันจะป้องกัน Windows จากการเขียนทับ GRUB เมื่อใช้เครื่องดูอัลบูตได้อย่างไร


19

ฉันอ่านมากเกี่ยวกับการบูทดูอัลบูตและดูเหมือนว่าง่ายเหมือนกับการโหลด Windows จากนั้นโหลด Linux ด้วย GRUB แต่ทุกคนบอกว่า Windows ชอบที่จะทิ้ง GRUB เมื่อได้รับโอกาส ขั้นตอนใดบ้างที่ฉันสามารถทำได้เพื่อป้องกันไม่ให้เกิดเหตุการณ์นี้ (นอกเหนือจากการใช้ bootloader ของ Windows ฉันต้องการทำให้มันง่ายที่สุดเท่าที่จะทำได้)


คำตอบ:


17

Windows จะเขียนทับบูตเมื่อใดก็ตามที่คุณติดตั้งอัพเกรดมันเป็นรุ่นใหม่หรือใช้เครื่องมือชอบbootrec /fixmbr, หรือเก่าbootrec /fixboot fdisk /mbrโดยทั่วไปให้ติดตั้ง Windows ก่อนจากนั้น Linux บูตเซกเตอร์จะยังคงอยู่จนกว่าคุณจะทำสิ่งใดสิ่งหนึ่งข้างต้น (และอาจมีวิธีอื่น ๆ ในการเขียนลงบน MBR) แต่ถ้าคุณทำด้วงสูญเสีย

  • บูตจากซีดีสด (CD / DVD หรือแฟลชไดรฟ์)
  • กลายเป็นรูทหรือใช้sudoกับคำสั่งด้านล่าง
  • แสดงรายการพาร์ติชันที่มีอยู่หากจำเป็น: fdisk -l
  • Windows จะมีอยู่บน / dev / sda1: mount /dev/sda1 /mnt
  • ติดตั้ง GRUB ใน MBR อีกครั้ง: grub-install --root-directory=/mnt/ /dev/sda
  • Reboot: shutdown -r now
  • กู้คืนเมนู GRUB: update-grub

คุณสามารถติดตั้ง Unix, Linux หรือ BSD ได้ 100% และใช้ Windows ในเครื่องเสมือนได้หากคอมพิวเตอร์มีความแข็งแกร่งเพียงพอ

นอกจากนี้ BIOS ของคอมพิวเตอร์ของคุณอาจมีตัวเลือกในการป้องกันบูตเซกเตอร์


คุณหมายถึง Windows 7 เป็น Windows 8 หรือแค่เรียกใช้ Windows Update หรือไม่
Nathan2055

1
@ Nathan2055 ใช่เหมือนกับ Windows 7 ถึง 8 ... ใหม่และเวอร์ชั่นที่สูงกว่า Windows Update จะไม่ส่งผลกระทบต่อ MBR
Christopher

ฉันคิดอย่างนั้น สิ่งที่ดีคือผมสงสัยผมจะล้อเล่นกับ MBR ภายใต้ Windows และมีวิธีที่ฉันจะเป็น Windows 8 หลังจากที่ได้อ่านไม่มีนี้
Nathan2055

1
คุณสามารถลองกำหนดค่า windows bootloader เป็น chainload to grub: oreillynet.com/pub/h/2337 การมีส่วนร่วมมากขึ้นเล็กน้อยและอาจใช้งานได้มากเกินไปสำหรับผลที่น้อยเกินไป แต่การทำเช่นนั้นจะทำให้ Windows เขียนทับ bootloader คุณจะยังสามารถบูตเข้าสู่ Linux ได้
Bratchley

@ JoelDavis: ใช่ฉันได้อ่านแบบฝึกหัดหลายอย่างเกี่ยวกับการทำเช่นนั้น แต่สำหรับคนที่ไม่มีประสบการณ์อย่างแน่นอนแม้แต่การโหลด GRUB และความจริงที่ว่าฉันไม่คิดว่า Windows จะทำให้ฉันเดือดร้อนเพราะฉันไม่ต้องการอัพเกรด ฉันคิดว่าฉันจะไปกับการติดตั้งวานิลลาด้วงและไม่ยุ่งกับ bootloader
Nathan2055

4

ฉันคิดว่าฉันจะไปกับการติดตั้งวานิลลาด้วงและไม่ยุ่งกับ bootloader

ถ้าคุณใช้ด้วงในรูปแบบใดก็ตามคุณกำลังยุ่งกับบูทโหลดเดอร์ GRUB ย่อมาจาก "grand unified bootloader" และมีสองรุ่นคือ - grub v1 และ grub v2 ระบบ linux ที่ทันสมัยทั้งหมดใช้ grub2 โดยอัตโนมัติ หากคุณติดตั้งระบบ linux ใด ๆ ด้วงเป็น bootloader เริ่มต้นเว้นแต่ว่าคุณจะไปกับ LILO โดยเฉพาะซึ่งฉันไม่แนะนำ

ส่วนตัวฉันมีระบบดูอัลบูตด้วย xp และ Wheezy ฉันป้องกันไม่ให้ xp เขียนทับด้วงโดยปิดใช้งานตัวเลือก "windows restore"

ก่อนที่ฉันจะปิดการใช้งานตัวเลือกการคืนค่าฉันจะต้องแก้ไขด้วงอย่างน้อยสัปดาห์ละครั้งเนื่องจาก windows bootloader เก็บการเขียนทับด้วง

ฉันกำลังติดตั้ง windows 8 บนฮาร์ดไดรฟ์ภายนอกผ่านพอร์ต usb ฉันหวังว่าสิ่งนี้จะไปโดยไม่มีการผูกปมและไม่ยุ่งกับ mbr ของฉัน


1
การปิดใช้งานตัวเลือกการคืนค่า windows ดูเหมือนว่าจะแก้ไขปัญหานี้ให้ฉันแล้ว
DrCord

2

นี่เป็นวิธีแก้ปัญหาที่ฉันใช้ทำงานกับการปรับปรุง Windows โดยไม่ต้องมีการแทรกแซง: เปลี่ยนชื่อ EFI / Microsoft ของคุณใน EFI / Microsomething แทนที่ Windows Boot Path Path ใน grub.cfg เป็น EFI / Microsomething / bootmfgw.efi เช่นนี้:

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

เพียงแค่เปิดgpartedคลิกขวาที่พาร์ติชันที่มีด้วงอยู่แล้วไปที่จัดการแฟล็กและทำเครื่องหมายการบู๊ต


2
สิ่งนี้อาจทำงานได้หากการติดตั้ง Windows เปลี่ยนพาร์ติชันสำหรับบูตเท่านั้น ในกรณีของฉันติดตั้ง Windows 8.1 เขียนทับ MBR ซึ่งต้องการgrub-installโซลูชันของ Christopher
นาธาน Kidd

1

วิธีการแก้ปัญหาที่ฉันพบที่ไหนสักแห่งออนไลน์ (unix.stackexchange.com) เกี่ยวข้องกับการปิดการใช้งานตัวจัดการการบูต windows รับ Linux (ทั้งการติดตั้งดั้งเดิมหากคุณสามารถหรืออยู่ CD / DVD) และเรียกใช้คำสั่งนี้:

efibootmgr

โปรดทราบว่าวิธีการนี้จะใช้งานได้หากติดตั้ง Linux ในโหมด UEFI เท่านั้นดังนั้นคุณจะได้รับข้อผิดพลาดหากติดตั้ง Linux ในโหมด Legacy หากคุณติดตั้งในโหมด UEFI คุณจะได้รับข้อมูลและรายการ คุณจะสังเกตเห็นตัวจัดการการบูต / ผู้จัดการ Windows และ Linux ในรายการ เป็นไปได้ว่า Windows จะมีลำดับความสำคัญสูงกว่า (ลำดับการบูตอยู่เหนือรายการ)

นอกจากนี้ยังมีดาว * อยู่ด้านข้างบางรายการถ้าไม่ใช่ทั้งหมด

ดูหมายเลขบูต 4 หลักถัดจากรายการ Windows แล้วเรียกใช้

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

นี่จะเป็นการปิดการทำงานของรายการ Windows ตรวจสอบให้แน่ใจด้วยว่าขณะนี้ Windows ที่ปิดใช้งานนั้นมีลำดับความสำคัญสูงกว่าหากยังไม่ได้ดำเนินการ:

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

โดยที่ #### คือหมายเลขการบูตของ Windows

หากคุณรีบูตตอนนี้คุณจะบูทด้วงถ้าตัวเลือก Linux ถูกเปิดใช้งานโดยมีลำดับความสำคัญสูงสุด

โปรดทราบว่า Windows ดูเหมือนจะไม่รับรู้ว่ามันถูกปิดการใช้งานดังนั้นสิ่งนี้จะไม่ได้รับการคืนค่าโดยการบูตเข้าสู่ Windows หรืออัปเดต

ฉันเข้าร่วมใน Linux installfest ในพื้นที่ที่เราติดตั้ง Linux สำหรับผู้ที่สนใจส่วนใหญ่มักจะเป็นระบบปฏิบัติการรองถัดจาก Windows ฉันยังไม่เห็นวิธีการนี้ล้มเหลวและฉันได้ลองใช้งานหลาย distros (ส่วนใหญ่ Ubuntu และ Mint) และผู้จำหน่ายหลายราย (Asus, Acer, HP, Lenovo)


0

Windows 10 จะเขียนทับ GRUB 2 เมื่อคุณเปลี่ยนสีข้อความขนาดแบบอักษรหรือรายการในเมนู

มีสองวิธีในการแก้ปัญหานี้

  1. คุณสามารถติดตั้ง Linux ในโหมด Legacy (การตั้งค่า BIOS> บู๊ต> Legacy Support + Legacy First)

  2. คุณสามารถปิดการคืนค่า Windows (การป้องกันระบบ) (แผงควบคุม> ระบบและความปลอดภัย> ระบบ> การป้องกันระบบ> กำหนดค่า> ปิดใช้งาน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.