PRAKTIKUM SISTEM OPERASI : PANDUAN REMASTERING UBUNTU DENGAN SQUASHFS-TOOLS Rully Satri Yudha 1, M. Agung Nugroho, S. Kom 2 STMIK AMIKOM YOGYAKARTA Jl. Ringroad Utara, Condong catur, Depok, Sleman, Yogyakarta
[email protected] 1,
[email protected] 2
TUJUAN REMASTERING Tujuan kostumisasi Ubuntu Desktop (live) CD yang diharapkan adalah : 1. Membuat linux/Ubuntu distribusi anda sendiri; 2. Menunjukkan kelebihan aplikasi didalamnya; 3. Menghapus paket aplikasi; 4. Menambahkan paket aplikasi; 5. Update paket aplikasi; 6. Mengubah default sistem Desktop (theme, icons, desktop background, panels,halaman browser, dll).
KEBUTUHAN SISTEM 1. Minimal 5-7 GB free space; 2. Minimal 512 MB RAM dan 1 GB swap (recommended); 3. Paket squashfs-tools; 4. Paket genisoimage, yang mendukung mkisofs; 5. Sebuah Ubuntu kernel dengan dukungan squashfs (Ubuntu 7.04 atau yang terbaru); 6. QEMU/KVM, VirtualBox atau VMware untuk testing (optional).
PROSES 1. Pertama, pastikan anda sudah meng-install tool yang dibutuhkan; $ sudo aptget install squashfstools
2. Contoh di sini menggunakan ubuntu-8.10-desktop-i386.iso 3. Move atau copy ke dalam sebuah direktori kosong; $ mkdir project $ mv ubuntu8.10desktopi386.iso project/ $ cd project/
4. Buat direktori "cdrom", "temp", dan "work ". $ mkdir cdrom temp work
EKSTRAK CD CONTENT 1. Mount file .iso ; $ sudo mount o loop ubuntu8.10desktopi386.iso temp
2. Ekstrak isi .iso ke dalam direktori "cdrom"; $ sudo rsync av temp/ cdrom/
3. ubah akses permission seluruh direktori; $ sudo chmod 777 R cdrom/ 4. lakukan unmounting. $ sudo umount temp
MEMBUAT VIRTUAL IMAGE 1. Melakukan disk dump, untuk membuat image; $ sudo dd if=/dev/zero of=livecdfs.ext2 bs=1M count=4000
2. Memformat image. $ sudo mke2fs livecdfs.ext2
MENGEKSTRAK DESKTOP SISTEM 1. Mount squashfs filesystem; $ mkdir squashfs $ sudo mount t squashfs o loop cdrom/casper/filesystem.squashfs temp/
2. Mounting image virtual; $ sudo mount o loop livecdfs.ext2 work/
3. Meng-copy isi dari direktori temp ke dalam direktori "work "; $ sudo cp av temp/* work/
4. Unmounting direktori "temp". $ sudo umount temp
PERSIAPAN DAN CHROOT 1. 1. Jika anda membutuhkan koneksi jaringan dengan chroot; $ sudo cp /etc/resolv.conf work/etc/
2. 2. Tergantung pada konfigurasi, anda juga mungkin perlu untuk menyalin file hosts; $ sudo cp /etc/hosts work/etc/ $ sudo mount bind /dev/ work/dev $ sudo mount t proc o bind /proc work/proc/
3. Chroot kedalam direktori "work ; $ sudo chroot work
4. Jalankan dalam mode Chroot; # mount t proc none /proc # mount t sysfs none /sys
(ini penting me-mounting direktori sistem host Anda - jika Anda kemudian memutuskan untuk menghapus mengedit / direktori, maka pastikan untuk unmount sebelum melakukan hal tersebut, jika Anda akan menjadi host sistem akan tidak berguna setidaknya untuk sementara sampai reboot) 5. Untuk menghindari masalah-masalah lokal, impor GPG key # export HOME=/root # export LC_ALL=C
KOSTUMISASI Apt-get 1. Untuk melihat paket instalasi berdasarkan ukurannya; # dpkgquery W showformat='${InstalledSize} ${Package}\n' | sort nr | less
2. Ketika anda ingin menghapus paket, ingatlah untuk selalu menggunakan opsi "purge"; # aptget remove purge namapaket
Kostumisasi background Pada umumnya file background berada pada "/usr/share/backgrounds". Copy file gambar anda kedalamnya, pilih owner dan file access, dan edit file berikut : •
/usr/share/gnomebackgroundproperties/ubuntuwallpapers.xml
•
/usr/share/gconf/defaults/16_ubuntuartwork
atau file yang lain didalam direktori yang sama. Dengan merubah string /usr/share /backgrounds/wartyfinal-ubuntu.png langsung kedalam file anda. Terkadang juga merubah atau menambahkan atribut kedalam file konfigurasi yang lain seperti : •
"/var/lib/gconf/debian.defaults/%gconftree.xml
•
"/etc/gconf/gconf.xml.defaults /%gconftree.xml").
Merubah nilai gconf (font, panel dll.) Untuk membuat perubahan pada atribut gconf anda harus menambahkan nilai yang dapat anda tambahkan pada file "/etc/gconf/gconf.xml.defaults/%gconf- tree.xml". Tambahkan sebuah nilai dalam file tersebut akan merubah nilai default dari Gnome atau aplikasi yang lain, jadi anda dapat merubah font, background, themes, cursor, dll. Daripada anda merubah file dengan gedit atau text editor yang lain, anda dapat menggunakan gconftool-2, dibawah lingkungan chroot, jalankan baris perintah berikut : $ gconftool2 direct –configsource xml:readwrite:/etc/gconf/gconf.xml.defaults type string set
Dimana string, key anda dan value anda harus diketik sesuai key dan value yang anda ingin rubah.
Membuat beberapa perubahan gconf Editing gconf dengan setting tiap value terpisah akan memakan banyak waktu. Ada cara yang lebih mudah : Buatlah sebuah user "test" dan sesuaikan pengaturan yang anda inginkan. Jalankan $ gconftool2 dump /the/settings/branch/you/need > yournewsettings.xml $ sudo chown root:root yournewsettings.xml $ sudo mv yournewsettings.xml work/yournewsettings.xml
kemudian, di dalam chroot environment, jalankan perintah: $ gconftool2 direct configsource xml:readwrite:/etc/gconf/gconf.xml.defaults load yournewset $ rm yournewsettings.xml
Dengan cara ini Anda dapat mengimpor seluruh cabang /apps/panel - semua pengaturan untuk Gnome panels.
Merubah default bahasa pada gfxboot Customisasi ini harus dilakukan di luar chroot. $ sudo aptget install dpkgdev $ sudo aptget source gfxbootthemeubuntu gfxboot $ cd gfxbootthemeubuntu*/ $ make DEFAULT_LANG=fi $ sudo cp af boot/* ../cdrom/isolinux/
Ubah "fi" kedalam pilihan locale anda. Catatan bahwa ini tidak mengubah bahasa yang tersedia dalam menu F2. Untuk info lebih lanjut gfxboot tentang customisasi, lihat Ubuntu Customization Kit. Sebuah cara lain untuk mengubah standar bahasa gfxboot tanpa membuat ulang paket adalah membuat nama file lang dalam direktori isolinux berisi nama lokal Anda.
Batasan kostumisasi Setelah customisasi pastikan bahwa tidak ada user dengan UID >= 1000. Dengan kata lain image anda tidak akan boot karena tiak ada initial. User tersedia (lihat /usr/lib/user-setup/functions.sh dan /usr/lib/user-setup/user-setup-apply). Ketika dalam lingkungan chroot: # grep '^[^:]*:[^:]*:[19][09][09][09]:' /etc/passwd
# grep '^[^:]*:[^:]*:[12][09][09][09][09]:' /etc/passwd
Jika anda mendapatkan banyak UID >=1000, coba untuk merubah UID-nya : # usermod u 500 $hit
KOSTUMISASI TINGKAT LANJUT Live CD Kernel Jika anda ingin meng-customisasi proses boot, anda dapat merubah livecd kernel, dengan meng-copy vmlinuz dan initrd anda tempatkan di tempat salah satu direktori yang dapat anda cari di "cdrom/casper". $ sudo cp work/boot/vmlinuz2.6.1526k7 cdrom/casper/vmlinuz $ sudo cp work/boot/initrd.img2.6.1526k7 cdrom/casper/initrd.gz
Catatan: dalam hal ini memakai kernel 2.6.15-26-k7. Kernel yang anda gunakan bisa saja berbeda dari kernel di atas.
Boot init Anda harus meng-edit file edit/usr/share/initramfs-tools/scripts/casper-bottom/* Sebagai contoh anda dapat merubah hostname atau livecd user. $ sudo nano edit/usr/share/initramfstools/scripts/casper
dan edit username atau hostname $ sudo nano edit/usr/share/initramfstools/scripts/casperbottom/10adduser
Untuk mengedit livecd user password Catatan : untuk memperoleh password yang dienkripsi, Anda harus menggunakan program mk passwd yang dikirimkan dengan paket whois!
Membuat Ulang initrd Setelah anda sudah me-modifikasi kernel, init scripts atau menambahkan modul kernel, anda perlu membuat ulang file initrd.gz dan replace file initrd.gz yang berada dalam direktori casper. $ sudo chroot work/ # mkinitramfs o initrd.gz 2.6.2711generic
(gantikan versi kernel dengan satunya dimana CD akan boot - ini dapat ditemukan dalam "work
/lib/modules") Keluar dari lingkungan chroot dan pindahkan file ini kedalam "cdrom/casper": # exit $ mv work/initrd.gz cdrom/casper/
Lain-lain 1. /etc/casper.conf, mengedit username, user fullname, host, build system 2. /etc/bash.bashrc, merubah wellcome message ke ID 3. /etc/issue dan issue.net dan motd.tail merubah pesan "Ubuntu 8.10 ..." saat masuk terminal 3. /etc/modules, untuk meload modul kernel saat booting 4. /etc/skel, semua file/direktori di dalamnya akan dikopi ke homedir user 5. /etc/gnome/default.list, untuk merubah file dengan ekstensi apa di buka aplikasi apa 6. /etc/xdg/user-dirs.defaults, ganti untuk menentukan direktori apa saja yang dibuat di homedir 7. /etc/xdg/menus/*.menu, untuk membuat pengaturan kategori menu sendiri 8. /usr/share/backgrounds/, wallpaper default 9. /usr/share/firefox/browserconfig.properties, Merubah alamat default yg dibuka saat start, misalnya ke "file:///usr/example-content/readme.html" atau "http://ruleenux.com" 10. /usr/share/gconf/default/* dan schemes/*, konfigurasi settingan desktop, menu, panel, dan lainlain 11. /usr/share/ubuntu-artwork, tampilan awal firefox browser offline 12. /usr/share/example-content, direktori file-file example Ubuntu
CLEANUP Pastikan untuk menghapus setiap file temporary yang tidak lagi diperlukan, karena ruang CD terbatas. Sebuah contoh klasik download paket file, yang dapat dibersihkan dengan menggunakan : # aptget clean
atau hapus temporary file # rm rf /tmp/*
atau pengaturan nameserver
# rm /etc/resolv.conf
sekarang unmount special filesystems dan keluar dari chroot # umount /proc # umount /sys # exit $ sudo umount work/dev
MENYATUKAN KE DALAM CD Regenerate manifest $ chmod +w cdrom/casper/filesystem.manifest $ sudo chroot work dpkgquery W showformat='${Package} ${Version}\n' > cdrom/casper/filesystem.mani $ sudo cp cdrom/casper/filesystem.manifest cdrom/casper/filesystem.manifestdesktop $ sudo sed i '/ubiquity/d' cdrom/casper/filesystem.manifestdesktop
Kompres filesystem $ sudo rm cdrom/casper/filesystem.squashfs $ sudo mksquashfs work cdrom/casper/filesystem.squashfs nolzma
Catatan : opsi -nolzma hanya tersedia mulai dari Ubuntu 8.04 Hardy Heron Atur sebuah nama image didalam direktori cdrom/README.disk defines $ sudo vim cdrom/README.diskdefines
Hapus md5sum.txt yang lama dan kalkulasi menjadi md5sums yang terbaru $ sudo rm cdrom/md5sum.txt $ cd cdrom $ sudo find . type f print0 |xargs 0 md5sum |sudo tee md5sum.txt $ cd ..
Create Iso $ cd extractcd
$ sudo mkisofs D r V "ubuntu8.10desktopi386custom" cacheinodes J l b isolinux/isolinux.bin c isolinux/boot.cat noemulboot bootloadsize 4 bootinfotable o ubuntu8.10desk topi386custom.iso
TESTING CD Test menggunakan Qemu emulator $ qemu cdrom ubuntu8.10desktopi386custom.iso boot d m 512
Anda juga dapat testing mengganakan Virtualbox.
BURNING IMAGE FILE KE CD $ cdrecord dev=/dev/cdrom ubuntu8.10desktopi386custom.iso
REFERENSI https://help.ubuntu.com/community/LiveCDCustomization http://linuxindo.web.id/2007/10/27/me-remaster-ubuntu-livecd/ http://ugos.ugm.ac.id/wiki