วิธีรวม CD โปรแกรม หลายๆ โปรแกรมเข้าไว้ด้วยกัน (Multi boot ISO file)

หลายๆ คนอาจจะมีความจำเป็นที่จะต้องใช้โปรแกรมอยู่หลายๆ โปรแกรม ทำให้ต้องพกซีดีอยู่หลายๆ แผ่นเพื่อใช้งาน แต่นั้นหลายๆ คนคงคิดว่าไม่สะดวก ทำอย่างไร ที่จะให้มันย่อเหลือแค่แผ่นเดียว และบทความน่ี้ือธิบายวิธีการทำโปรแกรมจากซีดีหลายๆ แผ่นเหล่านี้ ให้สามารถรวมอยู่ในแผ่นโปรแกรมเดียวได้ ปัจจุบันนี้มีโปรแกรมโอเพนซอร์สมากมาย แจกฟรี จากหลายๆ ค่าย ทำให้เรามี CD โปรแกรมมากมายที่แจกฟรี และเราสามารถโหลดเอามาใช้งานได้ ซึ่งหลายๆ คนก็ได้มีโปรแกรมโอเพนซอร์สแจกฟรี มากมายหลายๆ โปรแกรม มาใช้งาน ดังรูปที่ 1

รูปที่ 1

และหลายๆ คนก็ได้พัฒนาโดยนำโปรแกรมเหล่านั้นเข้าไปบรรจุใน Handy drive และถึงแม้ว่ามันจะสดวกขึ้น และน้ำหนักเบาขึ้น แต่ทำให้ยังต้องพก Handy drive หลายๆ อัน เพื่อนำไปใช้งานในจุดประสงค์ท่ี่แตกต่างกัน ซึ่งจะทำให้ต้องยุ่งยากในการพก และการค้นหาอยู่ดี ดังในรูปที่ 2

รูปที่ 2

ซึ่ง Handy drive มีความจุมากกว่าแผ่น CD หรือ DVD มาก หลายๆ คนอาจจะนึกเสียดายพื้นที่จัดเก็บข้อมูลที่มากมาย แต่จะต้องแค่มาบรรจุโปรแกรมเล็กๆ แค่ไม่ Mega byte สำหรับ Handy drive หนึ่งอันเท่านั้น และหลายๆ คนก็คงจะนึกว่าคงจะดีไม่น้อย ถ้าหากว่าให้โปรแกรมทั้งหมดอยู่ใน Handy drive เพียงแค่อันเดียว ดังรูปที่ 3 ซึ่งทำให้เราพกสะดวก ง่ายต่อการค้นหา ประหยัดพื้นที่ในการจัดเก็บได้คุ้มค่ากว่า และที่สำคัญประหยัดเงินไปหลายร้อยบาท กับการที่จะต้องซื้อ Handy drive หลายๆ อัน (วิธีนี้ คนขาย Handy drive คงจะไม่ชอบแน่นอน ^_^)

รูปที่ 3

คุณสามารถศึกษาวิธีการ Format Handy drive โดยศึกษาจากบทความที่ผมได้เขียนไว้ที่ http://www.lanna-oss.org/node/26 <== วิธีการ format และลบ partition ของ USB disk ด้วย command line แต่ในขั้นตอนสำหรับการสร้าง USB multiboot disk นั้นจะมีบางขั้นตอนที่แตกต่าง โดยเราจะทำการ Format ดังนี้ โดยในขั้นแรกให้เราตรวจสอบก่อน ว่าเครื่องเรามองเห็น Handy drive อยู่ใน path ใด ให้เราเสียบ handy drive กับเครื่องคอมพิวเตอร์ของเราดังรูปที่ 4

รูปที่ 4

เมื่อเราทดลองสั่ง lsblk แล้วจะปรากฎดังรูปที่ 5 ซึ่งจะมี ข้อความจะปรากฏดังด้านล่าง ผมเองได้ copy ข้อความมาให้เราดูดังนี้

รูปที่ 5

ouychai@ouychai-HP-Notebook:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 457.3G 0 part / └─sda3 8:3 0 7.9G 0 part [SWAP] sdb 8:16 1 29.3G 0 disk └─sdb1 8:17 1 29.3G 0 part /media/ouychai/MULTIBOOT sr0 11:0 1 1024M 0 rom ouychai@ouychai-HP-Notebook:~$ คำสั่ง lsblk จะเป็นคำสั่งที่ทำให้เราเห็นโครงสร้างของระบบได้ชัดเจน sda ก็คือ Harddisk ใน notebook ของผมเอง ส่วน sdb ก็คือ handy drive แล้วที่โยงลงมาก็คือแต่ละ partition ของแต่ละดิสก์ สำหรับ handy drive ในเครื่องของผม ผมเองเห็นเป็น sdb แต่สำหรับเครื่องบางท่านที่เห็นเป็นอย่างอื่น เวลาที่ผมอธิบายการใช้คำสั่ง กรุณาเปลี่ยน sdb ให้เป็นไปตามเครื่องของท่าน

รูปที่ 6

รูปที่ 6 นี้ อธิบายคำสั่งตั้งแต่การลบ partition สร้าง partition ใหม่ และการ format handy drive โดยตั้งในขั้นแรกให้เราสั่ง sudo fdisk /dev/sdb จากนั้นให้เรากรอก password ที่เราใช้ login เข้าเครื่อง เพื่อให้สิทธิ์อนูญาต สำหรับการเป็นเจ้าของเครื่อง เมื่อเรากรอกแล้ว โปรแกรม fdisk ก็จะรอคำสั่งจากเรา ให้เราสั่ง d เพื่อทำการลบ partition ให้เราลบทั้งหมด ซึ่ง Handy drive ของผมจะมีอยู่เพียง partition เดียว มันก็จะทำการเลือกให้โดยอัตโนมัติ แต่ถ้ามี หลาย partition เราต้องเลือกไปจน partition สุดท้าย เมื่อทำเสร็จลบเสร็จแล้วให้เราสั่งคำสั่ง n ก็จะปรากฎข้อความ Partition type ให้เราเลือก ให้เรากด p แล้วกด Enter ให้เรากด Enter ไปเรื่อย ๆ ตามค่า Default จากนั้นเราสั่ง command a แล้วเราเลือก partition 1 เพื่อให้ partition แรกนั้นเกิดการ active สามารถ boot ได้ เมื่อเราสั่งเสร็จแล้ว ให้เราสั่ง w โปรแกรม fdisk ก็จะทำการ write partition ทั้งหมดลง handy drive ถ้าเราสงสัยว่าโปรแกรม fdisk มีคำสั่งอะไรบ้าง ให้เราพิมพ์ m เพื่อดูคำอธิบาย ถ้าเราจะออกจากโปรแกรม fdisk ให้กด q จากนั้นให้เราสั่ง umount /dev/sdb1 เพื่อยกเลิกการเชื่อมต่อระบบของเรากับ handy drive ให้เราใช้คำสั่ง sudo mkfs.vfat -F 32 -n MULTIBOOT /dev/sdb1 เพื่อทำการ format handy drive เมื่อเราทำการ format เสร็จแล้ว handy drive ของเราก็จะเป็น handy drive ที่ว่างเปล่า ดังรูปที่ 7

รูปที่ 7

จากนั้นให้เราสั่ง sudo mkdir /mnt/usb sudo mount /dev/sdb1 /mnt/USB sudo grub-install --force --no-floppy --removable --boot-directory=/mnt/USB/boot --bootloader-id=multiusb --target=x86_64-efi --efi-directory=/mnt/USB/ /dev/sdb แต่ถ้าท่านใช้ระบบปฎิบ้ติการ Ubuntu ที่เป็น 32 bit ให้ใช้คำสั่ง ด้านล่างนี้แทน grub-install --force --no-floppy --removable --boot-directory=/mnt/USB/boot /dev/sdb ซึ่งจะเป็นดังรูปที่ 8

รูปที่ 8

ผมคัดลอกข้อความมาให้อ่านดังนี้ ouychai@ouychai-HP-Notebook:~$ sudo mkdir /mnt/USB [sudo] password for ouychai: ouychai@ouychai-HP-Notebook:~$ sudo mount /dev/sdb1 /mnt/USB ouychai@ouychai-HP-Notebook:~$ sudo grub-install --force --no-floppy --removable --boot-directory=/mnt/USB/boot --bootloader-id=multiusb --target=x86_64-efi --efi-directory=/mnt/USB/ /dev/sdb Installing for x86_64-efi platform. Installation finished. No error reported. ouychai@ouychai-HP-Notebook:~$ จากนั้นให้เราทำการ Restart เครื่องอีกครั้ง แล้วปรับ bios ให้ boot จาก USB ถ้าหากว่าเราทำสำเร็จ จะปรากฎดังรูปที่ 9 โปรแกรมจะทำการ boot เข้า GRUB prompt พร้อมจะรับคำสั่งที่เป็น GRUB command ซี่งแสดงว่าเราสามารถทำได้แล้ว ถ้าคุณไม่สามารถทำขั้นตอนนี้ได้ ก็ไม่สามารถทำขั้นตอนต่อไปได้ เพราะเป็นขั้นตอนที่สำคัญ และการปรับ bios สำหรับ hardware แต่ละประเภท แต่ละยี่ห้อ อาจจะมีความแตกต่างกัน เราต้องศึกษาข้อมูลของ Hardware แต่ละชนิดเอาเอง ผมเองได้ทำการทดสอบ ตัว boot EFI 64bit กับ notebook ยี่ห้อ HP ยี่ห้ออื่นๆ ก็อาจจะมีความแตกต่างกันไปในแต่ละรุ่น แต่ละยี่ห้อ สำหรับคำสั่ง 32bit นั้นผมทดสอบเอากับ notebook ยี่ห้อ Acer โดยทดสอบจาก ubuntu 14.04 รุ่น 32bit

รูปที่ 9

หลังจากที่เรา Restart เครื่องเพื่อทดสอบการ boot จาก USB แล้ว ให้เรานำ handy drive มาเสียบอีกครั้ง ก็จะเป็นดังรูปที่ 10 ซึ่งจะมีแฟ้มต่างๆ สำหรับการ boot เกิดขึ้นมาแล้ว

รูปที่ 10

จากนั้นให้ท่านคลิ๊กขวา สร้างโฟลเดอร์ที่ชื่อว่า iso ซึ่งชื่อแฟ้มจะเป็นตัวเล็กทั้งหมด ดังรูปที่ 11

รูปที่ 11

CentOS-6.8-x86_64-minimal.iso dban-2.3.0_i586.iso ubuntu-14.04.1-desktop-amd64.iso ubuntu-14.04.1-server-amd64.iso ให้ท่านหาทาง Download ไฟล์ทั้ง 4 ตัวนี้ โดยค้นจาก google และนำไปวางที่ Folder iso ดังรูปที่ 12

รูปที่ 12

จากนั้นให้ทำการ Download file http://www.lanna-oss.org/Download/grub.cfg เอาไปวางที่ /boot/grub ดังรูปที่ 13

รูปที่ 13

ซึ่งข้้นตอนดังในรูปที่ 13 เป็นการขั้นตอนสุดท้าย สำหรับการทำ Multiboot iso ซึ่งถ้าทำสำเร็จ แล้วเราทดสอบด้วยการ Restart เครื่อง เพื่อให้เกิดการ boot จากตัว Handy drive จะมีเมนูให้เราเลือก boot โปรแกรมดังรูปที่ 14

รูปที่ 14

ซึ่งมาถึงขั้นตอนนี้ เราจะสามารถเลือกจากเมนูได้ ว่าเราจะให้โปรแกรมเรา boot เพื่อเรียกใช้โปรแกรมอะไร ถ้าหากว่าคุณฝึกและทดสอบจนชำนาญแล้ว คุณสามารถพัฒนาเมนูใหัใช้โปรแกรมได้หลากหลายกว่านี้ได้ อ้างอิงจาก http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/ http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-... https://www.gnu.org/software/grub/manual/grub.html https://gist.github.com/lkraav/907965 https://help.ubuntu.com/community/Grub2/ISOBoot https://help.ubuntu.com/community/Grub2/ISOBoot/Examples