Monday, April 28, 2003 00:19:34

Membuat Bootable CD

Article and tutorial that related to Linux Operating System  
Sekarang sedang marak adanya distro yang menyediakan liveCD. Pada penulisan kali ini penulis mencoba menjabarkan cara pembuatan bootable CD, yang bisa dijadikan panduan untuk membuat Bootdisk, Live CD, maupun Installer.
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

  1. 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
  2. Kemudian melakukan penyalinan file initrd kita ke direktori baru.
    [root@leuser /]# cp /initrd.gz /initrd/
  3. 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
  4. 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:

  1. Syslinux : http://syslinux.zytor.com/
  2. Busybox : http://www.busybox.net/
  3. Artikel Roberto : http://www.linuxjournal.com
  4. Bootdisk HOWTO : http://www.tldp.org

Permalink logo del.icio.usadd to del.icio.us | view as pdfview as pdf