Penulisan ini banyak mengambil bahan tulisan dari Artikel Roberto tentang Self-Hosting Movies with MoviX. Sedangkan distro yang kebetulan dipergunakan adalalah Rimbalinux 1.0.
Kompilasi Kernel
Untuk memulai semuanya kita mula-mula harus menyiapkan
kernel (proses kompilasi kernel tidak dijelaskan disini) yang
telah mendukung hal-hal berikut:
| Code maturity level options --->
Prompt for development and/or incomplete code/drivers Block device ---> Loopback device support Block device ---> RAM disk support Block device ---> Initial RAM disk (initrd) support File systems ---> /dev file system support [pilih opsi "Automatically mount at boot"] |
Lalu setelah disimpan konfigurasi diatas dan menjalankan perintah make dep dan make bzImage , anda akan memiliki file binari "bzImage" ( terdapat di direktori /usr/src/linux-2.4/arch/i386/boot/ ).
Membuat file sistem
File sistem yang akan kita buat ini hanya akan memuat
file sistem dasar. Kita terlebih dahulu akan membuat file initrd
(init ram disc) yang akan menggunakan resource dari ramdisk kita.
Mula-mula untuk bisa menggunakan ramdisk dengan ukuran yang
dipakai 4,086 KB, maka kita perlu membuat direktori yang
dijadikan tempat menampung ramdisk kita (disini dibuat direktori
baru dinamakan distro) dan ikuti
perintah-perintah dibawah ini:
| [root@leuser linux-2.4]# dd if=/dev/zero
of=/dev/ram0 bs=1k count=4086 [root@leuser linux-2.4]# mke2fs -m0 /dev/ram0 4086 [root@leuser linux-2.4]# mkdir /distro [root@leuser linux-2.4]# mount /dev/ram0 /distro/ |
Setelah dibuat ramdisknya, kita sekarang bisa mengisinya dengan file system, disini penulis menggunakan busybox, yang pada saat pembuatan penulisan ini menggunakan versi 0.60.5. Setelah mendownload busybox, anda bisa melakukan kompilasi aplikasi tersebut. Berikut langkah kompilasinya
| [root@leuser SOURCES]# tar fvjx
busybox-0.60.5.tar.bz2 [root@leuser SOURCES]# cd busybox-0.60.5 [root@leuser busybox-0.60.5]# make [root@leuser busybox-0.60.5]# ./install.sh /distro |
Setelah paket busybox terinstall di direktori /distro maka, kita perlu mengecek dependencies dari pada binari busybox, dan menginstall library-library yang dibutuhkan oleh binari tersebut. Dan juga kita perlu menyiapkan direktori-direktori tambahan (/dev, /root, /lib, /mnt, /proc,/tmp) agar "distro" kita siap untuk disebut sebagai sistem.
[root@leuser busybox-0.60.5]# ldd /distro/bin/busybox
libc.so.6 => /lib/libc.so.6 (0x4001d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
[root@leuser busybox-0.60.5]# cd /distro/
[root@leuser distro]# mkdir -p {dev,etc,lib,mnt,proc,root,tmp}
[root@leuser distro]# mkdir -p etc/rc.d
[root@leuser distro]# objcopy --strip-debug /lib/libc-2.2.5.so
/distro/lib/libc.so.6
[root@leuser distro]# objcopy --strip-debug /lib/ld-2.2.5.so
/distro/lib/ld-linux.so.2
[root@leuser distro]# chmod 755 * /distro/lib/*
Untuk menyelesaikan semuanya, buat file-file script konfigurasi berikut: /distro/etc/rc.d/rc.S , /distro/etc/inittab , /distro/etc/fstab , /distro/etc/profile , /distro/etc/shells pada sistem anda. Jangan lupa rubah mode file rc.S agar memiliki mode eksekutabel (jalankan perintah chmod x /distro/etc/rc.d/rc.S). Setelah itu anda bisa melakukan umount dan membuat file initrd dengan menggunakan perintah:
[root@leuser /]# umount /dev/ram0
[root@leuser /]# dd if=/dev/ram0 of=initrd bs=1k count=4086
[root@leuser /]# gzip initrd
Disini kita melakukan kompresi initrd, untuk membuat file yang
dihasilkan menjadi lebih kecil.Sekarang anda bisa mengetest
sistem yang telah kita buat apakah sudah bener atau belum,caranya
dengan menempatkan di dalam bootloader kita (disini penulis
menggunakan lilo sebagai bootloadernya)
Pada sesi ini yang harus kita lakukan adalah
- Membuat direktori baru (/initrd) dan salin file kernel
(bzImage) ke direktori baru kita.
[root@leuser /]# cp /usr/src/linux-2.4/arch/i386/boot/bzImage /initrd/vmlinuz - Kemudian melakukan penyalinan file initrd kita ke
direktori baru.
[root@leuser /]# cp /initrd.gz /initrd/ - Setelah itu tambahkan baris berikut di file lilo.conf
kita (letaknya di direktori /etc)
# Linux bootable partition config begins
image = /initrd/vmlinuz
initrd = /initrd/initrd.gz
label = Distro
read-only
# Linux bootable partition config ends - Langkah terakhir jalankan lilo -v , Reboot komputer anda, dan pilihlah Label "Distro" pada saat menu boot loader lilo tampil di layar anda.
Jika semuanya sudah OK( dari booting sampai anda mendapatkan prompt/console/shell di sistem baru ini), maka anda bisa melanjutkan ke tahap terakhir yaitu membuat Bootable CD,jika belum pastikan tidak ada yang terlewatkan.
Membuat Bootable CD
Langkah ini tidak terlalu sukar dimana anda hanya perlu
mendapatkan file isolinux.bin yang bisa anda
dapatkan dari paket syslinux (versi syslinux yang penulis pakai
2.04). Siapkan file isolinux.bin, initrd.gz, vmlinuz (file
bzImage yang kita rubah namanya seperti pada tahapan sebelumnya),
isolinux.cfg , f1.txt , f2.txt . Tiga
file terakhir bisa anda buat sesuai kehendak anda. Semua file
yang kita siapkan tersebut kita tempatkan pada suatu direktori
baru dan sub-direktori baru (disini penulis membuat direktori
/cdrom, /cdrom/isolinux, dan /cdrom/isolinux/kernel).
Tempatkan file isolinux.cfg, f1.txt, f2.txt, dan
isolinux.bin pada direktori /cdrom/isolinux/, Dan tempatkan file
vmlinuz pada direktori /cdrom/isolinux/kernel/. Setelah itu anda
telah siap untuk membuat ISO image dari sistem baru kita yaitu
dengan menjalankan perintah
[root@leuser /]# mkisofs -o /tmp/distro.iso -r -V "Rimba
LiveCD"
-v -no-emul-boot -boot-load-size 4
-boot-info-table -b isolinux/isolinux.bin
-c isolinux/isolinux.boot /cdrom
Kemudian anda bisa melakukan burn dengan menjalankan perintah:
| cdrecord dev=0,0 -v -eject /tmp/distro.iso |
Cobalah booting dengan menggunakan CD kita ini. dan jika sukses maka anda telah berhasil membuat bootable CD. Bagaimanapun ini masih merupakan File sistem yang dasar, sedangkan yang untuk bisa bener-bener sebagai liveCD, atau installer maka anda perlu menambahkan aplikasi pendukung didalamnya.
Catatan:
- Syslinux : http://syslinux.zytor.com/
- Busybox : http://www.busybox.net/
- Artikel Roberto : http://www.linuxjournal.com
- Bootdisk HOWTO : http://www.tldp.org



















