GotoKnow
  • เข้าระบบ
  • สมัครสมาชิก
  • แผงจัดการ
  • ออกจากระบบ
GotoKnow

การทำลีนุกส์กิ๊กก๊อกของผม

GIGOG มาแล้วจ้า

สืบเนื่องมาจากได้คุยกับคุณอนุชิตหลายเรื่องเกี่ยวกับความฝันในการทำ Opensource ให้ปลุกกระแสในไทยหน่อยคุณอนุชิตก็เลยให้โจทย์มาเกี่ยวกับอยากทำ Linux Live CD ผมก็อยากได้เหมือนกันก็เลยพยายามหาข้อมูลเพื่อมาทำการตอบโจทย์เหล่า นั้น พูดง่าย ๆ สนองความอยากรู้ของผมด้วย ผมก็เลยหาข้อมูลเป็นการยกใหญ่ พอดีผมมี Kbuntu Linux ที่เป็น Distribution ต่ออีกทีจาก ubuntu ผมก็เลยลองหาข้อมูลการทำ LIVE CD ก็เลยเมามันไม่ได้ทำอะไรมา 2 วันเต็ม ๆ นอกจาก Kbuntu (แล้วหน้าที่การงานก็เริ่มมืดมน555) คำตอบที่ผมได้ผมสามารถยัด Package ทั้ง Binary และ .deb ที่เป็น format ของ debian ผมได้ใน Live CD ของผมอย่างลงตัว (3 วันกว่าแนะเล่นเอาปวดหัวเหมือนกัน) ผมยัด xampp ใส่ให้คุณอนุชิตตามความต้องการแล้ว พร้อมกันนี้คุณอนุชิตยังช่วยผมเขียน script สำหรับ run xampp อัตโนมัติใน Live CD ของผมด้วย อืมมาเข้าเรื่องการทำ Live CD จาก Kbuntu เลยครับผม

ตอนนี้ก็ศึกษาขั้นตอนจนสามารถทำการ remaster และเพิ่ม package ได้แล้วโดยมีขั้นตอนต่าง ๆ ดังนี้
1. คัดลอก LiveCD
ทำการ download iso ของ kbuntu-desktop-i386.iso หรือไม่ก็ copy image เป็น iso จากแผ่นครับผมแต่ต้องใช้ Linux ทำนะครับผม ไม่งั้นได้ files ไม่ครบครับผม กำหนดค่าไดเรคทอรีที่จะใช้ในการพัฒนา 
ผมสร้าง Direcotory remaster ใน home ครับผม
 
(export work=~/remaster)

#mkdir /home/remaster
#export work= /home/remaster

จากนั้นทำการ mount และคัดลอกข้้อมูลใน iso ลงในไดเรคทอรี่ที่ใช้พัฒนา

#mkdir $work/cdrom-org
#mount -o loop kbuntu-desktop-i386.iso $work/cdrom-org
#mkdir $work/cdrom-cust
#cp -a $work/cdrom-org $work/cdrom-cust

2. Mount compressed filesystem
ไฟล์ระบบของ ubuntu livecd นั้น ถูกบีบอัดด้วย squashfs

#mkdir $work/filesystem.org
#mount -t squashfs -o loop $work/cdrom-org/casper/filesystem.squashfs $work/filesystem.org

3. สร้าง image สำหรับใช้ในการปรับแต่ง compress filesystem
ขั้นตอนนี้ต้องการเนื้อที่ว่างประมาณ 2 GB ในการสร้างไฟล์ image

#dd if=/dev/zero of=$work/filesystem.img bs=1M count=2147
#mke2fs $work/filesystem.img
#mkdir $work/filesystem.cust
#mount -o loop $work/filesystem.img $work/filesystem.cust

ทำการคัดลอกไฟล์ระบบเดิมมายังไฟล์ image ที่เราสร้างขึ้นมาใหม่

#cp -af $work/filesystem.org/. $work/filesystem.cust
#umount $work/filesystem.org

4. Chroot เพื่อทำการแก้ไขระบบต่าง ๆ

#cp /etc/resolv.conf $work/filesystem.cust/etc/
#mount -t proc -o bind /proc $work/filesystem.cust/proc
#chroot $work/filesystem.cust /bin/bash

ขณะนี้เราอยู่ในระบบที่จะต้องการแก้ไข ในตัวอย่างนี้ผมจะทำการติดตั้ง ktips

#apt-get update
#apt-get install ktips
#apt-get clean
#exit

ขณะนี้ได้ออกจากระบบที่ทำการแก้ไขแล้ว

#umount $work/filesystem.cust/proc
#rm $work/filesystem.cust/etc/resolv.conf

5. แก้ไขเสร็จแล้ว
ต้องอัพเดทรายการ package และทำการ ลบข้อมูลที่ไม่ได้ใช้ออกจากระบบ
#
chroot $work/filesystem.cust dpkg-query -W --showformat='${Package} ${Version}\n' \ > $work/iso-cust/casper/filesystem.manifest
#dd if=/dev/zero of=$work/filesystem.cust/dummyfile
#rm $work/filesystem.cust/dummyfile

6. บีบอัดไฟล์ระบบ
#rm $work/cdrom-cust/casper/filesystem.squashfs
#cd $work/filesystem.cust
#mksquashfs . $work/cdrom-cust/casper/filesystem.squashfs
#cd ../
#umount filesystem.cust

7. สร้าง iso ไฟล์
#cd $work/cdrom-cust
#find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt
#cd ../
#mkisofs
-o kubuntu-desktop-cust.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V "Custom Kbuntu Desktop" -cache-inodes -J -l iso-cust

เมื่อเสร็จแล้วจะได้ไฟล์ iso มา ก็นำไปเขียนลงแผ่น cd เท่านี้เราก็จะได้ แผ่น ubuntu livecd ของเราเองแล้วครับ เท่านี้เองก็เสร็จแล้วครับผม แต่มีข้อย่อย ๆ อีกเยอะไว้จะมาเล่าให้ฟังครับผม ไป Build ต่อดีกว่าตอนนี้ได้ xampp เข้าไปแล้วเย้ ๆ ดีใจ ๆ

บันทึกนี้เขียนที่ GotoKnow โดย 

คำสำคัญ (keywords): linuxการพัฒนาlivecd
หมายเลขบันทึก: 77753
เขียน:
แก้ไข:
ความเห็น: 7
อ่าน:
สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ

ความเห็น (7)

สวัสดีรค่ะ คุณวุฒิพร

  • เห็นแบบนี้คงต้องลองทำของตัวเองบ้างแล้วค่ะ
  • ถ้ามีปัญหาจะมาขอคำปรึกษานะคะ
  • ขอบคุณค่ะ

เยี่ยมมากเลยครับ ขอสนับสนุนครับ

อืมม... แต่ผมใช้ GNOME นะสิ LiveCD ของ GigGoK จะมี version GNOME ให้ไหมครับ ไม่เป็นไรคอยได้ครับ :-)

ิbuild usplash ของ Giggok ให้แล้วนะครับ เป็น share object (.so) ส่วน Art Work ที่เหลือจะค่อยๆ ทะยอยทำเพราะผมไม่ได้ใช้ KDE น่ะ ต้องงมหาไฟล์กันใน pool ล่ะ อิอิ :)
ดร.ธวัชชัย ปิยะวิฒน์ ตอนนี้ผมกำลังทำในส่วนของการตัด Package ที่จำเป็นออกแล้วเอา webservice ใส่ลงไปครับผม รวมถึง CMS ต่าง ๆ กิ๊กกอกออก Gnome แน่ครับผม version นี้ผมขอไปหัดใช้ Gnome ก่อนนะครับผม หรือไม่ก็ขอข้อมูลจากผู้ใช้ Gnome นะครับผม

มาอ่านเจอบทความนี้โดยความบังเอิญ รู้สึกคุ้นๆตาว่าเคยเห็นมาก่อน

คุณวุฒิพรครับ วิธีการคัดลอกมาโดยไม่อ้างอิงถึงผู้เผยแพร่ความรู้ (ก็อปมาแทบทุกตัวอักษร) มันจะน่าเกลียดไปกระมังครับ ... ไม่ดี ไม่ดี

http://prach-public.blogspot.com/2006_09_01_prach-public_archive.html

 

ขอบคุณครับผม กับ Comment ของอาสมเจตน์นะครับผม ผมก็ให้ Credit web http://prach-public.blogspot.com/2006_09_01_prach-public_archive.html ของคุณ Prach Pongpanich  นะครับผม ที่ได้เผยแพร่ข้อมูลเหล่านี้ก่อนผม ก็ขอยก Credit ให้นะครับผม แต่มันก็ Build ตามเขาก็อาจจะไม่ได้นะครับผม มันมีวิธีอีกเยอะไว้จะมาเล่าต่อครับผม รายละเอียดที่เห็นผมก็ไปเอาข้อมูลมาจาก
https://help.ubuntu.com/community/LiveCDCustomization
ครับผม

ดีครับ พี่วุฒิ โครงการใหญ่โตเชียวนะครับ ปั้นเป็นรูปร่างยัง ส่งตัว close beta มาให้ลองมั่งนะ