ด้วง: บูตจาก ISO


41

ฉันจะบูทไฟล์ ISO ในด้วงได้อย่างไร ไฟล์ ISO อยู่ในพาร์ติชัน reiserfs และ GRUB สามารถเข้าถึงได้ (ทดสอบแล้ว)


ด้วงรุ่นไหน
ต้มตุ๋น quixote

1
คำถามเดียวกันตอบที่นี่
dma_k


คำตอบ:


55

ปัญหาที่ใหญ่ที่สุดกับบูต ISO ไฟล์คือว่า ISOs ที่ถูกออกแบบมาให้เด้งเกือบจะออกแบบมาเสมอที่จะได้รับการบูตจากซีดี ตามที่อธิบายไว้ในบล็อกของ Marcoเกี่ยวกับ Grub 2 (เน้นที่เหมือง):

GRUB สามารถอ่านภาพ ISO9660 (” iso”) ตัวอย่างเช่นสามารถโหลดภาคส่วนแรกและบูต แต่คนส่วนใหญ่ไม่ทราบว่าเป็น "อะไรแล้ว" ระบบปฏิบัติการที่โหลดจะทำอะไร? มันมักจะมองหาซีดีรอมซึ่งจะไม่พบและล้มเหลว

ดังนั้นวิธีที่ง่ายในการบูตจากไฟล์ ISO สุ่มบางอย่างคือการโหลดลงในเครื่องเสมือน (VirtualBox, VMware หรือ Virtual PC) เป็นซีดีเสมือนและบูตที่นั่น นั่นควรจะใช้ได้เกือบทุกครั้งเพราะสำหรับ VM ไม่ใช่ไฟล์ ISO - เป็นซีดีจริงบนฮาร์ดแวร์ซีดีจริง

การบูตจากไฟล์ ISO บนโลหะเปลือยนั้นยากกว่ามาก วิธีการทำเช่นนี้ขึ้นอยู่กับรุ่นของ Grub ที่คุณใช้และผลลัพธ์อาจแตกต่างกันไปขึ้นอยู่กับ ISO ที่คุณใช้และวิธีกำหนดค่าให้บู๊ต นี่คือเหตุผลว่าทำไมเครื่องมือ boot-ISO-from-USB ส่วนใหญ่ (Unetbootin, WinToFlash ฯลฯ ) มักจะแยกเนื้อหา ISO ไปยังไดรฟ์ - เพราะวิธีการที่พวกเขาสามารถเข้าถึงได้โดยตรงโดยไม่ทำให้ระบบปฏิบัติการสับสน


ด้วง 1

... ไม่แน่ใจ. ถ้าเป็นไปได้รายการเมนูอาจดูเหมือน Grub4DOS มาก แต่ฉันคิดว่าคำสั่ง"map --hook"คือการปรับปรุง Grub4DOS ในด้านบวก Grub มีการรองรับระบบไฟล์ที่กว้างกว่า Grub4DOS

หมายเหตุเกี่ยวกับGrub ที่มี reiserfs (ไม่ยืนยัน) แสดงว่าคุณ "ต้องติดตั้งพาร์ติชันของคุณnotailเพื่อให้สามารถใช้งานได้"

Memdisk เป็นตัวเลือก ดูด้านล่าง


grub4dos

Grub4DOS เสนอ "ซีดีอีมูเลชัน"ที่ใช้งานได้กับ ISO บางตัว น่าเสียดายที่ Grub4DOS อ่านระบบไฟล์ FAT32 / NTFS เท่านั้น ดาวน์โหลด Grub4DOS

นี่คือรายการตัวอย่าง ( แหล่งที่มา ):

title fdfullcd.iso (0xFF)
  find --set-root /fdfullcd.iso
  map /fdfullcd.iso (0xFF)
  map --hook
  root (0xFF)
  kernel /isolinux/data/memdisk
  initrd /isolinux/data/fdboot.img

สมมุติว่า Win7 ISO สามารถบู๊ตได้ด้วยรายการนี้ :

title Windows 7
  map (hd0,0)/win7.iso (hd32)
  map --hook
  chainloader (hd32)

ISO อื่น ๆ สามารถบู๊ตได้ด้วย Memdisk :

title Boot Hardware Detection Tool from iso image (with 'iso' parameter)
  kernel /memdisk iso
  initrd /hdt.iso

นอกจากนี้คุณยังสามารถใช้ปรับแต่งเมนูเช่นMultiBootISOs.exe จาก PenDriveLinux วาง ISOs บนแฟลชไดรฟ์และเรียกใช้ยูทิลิตีเพื่อติดตั้ง bootloader และกำหนดค่าเมนูบู๊ต

นี่คือตอน Hak5ในการติดตั้ง Grub4DOS


ด้วง 2

นี่คือตัวอย่าง Grub2 สองตัวอย่าง chainloaderไม่สามารถบูต ISO ได้ในปัจจุบันดังนั้นรายการเหล่านี้จะต้อง (1) ใช้loopbackเพื่อ "mount" ISO และ (2) เพิ่มบางอย่างเช่นiso-scanหรือfindisoไปยังบรรทัดlinuxที่ระบุไฟล์ ISO

น่าเสียดายที่ไม่มีวิธีทั่วไปในการทำเช่นนี้ แต่ละรายการบูตที่แตกต่างกันจะต้องได้รับการปรับแต่งให้สอดคล้องกับเนื้อหาของ ISO เป้าหมาย Linux LiveCD ส่วนใหญ่ใช้ ISOLINUX เป็น bootloader ค้นหาisolinux.cfgและตรวจสอบรายการบูตเพื่อดูว่ามันจะบูทอะไร

ตัวอย่างรายการ ( แหล่งที่มา ):

menuentry "Ubuntu Live 9.10 32bit" {
 loopback loop /boot/iso/ubuntu-9.10-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-9.10-desktop-i386.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

menuentry "Grml small 2009.10" {
  loopback loop /boot/iso/grml-small_2009.10.iso
  linux (loop)/boot/grmlsmall/linux26 findiso=/boot/iso/grml-small_2009.10.iso apm=power-off lang=us vga=791 boot=live nomce noeject noprompt --
  initrd (loop)/boot/grmlsmall/initrd.gz
}

หากคุณพยายามบูตไม่ใช่ LiveCD ของ Linux คุณอาจโชคไม่ดี อีกครั้งMemdisk อาจช่วย :

menuentry "Boot Hardware Detection Tool from iso" {
  linux16 /memdisk iso
  initrd16 /hdt.iso
}

@albert: ฉันใช้ Grub2 ในแฟลชไดรฟ์และผิดหวังกับสิ่งเดียวกันดังนั้นจึงไม่ยากที่จะรวมเข้าด้วยกัน ฉันกำลังดูคำถามอื่นของคุณ แต่ฉันไม่เคยลอง "เขียน" ISO ลงบนพาร์ติชันมาก่อนดังนั้นอาจเป็น ... น่าสนใจ
ต้มตุ๋น quixote

Ofc ฉันสามารถบูทได้ภายใน VMware (และฉันก็ทำไปแล้ว) แต่นั่นก็ไม่ได้ช่วยอะไรมากเพราะมันเป็น Windows และเมื่อฉันติดตั้งผ่าน VMware บนดิสก์ของฉันมันจะไม่บูตในภายหลัง (โง่ Windows ... )
Albert

คุณสามารถให้คำแนะนำแก่ฉันว่าตัวเลือกใดที่ฉันควรลองก่อนเช่น Grub1, Grub2 หรือ Grub4DOS ฉันสามารถติดตั้งทุกอย่างที่จำเป็นซึ่งไม่เป็นปัญหา
อัลเบิร์ต

@albert: คุณกำลังถามถึงคำถามก่อนหน้านี้หรือไม่? ฉันเชื่อว่าทางออกที่ดีที่สุดของคุณคือใช้วิธีการสกัด ตัวติดตั้ง Windows เป็นหนึ่งใน ISO ที่มีปัญหาเมื่อไม่ได้บูทจากฮาร์ดแวร์ คุณสามารถลอง memtest แต่ฉันไม่รู้อะไรเกี่ยวกับมันมากนัก คุณอาจต้องการได้รับแฟลชไดรฟ์และใช้สิ่งนั้น; ดูsuperuser.com/questions/66948/…หรือsuperuser.com/questions/62193/install-win7-from-usb
quack quixote

1
@quackquixote เกี่ยวกับคำที่เป็นตัวหนาของคุณ"ระบบปฏิบัติการที่โหลดจะทำอย่างไรมีแนวโน้มมากที่สุดที่จะมองหาซีดีรอมซึ่งจะไม่พบและล้มเหลว"ทำไมระบบปฏิบัติการจึงต้องการซีดีรอม มันเป็นไฟล์ iso ที่สมบูรณ์แบบและทุกสิ่งที่จำเป็นสำหรับการโหลด OS นั้นอยู่ในไฟล์ iso อยู่แล้วทำไมมันไม่ข้ามไปหา CDROMs?
Pacerier

1

คุณสามารถใช้ dd จากเทอร์มินัลเพื่อเขียนไฟล์ iso ไปยังพาร์ติชัน แค่ระวังถ้าคุณใช้ผิดคุณสามารถเช็ดทุกอย่างได้ มันควรมีลักษณะดังนี้: dd if = Desktop / LinuxCDFile.iso of = / Path / To / Partition


แต่พาร์ติชั่นจะต้องเป็นไฟล์หลักเพื่อให้สามารถบูตได้โดย Windows Loader
Firelord

ใช้งานได้เป็นครั้งคราวเท่านั้นโดยทั่วไปผลลัพธ์ไม่สามารถบูตได้
David Tonhofer

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