ฉันพยายามหาวิธีที่ง่ายกว่าในการติดตั้ง Windows และ Linux สำหรับการบูตคู่บนแล็ปท็อปของฉันไม่จำเป็นต้องอยู่ในลำดับนั้น สิ่งที่เราต้องทำคือติดตั้ง Windows ก่อนจากนั้นติดตั้ง linux และอนุญาตให้ GRUB จัดการ Windows
ดังนั้นสิ่งที่ฉันพยายามที่จะบรรลุคือการหาวิธีที่จะหลีกเลี่ยงกระบวนการติดตั้งที่น่ารำคาญ (windows) และเพียงแค่ใช้รูปภาพเพื่อคัดลอกโดยตรงลงในไดรฟ์ของฉัน สิ่งนี้จะทำให้ฉันสามารถรักษาตัวจัดการการบูต (GRUB) ไว้ได้ (ไม่ใช่ว่าฉันไม่สามารถกู้คืนได้ในภายหลัง แต่เป็นนโยบายของ Microsoft ที่จะผูกขาดในกรณีนี้ปฏิเสธการมีอยู่ของตัวจัดการการบูตอื่น ๆ ในระบบ)
ฉันได้รับสำเนาทางกฎหมายของ Windows 8.1 ก่อนจากนั้นจึงทำการติดตั้งบนเครื่องเสมือนโดยใช้ VirtualBox จากนั้นฉันสร้างพาร์ติชัน NTFS บนฮาร์ดไดรฟ์ที่แบ่งพาร์ติชัน GPT และคัดลอกเนื้อหาของพาร์ติชัน Windows จากอิมเมจ. vdi ไปยังพาร์ติชันที่สร้างขึ้นใหม่
แน่นอนมันยังไม่ทำงาน ฉันไม่รู้วิธีเปลี่ยน bootmgr มันให้
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
เนื่องจากไม่พบไฟล์นั้นจากพาร์ติชั่นอื่นซึ่งใช้สำหรับการบูท, การกู้คืนระบบ, เป็นต้น
ตอนนี้ฉันได้อ่านแล้วว่าในที่สุด bootmgr จะเรียกใช้งาน winload.exe เพื่อบูต Windows ขึ้น ฉันไม่รู้ว่าจะทำอย่างไรต่อไป
ฉันคิดว่ามันควรจะทำงานในทางทฤษฎีเพราะฉันมีไฟล์ทั้งหมดที่จำเป็นในการเรียกใช้ Windows ฉันคิดด้วยว่าฉันไม่ควรเป็นคนเดียวที่คิดเรื่องนี้และด้วยเหตุนี้ฉันจึงอาจพลาดบางสิ่งบางอย่างที่นี่พื้นฐาน บางทีมันทำไปแล้ว?
ฉันมีความคิดเล็กน้อยว่าการบูททำงานอย่างไร สิ่งที่ฉันเข้าใจได้คือเมื่อคุณดูอัลบูท Windows และ Linux คุณเชื่อมโยง windows bootloader เข้ากับลินุกซ์ ดังนั้นสิ่งที่ฉันพยายามที่จะบรรลุคือการกำจัด bootloader ของ Windows อย่างใด
แก้ไข
ฉันได้รับการมองหาที่ไฟล์ไบนารีและbootmgr
อ่านไฟล์ BCD และแสดงรายการตัวเลือกของคุณซึ่งคุณสามารถเลือกที่จะบูตได้\Boot\BCD
bootmgr
ข้อมูลเช่นการดำเนินการwinload.exe
อยู่ในไฟล์ BCD ตอนนี้ฉันคิดว่าbootmgr
ตัวเองดำเนินการโดย syslinux โดยใช้chain.c32
โมดูล สิ่งที่ฉันพยายามทำคือการดำเนินการอย่างใดหน้าต่าง bootloader คือwinload.exe
โดยตรงจาก syslinux (ถ้าเป็นไปได้) หรือแก้ไขbootmgr
เพื่อที่จะดำเนินการwinload.exe
เอง (ซึ่งเป็นเส้นทางที่จะโดยตรงในbootmgr
ปฏิบัติการ) โดยไม่ต้องมองหา BCD หรือสิ่งอื่นใด
การไฮเบอร์เนต (ซึ่งต้องใช้ขั้นตอนที่แตกต่างกัน) ไม่ต้องกังวลกับฉันในขั้นตอนนี้
แก้ไขคำถามของคุณเพื่อบอกเราประเภทของเฟิร์มแวร์และ (ถ้า EFI) ว่าคุณได้เปิดใช้งานโมดูลสนับสนุนความเข้ากันได้ในการตั้งค่าของเฟิร์มแวร์หรือไม่
เฟิร์มแวร์ของฉันคือ EFI (โดยเปิดใช้งาน CSM) และปกติฉันจะบูตเข้าสู่ Arch Linux โดยใช้ GRUB ฉันได้ค้นพบว่าbootmgr
ดำเนินการSystem32\winload.exe
ในระบบมรดกและSystem32\winload.efi
ใน EFI
ฉันมี0.0
ความคิดเกี่ยวกับสิ่งที่ต้องทำจากที่นี่ ในช่วง 10 วันที่ผ่านมาฉันพยายามเปลี่ยนแปลง BCD และฉันคิดว่าฉันกำลังจะประสบความสำเร็จ แต่นั่นไม่เกี่ยวข้องเพราะสิ่งที่ฉันต้องการทำจริงๆคือการข้ามตัวจัดการการบูต Windows ไปด้วยกัน
หากคุณมีความคิดใด ๆ ว่ามีวิธีการดำเนินการwinload.efi
จากเปลือก EFI (เพียงเดา) หรือการปรับเปลี่ยนอื่น ๆ เพื่อ GRUB เพื่อที่จะบูต Windows ในโหมด EFI โดยไม่ต้อง chainloader
คำแนะนำใด ๆ ยินดีต้อนรับ
ภาคผนวก
การโพสต์ในฟอรัมอาจให้ข้อมูลเชิงลึกที่เป็นประโยชน์:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1
ตอนนี้ grub4dos สามารถทำการโหลด bootloader (เช่น NTLDR หรือ BOOTMGR) เพราะมันสามารถทำหน้าที่แทนรหัสที่มีอยู่ใน bootsector "ปกติ" (เช่น 300 ไบต์ของรหัสเครื่อง)
รหัสนี้เพียงแค่ตั้งค่าพารามิเตอร์สองสามอย่างแล้วเรียกใช้ตัวโหลด
แม้จะเป็นเรื่องที่ไม่ง่ายเลยที่จะเข้าใจและทำซ้ำด้วยรหัสที่แตกต่างกัน
โหลดเดอร์ระบบ NT เช่น BOOTMGR มีระบบปฏิบัติการ "โหมดจริง" ไม่มากก็น้อย (ไม่เหมือนกับระบบ DOS) และเครื่องมือ / เครื่องมือในการแยกวิเคราะห์ทั้งข้อความธรรมดาและรีจิสตรี Registry มันไม่ใช่สิ่งที่สามารถ เขียนตั้งแต่เริ่มต้นได้อย่างง่ายดาย
ผู้ชายที่ดี @ReactOS กำลังทำงานเขียน FREELDR (ซึ่งมีวัตถุประสงค์เพื่อทดแทน NTLDR ที่ง่ายกว่ามาก) มาตั้งแต่ปี (และเชื่อว่าฉันมีโปรแกรมเมอร์ของ ReactOS อยู่บ้างและดีสำหรับพวกมัน)
มันดูเหมือนว่า ( แต่ก็ไม่ได้บันทึกไว้อย่างชัดเจน) ว่าพวกเขามีการจัดการเพื่อการบูตทดลองเซิร์ฟเวอร์ 2003 NTLDR
2
ด้วยการแนะนำการสนับสนุนสำหรับ (U) EFI, BootMgr ช่วยในการสรุปความแตกต่างระหว่าง BIOS และ (U) EFI ตัวอย่างเช่นที่นี่มีสองลำดับดังนี้
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad คาดว่าจะมีสภาพแวดล้อมบางอย่าง (รวมถึง API) BootMgr ดูแลสิ่งนี้ดังนั้น [เกือบ] โปรแกรม WinLoad เดียวกันจะทำงานในทั้งสองสภาพแวดล้อม
ในความเป็นจริง (U) EFI กำหนดวิธีการจัดเก็บและดึงพารามิเตอร์การบูตดังนั้น BCD ของ BootMgr จึงครอบคลุมวัตถุประสงค์เดียวกันโดยไม่คำนึงถึง BIOS / (U) EFI
แต่นอกเหนือจาก BIOS และ (U) EFI ที่แตกต่างกัน BootMgr ให้คุณเลือก "boot choice" ในขณะที่ WinLoad จะบู๊ตระบบปฏิบัติการเฉพาะที่รู้วิธีบู๊ต
ขึ้นอยู่กับสภาพแวดล้อมของ WinLoad ที่คาดว่าจะมีอยู่มันอาจจะเรียก WinLoad ได้โดยตรง wimboot ของ Michael Brown เรียกใช้ BootMgr PE [1] โดยตรงดังนั้นจึงสามารถเรียก WinLoad ได้โดยตรงยกเว้น WinLoad อาจต้องการสภาพแวดล้อมมากขึ้น คุณสามารถลอง!
[1] อย่าสับสนกับ BootMgr ที่ GRUB4DOS และ Syslinux 'chain.c32 สามารถเรียกใช้ได้ BootMgr นั้นมีต้นขั้วซึ่งรู้วิธีเรียกใช้ BootMgr PE แบบฝัง