ฉันต้องการทำเพราะฉันต้องการติดตั้ง Windows 7 และเมนู BIOS ของฉันไม่ปรากฏขึ้น มันข้ามไปที่เมนู grub2 เมื่อเริ่มต้น แต่นั่นเป็นอีกเรื่อง ... มีวิธีการบูตการติดตั้ง Windows 7 iso โดยตรงจาก grub2 หรือไม่?
ฉันต้องการทำเพราะฉันต้องการติดตั้ง Windows 7 และเมนู BIOS ของฉันไม่ปรากฏขึ้น มันข้ามไปที่เมนู grub2 เมื่อเริ่มต้น แต่นั่นเป็นอีกเรื่อง ... มีวิธีการบูตการติดตั้ง Windows 7 iso โดยตรงจาก grub2 หรือไม่?
คำตอบ:
การบูต ISO จริงด้วย grub legacy หรือ grub2 จะไม่ทำงาน แต่ด้วย windows รุ่นเก่า (เช่น XP) คุณสามารถแกะโฟลเดอร์ i386 จาก ISO ไปยัง USB stick แล้วใช้grub4dosเพื่อเรียก bootloader:
title windows installer via setupldr.bin
find --set-root /i386/setupldr.bin
chainloader /i386/setupldr.bin
หรือ
title windows installer via /bootsect.bin
find --set-root /i386/setupldr.bin
chainloader /bootsect.bin
สิ่งนี้อาจไม่ทำงานกับ Windows รุ่นที่ใหม่กว่าหรือกับฮาร์ดแวร์ที่ใหม่กว่า แต่ก็มีตัวเลือก ..
ด้วย grub2 เห็นได้ชัดว่าบางสิ่งบางอย่างเช่นนี้สามารถทำงานสำหรับWindows 7 :
menuentry "Windows 7 (bootmgr)" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
### A: either use this line or the next one, but not both
set root='(hd0,msdos1)'
### B:
### search --no-floppy --fs-uuid --set=root ____INSERT_PARTITION_UUID_HERE___
ntldr ($root)/bootmgr
}
ตัวเลือกAถือว่าอุปกรณ์ USB / HDD ที่สามารถบูตได้ของคุณเป็นอุปกรณ์ตัวแรกและมีตารางพาร์ทิชันสไตล์ msdos ปรับให้เข้ากับการกำหนดค่าของคุณ หากอุปกรณ์สำหรับบู๊ตของคุณมีตารางพาร์ติชัน GPT เป็นไปได้มากว่าคุณจะต้องใช้(hd0,gpt1)
(โดยทั่วไป GPT นั้นยากกว่าในการตั้งค่า)
ตัวเลือกBใช้ UUID เฉพาะของไดรฟ์ซึ่งสามารถเห็นได้บน Linux ด้วยsudo blkid
หรือบน OSX ด้วยเช่นdiskutil info disk0s1
(หรือ Disk Utility> Info)
รายการสุดท้ายอาจมีลักษณะเช่นนี้:
menuentry "Windows 7 installer" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
search --no-floppy --fs-uuid --set=root 0E239BC6-F960-3107-89CF-1C97F78BB46B
ntldr /bootmgr
}
ใช่คุณคิดว่าอะไรแบบนี้จะได้ผล:
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
drivemap "/Winblows.iso" '(hd32)'
drivemap '--hook' ''
set root='(hd32)'
chainloader +1
}
แต่ Windows จะหยุดชะงักที่
หากคุณมี RAM อย่างน้อย 4GB คุณสามารถเลือกที่จะโหลด iso DVD ทั้งหมดในmemdiskแล้วบูตมัน ในการทำเช่นนั้นดาวน์โหลด SysLinux และแตกmemdisk
ไฟล์ลงในboot
ไดเรกทอรีของคุณ จากนั้นคุณต้องเพิ่มรหัสใน Grub2 แบบนี้
menuentry "Boot Windoze" {
search -f "--set-root /Winblows.iso"
insmod memdisk
linux16 /boot/memdisk iso
initrd16 /Winblows.iso
}
อย่างไรก็ตามฉันจะไม่แม้แต่จะทดสอบโค้ดเนื่องจากการใส่ข้อมูล 3+ GB ลงใน RAM นั้นผิดปกติ (จากจุดยืนของอุดมการณ์) ไม่ฉันต้องการสิ่งที่คุณต้องการจริงๆ แต่ในที่สุดฉันก็ติดตั้ง Windows ลงในพาร์ติชันบน USB โดยใช้เครื่องมือดาวน์โหลด Windows 7 USB / DVDและจัดการกับสิ่งนั้น ขออภัยไม่มีวิธีอื่นที่ฉันเห็น
เทคนิคการติดตั้งจาก.iso
ไฟล์windows ไม่สามารถทำได้ คุณสามารถบูตจาก.iso
ด้วงที่ใช้ แต่หลังจากนั้น Windows จะสูญเสียการติดต่อกับตำแหน่งที่ติดตั้งหรือไม่สามารถใช้งานได้ ดังนั้นทั้งคู่grub
& Windows ควรตระหนักถึงการเมานต์และบูต ปัจจุบัน Windows ไม่รองรับ
ดังนั้นคุณต้องสารสกัด / คัดลอกเนื้อหาของรากของพาร์ทิชันแล้วห่วงโซ่โหลดเป็นมันใช้.iso
grub