วันพฤหัสบดีที่ 13 ธันวาคม พ.ศ. 2555

การทำ Multiboot Flashdrive ไฟล์ ISO

ง่ายมากๆกับการทำ Multiboot Flashdrive ไฟล์ ISO
(ที่มา: http://www.pendrivelinux.com/boot-multiple-iso-from-usb-multiboot-usb/)


ผมไปเจอโปรแกรมช่วยการทำ Flashdrive ให้ทำ multiboot ได้เข้าตัวหนึ่ง
ทำให้งาน multiboot External Harddisk ของผมมีความหลากหลายขึ้นมาก อยากให้บูทอะไรก็ยัดๆใส่เข้าไป ก็สนุกดี..

โปรแกรมนี้ใช้ง่ายมากๆ ทำไฟล์ ISO ต่างๆ ให้บูทใส่ Flashdrive หรือ External HDD ก็ได้

จะเป็น flashdrive ที่ยังไม่มีอะไรเลยก็ได้
หรือจะเป็น flashdrive ที่มาทำต่อยอดจากของท่านเซียนๆก็ได้
เช่น บทความของท่าน Dawud - MULTIBOOT HDD + EXTERNAL HDD + USB FLASH DRIVE (http://www.gggcomputer.com/index.php?topic=5148.0)
หรือจะต่อยอดจากวิธีการใดก็ได้ ที่ Flashdrive นั้นบูทโดยใช้ Grub4Dos
เนื่องเพราะโปรแกรมนี้ ก็จะสร้างการบูทโดยใช้ความสามารถของ grub4dos นั่นเอง


Concept ของโปรแกรมนี้ก็คือ
การนำไฟล์ ISO ต่างๆ (เช่น Hiren, Ubutun, Kaspersky rescue, ...) มาใส่ไว้ใน flashdrive
แล้วเพิ่มคำสั่งลงไปในไฟล์ menu.lst (ไฟล์เมนูบูทของ grub4dos) ให้เรา โดยที่เราไม่จำเป็นต้องรู้คำสั่งที่ใช้ในการเขียนเมนูบูท


Multibootiso รองรับการสร้างเมนูบูทกับ ISO เหล่านี้
    * Puppy Linux
    * TinyCore 3
    * EasyPeasy 1.6
    * SLAX 6.1.2
    * Kaspersky Rescue Disk 10 - แผ่นแสกนไวรัสของ Kaspersky
    * Peppemint Linux OS
    * EEEBuntu 3.0.1
    * Linux Mint 9
    * Ubuntu 10.04
    * Xubuntu 10.04
    * Kubuntu 10.04
    * Lubuntu 10.04
    * Ubuntu 10.04 Netbook Remix
    * Damn Small Linux
    * SliTaz Linux 3.0
    * Ophcrack XP
    * YlmF OS
    * xPUD (Simple Netbook Distro)
    * FreeDOS
    * Ubuntu Rescue Remix
    * Partition Wizard 5
    * Memtest86+ (Memory Diagnostics)
    * DBAN 2.2.6
    * RIP Linux (Recovery Is Possible)
    * Redo Backup and Recovery 0.9.5
    * Parted Magic 5.1
    * UBCD Ultimate Boot CD (คล้าย Hiren)
    * Offline NT Password + Reg Editor
    * GParted
    * Clonezilla
    * BKO boot.kernel.org
    * Avira AntiVir Rescue CD (AntiVirus Scanner)
    * AVG Rescue CD (Antivirus Scanner)
    * BitDefender Rescue CD (Antivirus Scanner)
    * Jolicloud
    * EASUS Disk Copy
    * BackTrack 4 Final
    * Mandriva Free 2010 Spring
    * Hiren's Boot CD | Zipped ISO (Hiren ของเราก็ทำเป็น ISO ให้บูทได้ด้วย)
    * Windows Vista/7 Install Disk (เอาไฟล์ ISO ของวิน7 มาทำได้ด้วย - ยังไม่ได้ลอง)
    * หมายเหตุ * จริงๆถึงแม้โปรแกรมจะไม่ได้รองรับ ISO อื่นๆ (เช่น Acronis) แต่เราก็สามารถดูคำสั่ง ตย.ที่ใช้ใน menu.lst มาแก้ไขเองได้



เริ่มแรกก็ต้องโหลดตัวโปรแกรมที่เกี่ยวข้องกันก่อน

1. โปรแกรมหลัก MultiBootISO
    ดาวโหลดที่ลิงค์นี้เลยครับ (ไฟล์เหมือนกัน เลือกเอา 1 ลิงค์)
                http://www.pendrivelinux.com/downloads/MultiBootISOs/MultiBootISOs-2.1.2.2.exe
                http://www.mediafire.com/?z6qjxx6t16z1pm3

2. โปรแกรมช่วยจัดเรียงไฟล์ให้ต่อเนื่องเป็นนื้อเดียวกัน (defragment)
    ดาวโหลดที่ลิงค์นี้เลยครับ (ไฟล์เหมือนกัน เลือกเอา 1 ลิงค์)
                http://www.mdtzone.it/Files/WContig.zip
                http://www.mediafire.com/?cn8s45dttdm0wsh



สิ่งที่ต้องเตรียม
1. Flashdrive (หรือ External HDD) ที่ format เป็น FAT32
2. เครื่องคอมที่สามารถบูท Flashdrive ได้
3. ไฟล์ ISO (ถ้าไม่มี โปรแกรม MultibootISO สามารถโหลดจากอินเตอร์เน็ตมาให้ได้)


หมายเหตุ **สำคัญ**

   -  Flashdrive บางชนิดถูก format เป็นแบบ Superfloopy (ไม่มีพาติชั่น)
เมื่อบูทแล้วมีปัญหา จะถูกมองเป็น fd(0) แทนที่จะเป็น hd(0,0)
ในกรณีนี้ ท่านจะต้อง format flashdrive ใหม่ ถึงจะใช้งานได้
(โดยใช้โปรแกรมอย่าง เช่น HP USB Format Tool หรืออื่นๆ)
ซึ่งก็คือ จะต้องให้ bios มอง flashdrive เป็น USB-HDD หรือ USB-ZIP นั่นเอง

    - ไฟล์ ISO เมื่อถูกนำไปใส่ใน flashdrive แล้ว จะต้องต่อเนื่องเป็นเนื้อเดียวกัน จึงจะไม่มีปัญหาในการเรียกใช้งาน
ในกรณีนี้ใช้โปรแกรมช่วยจัดเรียงไฟล์ที่ให้ไว้ในการตรวจสอบและจัดเรียงไฟล์ได้



เริ่มทำกันเลย

0. เสียบ flashdrive ที่ฟอร์แมตแล้ว และรันโปรแกรม MultibootISO

1. รูปแสดงโปรแกรม MultibootISO เมื่อเริ่มต้น


2. เมื่อกดถัดไป โปรแกรมจะถามว่า ต้องการสนับสนุน External HDD หรือไม่ ซึ่งอยู่ในช่วงทดสอบ อาจจะใช้งานไม่ได้ผล


3. ให้เลือกไดร์ฟที่เราจะทำ multiboot
ในที่นี้ ผมเสียบ External HDD ซึ่งถูกแบ่งเป็น 2 ไดร์ฟอยู่ ก็สามารถทำได้ไม่มีปัญหาอะไร



4. พอเลือกไดร์ฟที่จะทำ multiboot เสร็จแล้ว

โปรแกรม จะขึ้นหน้าต่างเตือนให้แน่ใจว่าไดร์ฟที่เราเลือก ในวินโดส์ของเรา (Disk management) เห็นลำดับของ HDD ตรงกับที่โปรแกรมเห็น (ในที่นี้คือเป็นเป็น Disk2 เหมือนกัน)


5.  หลังจากนั้นให้เลือกรายชื่อ OS (ขอเรียกว่า OS ละกันนะครับ ไม่รู้ว่าจะเรียกอะไรดี) ที่ต้องการจะทำ multiboot
ถ้าเราไม่มีไฟล์ iso ของ OS ที่เราเลือก ก็สามารถติ๊กถูกตรงช่องให้ดาวโหลดโปรแกรมจากเน็ตมาได้เลย
หรือ ถ้าเรามีไฟล์ iso อยู่ในเครื่องอยู่แล้ว ก็สามารถ browse ไปที่เก็บไฟล์ iso นั้นได้ (ชื่อไฟล์จะต้องตรงกับที่โปรแกรม MultibootISO แสดง)



6. ถ้าเราติ๊กให้โหลดไฟล์ iso จากเน็ต ก็จะพบหน้าต่างนี้ด้วย ซึ่งกำลังดาวโหลดไฟล์มาให้อยู่ ใช้เวลาสักครู่ใหญ่ๆ



7. เมื่อโปรแกรมโหลดไฟล์เสร็จแล้ว ก็จะคัดลอกไฟล์ iso ไปไว้ที่ flashdrive และสร้าง(หรือแก้ไข) ไฟล์ menu.lst เพื่อเพิ่มเมนูบูทให้ flashdrive ด้วย


8. จากนั้นโปรแกรมจะถามเราว่าต้องการเลือก OS อื่นเพิ่มเติมหรือไม่
ถ้าต้องการก็ตอบ Yes เพื่อไปทำซ้ำในข้อ 5-7
ถ้าไม่ต้องการก็ตอบ No เป็นอันเสร็จสิ้น


9. ถ้าไปดูที่ folder ที่เก็บโปรแกรม MultibootISO จะพบ folder ย่อยที่เก็บไฟล์ iso ที่เราโหลดมาจากเน็ต เก็บอยู่ในเครื่องเรา
เมื่อจะทำ multiboot ครั้งต่อไป ก็ไม่จำเป็นต้องโหลดไฟล์ iso นั้น จากเน็ตมาแล้ว



10. ย้อนกลับมาดู flashdrive ที่เราทำ multiboot เสร็จแล้วกัน
จะเห็นไฟล์ในกรอบสีแดง คือ ไฟล์ iso ที่เราทำมัลติบูทซึ่งถูกโปรแกรมคัดลอกมาเก็บไว้ใน flashdrive ให้อัตโนมัติ
ปล. External HDD ที่ผมเอามาใช้นี้ ถูกทำ multiboot ด้วยวิธีอื่นมาก่อนแล้ว (แต่ก็ใช้ grub4dos เป็น bootloader)
ดังนั้น จึงมีไฟล์ตัวอื่นอยู่ด้วย ซึ่งก็ไม่มีผลอะไรต่อการทำงานของ MultibootISO


11. ลองไปดูที่ไฟล์ menu.lst ที่อยู่ใน flashdrive กัน
จะพบว่ามีชุดคำสั่งสำหรับบูทไฟล์ ISO ที่เราต้องการเพิ่มเข้ามา
ซึ่งแต่ละ OS ก็มีวิธีเพิ่มไม่เหมือนกัน ลองสังเกตวิธีเรียกใช้แต่ละ OS กันดูนะครับ
เช่น Clonezilla เราไม่สามารถบูทเขาจากไฟล์ iso ได้ ต้องแตกมาเป็น folder เก็บไว้ แล้วเรียกไฟล์บูทของเขาให้ถูกต้อง
ภาพนี้ได้ถูกเปลี่ยนขนาด ขนาดต้นฉบับคือ 626x427 ต้องการดูภาพเต็มขนาดคลิกที่นี่...



12.  เสร็จแล้ว เราลองเอา flashdrive ไปบูทกันดูครับ

ส่วนที่อยู่ในกรอบสีเขียวๆ คือที่ผมเพิ่มเข้ามาจากโปรแกรม MultibootISO
ภาพนี้ได้ถูกเปลี่ยนขนาด ขนาดต้นฉบับคือ 726x432 ต้องการดูภาพเต็มขนาดคลิกที่นี่...




เป็นไงครับ แจ๋มดีไหมครับ

ทีนี้อยากจะยัด OS อะไรก็ทำได้ไม่ยากแล้ว
เราจะทำเองโดยไม่ผ่านโปรแกรม multibootiso ก็ได้


อย่าง Acronis โปรแกรม multibootiso ก็ไม่มีให้ ถ้าจะทำเองก็ทำแบบนี้ครับ

1. คัดลอกไฟล์ iso ของ acronis เข้าไปใน flashdrive
(ผมไม่ได้อัพโหลด acronis ไว้ให้นะครับ ไฟล์มันใหญ่ไปหน่อย ถ้าท่านต้องการกันเยอะจริงๆ แจ้งมาอีกที เดี๋ยวผมจะอัพให้นะครับ)

2. เพิ่มคำสั่งดังนี้เข้าไปในไฟล์ menu.lst
(ดัดแปลงเอาจากที่โปรแกรม multibootiso สร้างไว้ให้กับ ultimateCD)

อ้างถึง
title Acronis
find --set-root /acronis.iso
map /acronis.iso (hd32)
map --hook
chainloader (hd32)



ตย. ที่ multibootiso สร้างคำสั่งเมนูบูทไว้ที่ menu.lst

อ้างถึง
title Ultimate Boot CD 5.02
find --set-root /ubcd502.iso
map /ubcd502.iso (hd32)
map --hook
chainloader (hd32)

อ้างถึง
title Acronis
find --set-root /acronis.iso
map /acronis.iso (hd32)
map --hook
chainloader (hd32)

อ้างถึง
# Suggested by Sunny
title YlmF (Windows Like OS)
find --set-root /YlmF_OS_3.0.iso
map /YlmF_OS_3.0.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper persistent iso-scan/filename=/YlmF_OS_3.0.iso floppy.allowed_drive_mask=0 splash
initrd /casper/initrd.img

อ้างถึง
# Suggested by madprofessor
title Boot Clonezilla
find --set-root /clonezilla/live/initrd.img
kernel /clonezilla/live/vmlinuz live-media-path=clonezilla/live bootfrom=/dev/sd boot=live union=aufs noprompt ocs_live_run='ocs-live-general' ocs_live_extra_param='' ocs_live_keymap='' ocs_live_batch='no' ocs_lang='' vga=791 ip=frommedia
initrd /clonezilla/live/initrd.img

อ้างถึง
# Suggested by Deb
title Partition Wizard 5 (Partition Tools)
find --set-root /pwhe5.iso
map /pwhe5.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)

อ้างถึง
title Kaspersky Rescue CD (Virus Scanner)
find --set-root /rescue/rescue.iso
map /rescue/rescue.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)



เอาละครับ.. จบแล้ว