จะบู๊ตเป็น Windows 7 ได้อย่างไรเมื่อติดตั้งด้วงในพาร์ติชั่น Windows


15

ชื่อเดิม:ฉันจะแก้ปัญหา (ยกเลิก) การบูท windows 7 บนพาร์ติชั่นเดียวกันกับด้วงได้อย่างไร?

ฉันค้นคว้าปัญหานี้มาสองถึงสามวันแล้ว แต่ฉันว่างเปล่า

โดยทั่วไปพาร์ติชัน 1 คือ Windows 7 และพาร์ติชัน 2 คือ Ubuntu 12.04 ฉันบอก Ubuntu ให้ติดตั้งลงในพาร์ติชั่น 2 และติดตั้ง GRUB บนพาร์ติชัน 1 และใช้งานได้ แต่ปัญหาตอนนี้คือฉันไม่สามารถบูต Windows 7 ได้เพียงแค่กลับไปที่เมนู GRUB หลังจากฉันเลือกแล้ว

จากสิ่งที่ฉันวิจัยแล้วถ้าฉันสามารถแก้ไข GRUB เพื่อบูต Windows 7 "mbr" หรือ bootloader \windows\system32\winload.exe(โดยไม่ต้องใช้ดิสก์การซ่อมแซม Windows 7) ปัญหาของฉันจะได้รับการแก้ไข เป็นไปได้ไหม


URL ของ Boot-Repair-Info คือhttp://paste.ubuntu.com/981952/


เอาต์พุตจากคำสั่ง sudo blkid

/dev/sda1: UUID="1EA0019AA0017A13" TYPE="ntfs" 
/dev/sda2: UUID="e4402f9e-83df-4dc3-8913-69b28314d253" TYPE="ext4" 
/dev/sda3: LABEL="Vault Drive" UUID="74145BFD145BC132" TYPE="ntfs" 
/dev/sda4: UUID="1c030d32-657f-4a78-9468-307d9e09a977" TYPE="ext4"

คำตอบ:


14

คุณสามารถสร้างรายงานสรุป Bootinfo โดยใช้เครื่องมือซ่อมแซมการบูตตามที่อธิบายไว้ด้านล่างแล้วโพสต์ลิงก์ไปยังรายงานได้หรือไม่

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

วิธีใช้การซ่อมแซมการบู๊ตเพื่อให้ "สรุป Bootinfo"


เนื่องจากคุณยังสามารถบูต Ubuntu ได้คุณสามารถติดตั้งและเรียกใช้เครื่องมือซ่อมแซมการบู๊ตโดยใช้apt-getคำสั่งแล้วใช้งานได้Create a Bootinfo summaryคำสั่งแล้วใช้มันเพื่อ

เรียกใช้คำสั่งด้านล่างในหน้าต่างเทอร์มินัลเพื่อติดตั้งboot-repairเครื่องมือ

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. หลังจากนั้นให้ป้อนคำสั่ง boot-repairเพื่อเริ่มเครื่องมือ
  2. หลังจากล่าช้าเล็กน้อยboot-repairจะถามว่าคุณต้องการดาวน์โหลดเวอร์ชันใหม่ล่าสุดหรือไม่ เมื่อคุณเพิ่งติดตั้งเวอร์ชั่นล่าสุดให้ตอบNoเนื่องจากคุณเพิ่งติดตั้งรุ่นใหม่ล่าสุดคำตอบ
  3. หากถูกboot-repairขอให้ติดตั้งpastebinitแพคเกจให้ตอบกลับด้วยYesแพคเกจที่มีการตอบสนอง
  4. เครื่องมือนี้จะสแกนระบบของคุณและ (ในที่สุด) แสดงหน้าต่างที่แสดงในภาพด้านล่าง คลิกที่Create a Bootinfo summaryกล่อง / ปุ่ม สิ่งนี้จะรวบรวมข้อมูลเกี่ยวกับการกำหนดค่าการเริ่มระบบของคุณ แต่จะไม่ทำการเปลี่ยนแปลงใด ๆ


    หน้าต่างเริ่มต้นการซ่อมแซม

  5. เมื่อสรุป bootinfo ที่ได้รับการสร้างขึ้นboot-repairจะแสดงข้อความที่มี URL http://paste.ubuntu.com/123456/ที่ควรมีลักษณะเช่นนี้:

    โปรดอัปเดต / แก้ไขคำถามของคุณและเพิ่ม URL นี้ ข้อมูลใน pastebin ลิงก์นี้ชี้ให้เห็นว่าจะ (ฉันหวังว่า) จะช่วยเราในการวินิจฉัยปัญหา

ฉันคิดว่าการเขียน VBR ของพาร์ติชัน Windows มากเกินไปทำให้เกิดปัญหานี้

ความเข้าใจของฉันคือว่ามีหลายขั้นตอนในการเริ่มระบบปฏิบัติการ ในกรณีของคุณฉันคิดว่ามีบางอย่างเหมือนขั้นตอนด้านล่างเกิดขึ้น

  1. BIOS ในคอมพิวเตอร์ของคุณพยายามเรียกใช้รหัสในภาคแรกของฮาร์ดไดรฟ์ ภาคนี้เป็นครั้งแรกมักจะเรียกว่าเป็นMBR (Master Boot Record)
  2. นอกเหนือจาก MBR แล้วทุกพาร์ติชันยังสามารถมีบูตเรกคอร์ดได้ มักเรียกว่าVolume Boot Record หรือ VBRVBR MBR บนฮาร์ดไดรฟ์ของคุณถ่ายโอนการควบคุมไปยัง VBR ของพาร์ติชัน 1 พาร์ติชัน Windows ของคุณ
  3. Windows คาดว่า VBR ของพาร์ติชันจะใช้ขั้นตอนต่อไปในการบูทระบบปฏิบัติการเช่น Windows 7 ดังนั้น Windows จะเริ่มติดตั้ง VBR ซึ่งจะโอนการควบคุมไปยังbootmgrโปรแกรมWindows ในพาร์ติชัน Windows ของคุณ

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

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

ด้านล่างนี้เป็นสำเนาของข้อมูลบางส่วนจาก Bootinfo Summary ของคุณสำหรับการอ้างอิง ความคิดเห็นของฉันข้างต้นขึ้นอยู่กับข้อมูลนี้

============================= Boot Info Summary: ===========================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,msdos2)/boot/grub on this drive.

sda1: ______________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1
                       and looks at sector 44090872 of the same hard drive 
                       for core.img. core.img is at this location and looks
                       for (,msdos2)/boot/grub on this drive. No errors 
                       found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: ______________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

วิธีแก้ปัญหาที่เป็นไปได้ในการบูต Windows 7

ด้านล่างนี้เป็นข้อเสนอแนะสำหรับการแก้ไขคำสั่งการบูต GRUB ของคุณซึ่งอาจทำให้คุณสามารถบูต Windows 7 ได้ฉันไม่แน่ใจว่านี่จะใช้งานได้ แต่ดูเหมือนน่าลอง

ปัจจุบันคุณgrub.cfgใช้คำสั่งบูต GRUB ด้านล่างเพื่อบูต Windows 7

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

ฉันขอแนะนำให้คุณลองเปลี่ยนและใช้คำสั่งเหล่านี้แทน

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

นี่คือขั้นตอนในการทำเช่นนี้

  1. บู๊ตระบบของคุณไปที่เมนูด้วง
  2. เลือก (ไฮไลท์) Windows 7 (loader) (on /dev/sda1)ด้วงรายการเมนูการบูต
  3. กดeเพื่อแก้ไขคำสั่งบูต GRUB สำหรับ Windows 7
  4. ทำการเปลี่ยนแปลงสองรายการของคำสั่งนี้ตามที่แสดงmenuentryด้านบน
    • เพิ่มคำสั่ง insmod ntldr
    • เปลี่ยนคำสั่ง
      chainloader +1
      เป็น
      ntldr ($root)/bootmgr
  5. กดCtrl+ XหรือF10เพื่อบูตโดยใช้คำสั่งที่แก้ไขแล้วเหล่านี้

หมายเหตุ 1:

หากวิธีแก้ปัญหาข้างต้นประสบความสำเร็จในการโหลดเมนูการบูต Windows 7 คุณสามารถทำให้เป็นแบบกึ่งถาวรได้

  1. ใช้sudoเพื่อแก้ไขไฟล์/etc/grub.d/40_customและเพิ่มที่สองแก้ไขmenuentryแสดงด้านบน (ถ้าคุณทำเช่นนี้ฉันขอแนะนำให้คุณเปลี่ยนชื่อของรายการ "กำหนดเอง" นี้)
  2. รันคำสั่งsudo update-grubเพื่ออัพเดต/boot/grub/grub.cfgเพื่อรวมรายการที่คุณกำหนดเอง (มันจะอยู่ที่ด้านล่างของเมนู GRUB เมื่อคุณบูต)

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

ฉันคิดว่า ... แต่ไม่แน่ใจ 100% ... ว่าคำสั่งการกู้คืน Windows bootsectสามารถใช้ทำสิ่งนี้ได้ หากคุณต้องการที่จะเสี่ยงมันเป็นไปได้วิธีหนึ่งที่เป็นไปได้ที่ระบุไว้ด้านล่าง

  • เมื่อบูท Windows ให้กดF8เพื่อเปิดAdvanced Boot Optionsเมนูขึ้นมา
  • เลือก Repair Your Computerรายการ
  • System Recovery Optionsเดินผ่านหน้าต่างต่อไปจนกว่าจะถึง
  • เลือก Command Prompt
  • เรียกใช้คำสั่ง bootsect /nt60 C:

แต่คุณอาจต้องการรอสักครู่และดูว่ามีคำตอบอื่นใดที่คุณจะได้รับจากคำถามของคุณก่อนที่คุณจะลองเสี่ยงด้านบน

โน้ต 2:

ในขณะที่ค้นหาสิ่งอื่น ๆ ฉันพบคำถามอีกสองคำถามใน AskUbuntu ซึ่งเกี่ยวข้องกับปัญหาของคุณ

  1. Windows 7 จะไม่บูตหลังจากติดตั้ง Ubuntu 11
  2. Windows 7 ไม่บูตหลังจากติดตั้ง Ubuntu

ฉันไม่แน่ใจว่าคำถามเหล่านี้ช่วยได้มากน้อยเพียงใด คำตอบสำหรับคำถามที่สองคือการใช้คำสั่งbootrec /fixbootเพื่อกู้คืน VBR สำหรับพาร์ติชัน Windows ความเข้าใจจากคำถามนั้นคือการใช้bootrec /fixbootคำสั่งแก้ปัญหา

แต่คำถามที่สองยืนยันว่าbootrec /fixbootทำไม่ได้แก้ปัญหา

(ทุบห่าออกมาจากฉันเป็นสิ่งที่อาจเกิดขึ้นที่นั่น)


ขอบคุณสำหรับการตอบกลับของคุณ. ฉันก็ดีนะโชคดี แต่ถ้าคนอื่นไม่รู้เรื่องพวกเขาทำตอนนี้ URL จาก Boot-Repair-Info คือhttp://paste.ubuntu.com/981952/
Sim

1
ฉันคิดว่าปัญหาของคุณเกิดจากการติดตั้ง GRUB ลงในพาร์ติชัน Windows ของคุณ ดูการอัปเดตคำตอบของฉัน
ไม่มีเหตุผล John

ดังนั้นคุณคิดว่าฉันจะทำอย่างไร ฉันควรใช้ bootrec แล้วติดตั้งด้วงใหม่? หรือมีวิธีอื่นหรือไม่
Sim

คุณสามารถซ่อมแซมการบูต Windows ได้ตามปกติเมื่อเสร็จแล้ว Windows จะบูตโดยอัตโนมัติโดยไม่ต้องถามคุณ (Windows ไม่รู้จัก Linux) เมื่อแก้ไขแล้วคุณสามารถบูต Linux จาก USB และเรียกใช้ GRUB อีกครั้งคราวนี้ไม่ได้สัมผัสกับพาร์ติชัน Windows;)
pzkpfw

เพิ่มคำแนะนำสำหรับวิธีแก้ปัญหาชั่วคราวที่เป็นไปได้ในคำตอบของฉัน
ไม่มีเหตุผล John

7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

หากคุณติดตั้ง Windows ในพาร์ติชันอื่นที่ไม่ใช่ (hd0,1) คุณต้องใช้คำสั่ง drivemap เพื่อบู๊ตเป็น Windows Chainloader +1 หรือ ntldr / bootmgr สามารถใช้ในการบูต Windows 7

สิ่งที่คุณทำคือคุณดัดแปลง VBR ของพาร์ติชั่นที่ 1; คุณสามารถกู้คืนได้โดยดำเนินการคำสั่งเหล่านี้ในโหมดการกู้คืน windows ใน cmd เมื่อคุณบูตจากแผ่นซีดีติดตั้ง:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

นี่เป็นคำตอบเดียวที่ใช้งานได้จริง +1
เดซี่

1

ฉันไม่รู้จริงๆเกี่ยวกับการบูท "(UN))" คุณ shoud ลองแก้ไข Windows ของคุณโดยใช้ดิสก์ Windows Repair (เลือกที่Command Promptจะเรียกใช้bootsect.exeยูทิลิตี้บู๊ทส์ectอยู่ในโฟลเดอร์บู๊ตบูตดังนั้นเปลี่ยนไดเรกทอรีเป็นbootตอนนี้ทำงานbootsect /nt60 C:\โดยไม่ต้อง เครื่องหมายอัญประกาศ) หากคุณติดตั้ง Windows 7 ไว้ในC:พาร์ติชันเป็นครั้งแรกหรือคุณสามารถเรียกใช้ "bootsect / nt60 SYS" หรือ "bootsect / nt60 ALL")

จากนั้นติดตั้ง GRUB อีกครั้ง


ขอบคุณสำหรับการตอบกลับ. สิ่งที่ฉันหมายถึงคือรองเท้าบูทด้วง การวิจัยผู้คนบอกว่าการซ่อมแซมการบูตสำหรับ mbr เราควรใช้ "bootrec.exe / fixboot" แล้ว "bootrec.exe / fixmbr" วิธีการของคุณเหมือนกับ bootrec หรือแตกต่างกันอย่างไร
Sim

จากประสบการณ์ของฉันหลังจากการติดตั้ง Ubuntu ในฐานะบูทคู่มันจะดีกว่าถ้าใช้ Windows ในการรีบูทและทำการซ่อมแซมด้วยตัวเองจากนั้นกลับมาที่ Ubuntu ฉันทำตามวิธีนี้ทุกครั้งและพบว่าประสบความสำเร็จ
beeju

จริง สำหรับ windows ฉันใช้EasyBCD
Sim

0

GRUB ถูกติดตั้งในเซกเตอร์สำหรับบูตพาร์ติชัน Windows (PBR) ของคุณตามที่ BootInfo แสดง:

sda1: __________________________________________________________________________

File system:       ntfs
Boot sector type:  Grub2 (v1.99)
Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1 
                   and looks at sector 44090872 of the same hard drive 
                   for core.img. core.img is at this location and looks 
                   for (,msdos2)/boot/grub on this drive. No errors found 
                   in the Boot Parameter Block.
Operating System:  Windows 7

สิ่งนี้จะป้องกันไม่ให้ Windows ทำการบูท

โซลูชันอธิบายไว้อย่างดีที่นี่: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

ฉันมีปัญหาเดียวกันนี้และต้องการยืนยันวิธีแก้ปัญหาที่เหมาะกับฉันโดยหวังว่าจะช่วยผู้อื่น ...

ฉันแก้ไข grub.cfg เพื่อสะท้อนการเปลี่ยนแปลงที่นี่:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

นั่นคือฉันเพิ่ม ...

insmod ntldr

และเปลี่ยนบรรทัดสุดท้ายเป็น ...

ntldr ($ root) / bootmgr

ฉันจะพยายามคืนค่า VBR ในไม่ช้าและจะรายงานกลับมาว่ามันจะเปิดออกได้อย่างไร


0

แก้ไขปัญหาการบูต windows 10 ของฉัน ....

menuentry "Windows 10 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13 
    ntldr ($root)/bootmgr
}

hexadec.code อาจแตกต่างกัน


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