Difference between revisions of "Membuat Distro Sendiri Secara Manual"

From OnnoWiki
Jump to navigation Jump to search
 
(20 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
# Harddisk kosong sebesar 3 – 5 GB (semakin besar ruang kosong, semakin dianjurkan)
 
# Harddisk kosong sebesar 3 – 5 GB (semakin besar ruang kosong, semakin dianjurkan)
 
# Memori 512MB dan swap 1 GB (semakin besar memori, semakin dianjurkan)
 
# Memori 512MB dan swap 1 GB (semakin besar memori, semakin dianjurkan)
# Paket pendukung squashfs-tools, dchroot dan mkisofs
+
# Paket pendukung squashfs-tools, dchroot, genisoimage dan mkisofs
 
# Program Virtualisasi semacam Qemu, VirtualBox, VM Ware dan lainya
 
# Program Virtualisasi semacam Qemu, VirtualBox, VM Ware dan lainya
 
# Berkas ISO Ubuntu Live CD Desktop  
 
# Berkas ISO Ubuntu Live CD Desktop  
Line 14: Line 14:
 
Instalasi paket pendukung
 
Instalasi paket pendukung
  
  $ sudo su -
+
  $ sudo aptitude install squashfs-tools genisoimage qemu dchroot
# apt-get install squashfs-tools dchroot mkisofs qemu
 
  
 
Load module squashfs  
 
Load module squashfs  
  
  # modprobe squashfs
+
  $ sudo modprobe squashfs
  
 
Bisa dilihat apakah sudah terload dengan baik menggunakan perintah
 
Bisa dilihat apakah sudah terload dengan baik menggunakan perintah
  
  # lsmod
+
  $ lsmod
 +
 
 +
akan keluar kira-kira
 +
 
 +
Module                  Size  Used by
 +
squashfs              46344  0
 +
 
  
  
 
==Copy CD Ubuntu LiveCD Desktop Referensi==
 
==Copy CD Ubuntu LiveCD Desktop Referensi==
  
  # mkdir /mnt/cdrom
+
  $ mkdir ~/live
  # mount -o loop ubuntu-9.04-desktop-i386.iso /mnt/cdrom/
+
$ mv ubuntu-9.04-desktop-i386.iso ~/live
  # mkdir extract-cd
+
$ cd ~/live
  # rsync --exclude=/casper/filesystem.squashfs -a /mnt/cdrom/ extract-cd
+
$ mkdir mnt
 +
  $ sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt
 +
  $ mkdir extract-cd
 +
  $ rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
  
  
 
==Ekstrak Sistem Desktop==
 
==Ekstrak Sistem Desktop==
  
  # mkdir squashfs
+
  $ mkdir squashfs
  # mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
+
  $ sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
 +
 
 +
Extract isi folder squashfs ke folder edit
 +
 
 +
$ mkdir edit
 +
$ sudo cp -a squashfs/* edit/
 +
 
 +
 
 +
==Persiapan dan Menggunakan chroot==
 +
 
 +
Jika dibutuhkan sambungan jaringan
 +
 
 +
$ sudo cp /etc/resolv.conf edit/etc/
 +
 
 +
Tergantung konfigurasi kita mungkin dibutuhkan untuk mengcopy file host
 +
 
 +
$ sudo cp /etc/hosts edit/etc/
 +
 
 +
$ sudo mount --bind /dev/ edit/dev
 +
$ sudo chroot edit
 +
# mount -t proc none /proc
 +
# mount -t sysfs none /sys
 +
 
 +
Langkah di atas akan mount direktori penting dari system utama kita - jika kita di waktu kemudian ingin men-delete directory edit/, pastikan kita umount directory /proc dan /sys, jika tidak maka system utama kita akan tidak bisa digunakan paling tidak sampai harus di reboot ulang.
 +
 
 +
Untuk mengatasi isu local dan untuk dapat mengimport GPG keys
 +
 
 +
# export HOME=/root
 +
# export LC_ALL=C
 +
 
 +
 
 +
==Customisasi==
 +
 
 +
===apt-get===
 +
 
 +
Untuk melihat aplikasi yang terinstall dapat dilihat menggunakan perintah
 +
 
 +
# dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
 +
 
 +
Jika kita ingin membuat sebuah paket program (nama-paket-program), lakukan menggunakan perintah berikut
 +
 
 +
# aptitude purge nama-paket-program
 +
 
 +
 
 +
===Mengubah background GNOME===
 +
 
 +
File background ada di /usr/share/backgrounds. Copy file png ke directory tersebut, atur owner dan hak akses edit file:
 +
 
 +
# /usr/share/gnome-background-properties/ubuntu-wallpapers.xml dan
 +
# /usr/share/gconf/defaults/16_ubuntu-artwork atau file lain di directory yang sama. Dengan mengubah tulisan /usr/share/backgrounds/warty-final-ubuntu.png ke file yang kita inginkan.
 +
 
 +
Kemudian mengubah atau menambahkan atribut ke file konfigurasi lain, seperti, /var/lib/gconf/debian.defaults/%gconf-tree.xml atau /etc/gconf/gconf.xml.defaults/%gconf-tree.xml.
 +
 
 +
 
 +
===Mengubah nilai gconf (fonts, panels dll.)===
 +
 
 +
Untuk mengubah atribut gconf, kita harus menambahkan nilai yang kita inginkan ke file /etc/gconf/gconf.xml.defaults/%gconf-tree.xml. Menambahkan sebuah nilai ke file tersebut akan mengubah nilai default dari Gnome atau aplikasi lainnya, oleh karenanya kita dapat mengubah fonts, backgrounds, themes, cursors dll.
 +
 
 +
Dari pada mengubah file tersebut degnan gedit atau text editor lainnya, kita dapat menggunakan gconftool-2 dalam lingkungan chroot, jalankan menggunakan perintah berikut:
 +
 
 +
# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey "yourvalue"
 +
 
 +
dimana string, yourkey dan where string, yourkey dan yourvalue harus merupakan type, key dan nilai dari yang kita ingin ubah ...
 +
 
 +
 
 +
 
 +
 
 +
==Advanced==
 +
 
 +
===Ubah sources.list===
 +
 
 +
Kadangkala kita perlu mengubah isi sources.list agar menggunakan repository lokal di jaringan yang kita managed. Ubah file sources.list dalam lingkungan chroot
 +
 
 +
# cd /etc/apt
 +
# cp sources.list sources.list.original
 +
# vi /etc/apt/sources.list
 +
 
 +
Isi agar menggunakan [[Membuat Repository Ubuntu Lokal dari hasil Download Repository | repository lokal]] di jaringan kita, misalnya,
 +
 
 +
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty main multiverse restricted universe
 +
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-updates main multiverse restricted universe
 +
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-security main multiverse restricted universe
 +
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-backports main multiverse restricted universe
 +
 
 +
Update repository
 +
 
 +
# apt-get update
 +
 
 +
===Membuat Server Aplikasi di LiveCD===
 +
 
 +
Selama dalam lingkungan chroot, untuk membuat Server aplikasi kita dapat mengikuti langkah yang normal dalam membuat server aplikasi seperti di jelaskan dalam [[Linux Howto]], misalnya
 +
 
 +
* [[Instalasi Apache]]
 +
* [[Instalasi Wordpress]]
 +
* [[instalasi Squirrelmail]]
 +
* [[Instalasi MediaWiki]]
 +
* [[Instalasi Data Wikipedia dari Kambing]]
 +
 
 +
Pastikan kita dalam lingkungan chroot.
 +
 
 +
===Live CD Kernel===
 +
 
 +
Jika kita ingin meng-customized boot proses, kita dapat mengubah kernel livecd yang digunakan, dengan mengcopykan vmlinz dan initrd yang kita inginkan dengan yang kita dapati di extract-cd/casper. Misalnya,
 +
 
 +
$ sudo cp edit/boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz
 +
$ sudo cp edit/boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
==Cleanup==
 +
 
 +
Pastikan untuk mengubah semua file temporary yang tidak lagi dibutuhkan karena ruang dalam CD sangat terbatas. Beberapa contoh paket / file yang dapat di bersihkan menggunakan
 +
 
 +
# aptitude clean
 +
 
 +
Atau men-delete temporary file
 +
 
 +
# rm -rf /tmp/* ~/.bash_history
 +
 
 +
Atau konfigurasi name server
 +
 
 +
# rm /etc/resolv.conf
 +
 
 +
dari dalam lingkungan chroot.
 +
 
 +
Lakukan juga umount (unmount) berbagai file sistem dan keluar dari chroot
 +
 
 +
# umount /proc
 +
# umount /sys
 +
# exit
 +
$ sudo umount edit/dev
 +
 
 +
Catatan: jika "umount /proc" gagal, coba "umount -lf /proc"
 +
 
 +
 
 +
 
 +
==Membuat ISO CD==
 +
 
 +
Membuat Manifest
 +
 
 +
$ chmod +w extract-cd/casper/filesystem.manifest
 +
$ sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
 +
$ sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
 +
$ sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
 +
 
 +
Compress filesystem
 +
 
 +
$ sudo rm extract-cd/casper/filesystem.squashfs
 +
$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma
 +
 
 +
Catatan: opsi -nolzma hanya ada dari Hardy
 +
 
 +
Set nama image di extract-cd/README.diskdefines
 +
 
 +
$ sudo vim extract-cd/README.diskdefines
 +
 
 +
Remove old md5sum.txt dan hitung ulang md5 yang baru
 +
 
 +
$ sudo -s
 +
$ rm extract-cd/md5sum.txt
 +
 
 +
atau
 +
 
 +
$ cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.draft
 +
 
 +
$ cat extract-cd/md5sum.draft | grep -v md5sum.txt | grep -v isolinux/boot.cat > extract-cd/md5sum.txt
 +
$ rm extract-cd/md5sum.draft
 +
$ exit
 +
 
 +
Buat iso
 +
 
 +
$ cd extract-cd
 +
$ sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-9.04.1-desktop-i386-custom.iso .
 +
 
 +
 
 +
==Percobaan LiveCD Baru==
 +
 
 +
Percobaan dapat menggunakan emulator qemu
 +
 
 +
$ qemu -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512
 +
 
 +
Atau jika kita mempunyai hardware accelerator untuk kvm dapat menggunakan
 +
 
 +
$ kvm -cdrom ubuntu-9.04-desktop-i386-custom.iso -boot d -m 512
 +
 
 +
Kita juga dapat mencoba menggunakan virtualbox-ose, yang merupakan open source software yang dapat di ambil dari Ubuntu universe repository.
 +
 
 +
 
 +
==Burning image CD==
 +
 
 +
Simple! lakukan
 +
 
 +
$ cdrecord dev=/dev/cdrom ubuntu-9.04-desktop-i386-custom.iso
 +
 
  
  
Line 43: Line 248:
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 +
* https://help.ubuntu.com/community/LiveCDCustomization
 +
* http://surabaya.linux.or.id/archives/2008/03/02/hacking-livecd-ubuntu.html
 
* [[Remastering Ubuntu]]
 
* [[Remastering Ubuntu]]
 +
* [[Membuat Distro Sendiri Secara Manual]]
 +
* [[Membuat sendiri Distro SchoolOnffLine]]
 +
* [[Distro SchoolOnffLine]]
 
* [[Linux Howto]]
 
* [[Linux Howto]]

Latest revision as of 06:00, 8 September 2009

Di sini akan di jelaskan teknik membuat LiveCD berbasis Ubuntu. Anda dapat menambah, mengurangi paket program sehingga LiveCD tersebut lebih cocok untuk anda.


Kebutuhan Sistem Pendukung

  1. Harddisk kosong sebesar 3 – 5 GB (semakin besar ruang kosong, semakin dianjurkan)
  2. Memori 512MB dan swap 1 GB (semakin besar memori, semakin dianjurkan)
  3. Paket pendukung squashfs-tools, dchroot, genisoimage dan mkisofs
  4. Program Virtualisasi semacam Qemu, VirtualBox, VM Ware dan lainya
  5. Berkas ISO Ubuntu Live CD Desktop

Persiapan

Instalasi paket pendukung

$ sudo aptitude install squashfs-tools genisoimage qemu dchroot

Load module squashfs

$ sudo modprobe squashfs

Bisa dilihat apakah sudah terload dengan baik menggunakan perintah

$ lsmod

akan keluar kira-kira

Module                  Size  Used by
squashfs               46344  0 


Copy CD Ubuntu LiveCD Desktop Referensi

$ mkdir ~/live
$ mv ubuntu-9.04-desktop-i386.iso ~/live
$ cd ~/live
$ mkdir mnt
$ sudo mount -o loop ubuntu-9.04-desktop-i386.iso mnt
$ mkdir extract-cd
$ rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd


Ekstrak Sistem Desktop

$ mkdir squashfs
$ sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs

Extract isi folder squashfs ke folder edit

$ mkdir edit
$ sudo cp -a squashfs/* edit/


Persiapan dan Menggunakan chroot

Jika dibutuhkan sambungan jaringan

$ sudo cp /etc/resolv.conf edit/etc/

Tergantung konfigurasi kita mungkin dibutuhkan untuk mengcopy file host

$ sudo cp /etc/hosts edit/etc/
$ sudo mount --bind /dev/ edit/dev
$ sudo chroot edit
# mount -t proc none /proc
# mount -t sysfs none /sys

Langkah di atas akan mount direktori penting dari system utama kita - jika kita di waktu kemudian ingin men-delete directory edit/, pastikan kita umount directory /proc dan /sys, jika tidak maka system utama kita akan tidak bisa digunakan paling tidak sampai harus di reboot ulang.

Untuk mengatasi isu local dan untuk dapat mengimport GPG keys

# export HOME=/root
# export LC_ALL=C


Customisasi

apt-get

Untuk melihat aplikasi yang terinstall dapat dilihat menggunakan perintah

# dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less

Jika kita ingin membuat sebuah paket program (nama-paket-program), lakukan menggunakan perintah berikut

# aptitude purge nama-paket-program


Mengubah background GNOME

File background ada di /usr/share/backgrounds. Copy file png ke directory tersebut, atur owner dan hak akses edit file:

  1. /usr/share/gnome-background-properties/ubuntu-wallpapers.xml dan
  2. /usr/share/gconf/defaults/16_ubuntu-artwork atau file lain di directory yang sama. Dengan mengubah tulisan /usr/share/backgrounds/warty-final-ubuntu.png ke file yang kita inginkan.

Kemudian mengubah atau menambahkan atribut ke file konfigurasi lain, seperti, /var/lib/gconf/debian.defaults/%gconf-tree.xml atau /etc/gconf/gconf.xml.defaults/%gconf-tree.xml.


Mengubah nilai gconf (fonts, panels dll.)

Untuk mengubah atribut gconf, kita harus menambahkan nilai yang kita inginkan ke file /etc/gconf/gconf.xml.defaults/%gconf-tree.xml. Menambahkan sebuah nilai ke file tersebut akan mengubah nilai default dari Gnome atau aplikasi lainnya, oleh karenanya kita dapat mengubah fonts, backgrounds, themes, cursors dll.

Dari pada mengubah file tersebut degnan gedit atau text editor lainnya, kita dapat menggunakan gconftool-2 dalam lingkungan chroot, jalankan menggunakan perintah berikut:

# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey "yourvalue"

dimana string, yourkey dan where string, yourkey dan yourvalue harus merupakan type, key dan nilai dari yang kita ingin ubah ...



Advanced

Ubah sources.list

Kadangkala kita perlu mengubah isi sources.list agar menggunakan repository lokal di jaringan yang kita managed. Ubah file sources.list dalam lingkungan chroot

# cd /etc/apt
# cp sources.list sources.list.original
# vi /etc/apt/sources.list

Isi agar menggunakan repository lokal di jaringan kita, misalnya,

deb ftp://192.168.0.2/pub/repo-9.04/ jaunty main multiverse restricted universe
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-updates main multiverse restricted universe
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-security main multiverse restricted universe
deb ftp://192.168.0.2/pub/repo-9.04/ jaunty-backports main multiverse restricted universe

Update repository

# apt-get update

Membuat Server Aplikasi di LiveCD

Selama dalam lingkungan chroot, untuk membuat Server aplikasi kita dapat mengikuti langkah yang normal dalam membuat server aplikasi seperti di jelaskan dalam Linux Howto, misalnya

Pastikan kita dalam lingkungan chroot.

Live CD Kernel

Jika kita ingin meng-customized boot proses, kita dapat mengubah kernel livecd yang digunakan, dengan mengcopykan vmlinz dan initrd yang kita inginkan dengan yang kita dapati di extract-cd/casper. Misalnya,

$ sudo cp edit/boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz
$ sudo cp edit/boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz




Cleanup

Pastikan untuk mengubah semua file temporary yang tidak lagi dibutuhkan karena ruang dalam CD sangat terbatas. Beberapa contoh paket / file yang dapat di bersihkan menggunakan

# aptitude clean

Atau men-delete temporary file

# rm -rf /tmp/* ~/.bash_history

Atau konfigurasi name server

# rm /etc/resolv.conf

dari dalam lingkungan chroot.

Lakukan juga umount (unmount) berbagai file sistem dan keluar dari chroot

# umount /proc
# umount /sys
# exit
$ sudo umount edit/dev

Catatan: jika "umount /proc" gagal, coba "umount -lf /proc"


Membuat ISO CD

Membuat Manifest

$ chmod +w extract-cd/casper/filesystem.manifest
$ sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
$ sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
$ sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop

Compress filesystem

$ sudo rm extract-cd/casper/filesystem.squashfs
$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma

Catatan: opsi -nolzma hanya ada dari Hardy

Set nama image di extract-cd/README.diskdefines

$ sudo vim extract-cd/README.diskdefines

Remove old md5sum.txt dan hitung ulang md5 yang baru

$ sudo -s
$ rm extract-cd/md5sum.txt

atau

$ cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.draft
$ cat extract-cd/md5sum.draft | grep -v md5sum.txt | grep -v isolinux/boot.cat > extract-cd/md5sum.txt
$ rm extract-cd/md5sum.draft
$ exit

Buat iso

$ cd extract-cd
$ sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-9.04.1-desktop-i386-custom.iso .


Percobaan LiveCD Baru

Percobaan dapat menggunakan emulator qemu

$ qemu -cdrom ubuntu-9.04.1-desktop-i386-custom.iso -boot d -m 512

Atau jika kita mempunyai hardware accelerator untuk kvm dapat menggunakan

$ kvm -cdrom ubuntu-9.04-desktop-i386-custom.iso -boot d -m 512

Kita juga dapat mencoba menggunakan virtualbox-ose, yang merupakan open source software yang dapat di ambil dari Ubuntu universe repository.


Burning image CD

Simple! lakukan

$ cdrecord dev=/dev/cdrom ubuntu-9.04-desktop-i386-custom.iso



Pranala Menarik