UML root_fs Menggunakan Debian Sarge

Kamas Muhammad <kamas@lc.vlsm.org>


Tidak ada copyright apapun dalam dukumen ini, anda bebas menyalin, mencetak, maupun memodifikasi (dengan menyertakan nama penulis asli). Saran, koreksi, kritik, kesalahan ketik, maupun ucapan silakan dikirimkan ke email tersebut diatas. Terima Kasih.

Pendahuluan

User Mode Linux adalah suatu project yang memungkinkan kita untuk menjalankan Linux dalam Linux. Hasilnya berupa virtual machine yang dapat kita kendalikan seperti halnya kita mengakses linux di komputer lain. Pembahasan di sini hanyalah bagaimana kita membuat root_fs sebagai filesystem yang dapat kita gunakan untuk menjalankan UML. Filesystem ini dibuat dengan menggunakan Debian/GNU Linux Sarge.

Instalasi Program

Untuk membuat filesystem ini kita akan menggunakan debootstrap untuk menginstall base system debian. Selain itu program lain yang dibutuhkan adalah teks editor :).

root:~# apt-get install debootstrap

Membuat Image

Image merupakan suatu file yang nantinya kita gunakan sebagai tempat menampung filesystem beserta isinya. Image kita buat dengan menggunakan program dd.

root:~# dd if=/dev/zero of=rootfs bs=1M count=1 seek=250

Parameter of dapat diganti sesuai dengan nama file yang anda inginkan. Pada contoh di atas nama image yang dibuat adalah "rootfs". bs merupakan ukuran unit yang dibuat. Pada contoh di atas besarnya adalah 1MB. Ukuran total ditentukan oleh seek x bs. Bila anda memasukkan angka 250 sebagai parameter seek maka hasilnya adalah image sebesar 250 x 1 = 250MB.

Memformat Image

Setelah imagenya jadi, kita harus memformatnya dengan jenis filesystem tertentu. Anda bebas menggunakan jenis apa pun, asalkan linux anda mendukung penggunaan filesystem tersebut. Contoh di bawah ini merupakan pemformatan reiserfs.

root:~# mkreiserfs -f rootfs
mkreiserfs 3.6.19 (2003 www.namesys.com)

A pair of credits:
Edward Shushkin wrote the encryption and compression file plugins, and the V3
journal relocation code.

Hans Reiser was the project initiator, source of all funding for the first 5.5
years. He is the architect and official maintainer.

'rootfs' looks mounted.Continue (y/n):y
rootfs is not a block special device
Continue (y/n):y
Guessing about desired format.. Kernel 2.6.8-1-386 is running.
Format 3.6 with standard journal
Count of blocks on the device: 51456
Number of blocks consumed by mkreiserfs formatting process: 8213
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 4906c600-811c-4124-8984-55ba677e6aa9
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok

Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.

ReiserFS is successfully created on rootfs.

Debootstrap

Debian Base System merupakan kumpulan file-file minimum yang dibutuhkan distro debian untuk dapat beroperasi. Untuk mengisi filesystem kita dengan base system ini kita menggunakan debootstrap. Untuk itu kita harus memount filesystem yang sudah jadi ke direktori tertentu, kemudian menjalankan debootstrap untuk mengisinya.

root:~# mkdir dirmount
root:~# mount -o loop rootfs dirmount/
root:~# debootstrap sarge dirmount/ http://debian.its.ac.id/debian

Parameter pertama debootstrap adalah release yang akan digunakan (misal woody, sarge, sid). Parameter terakhir adalah mirror yang kita gunakan. File-file yang dibutuhkan akan didownload dari mirror itu, jadi pastikan anda memilih mirror dengan akses tercepat dari tempat anda.

Penyesuaian File

Setelah proses debootstrap selesai, kini kita harus mengedit beberapa file agar filesystem kita dapat digunakan. Anda boleh melakukan chroot ke direktori tempat mounting filesystem, atau melakukan pengeditan tanpa chroot. Di sini saya (pura-pura) menggunakan chroot, sehingga memudahkan saya dan anda dalam mengikuti langkah selanjutnya :)

root:~# cd dirmount/ && chroot .

Asumsi penyebutan file mulai bagian ini adalah anda berada dalam chroot. Bila anda tidak menggunakan chroot maka nama file/direktori dapat anda gantikan dengan working directory anda, dan bukan "/".

Kita belum punya device ubd yang digunakan oleh kernel UML, jadi kita harus membuatnya dalam filesystem yang baru, dalam direktori dev/ubd.

# mkdir -p /dev/ubd
# cd /dev/ubd
# for i in 0 1 2 3 4 5 6 7; do mknod $i b 98 $[ $i * 16 ]; done

Edit file /etc/fstab, dan masukkan beberapa baris di bawah ini. Anda bebas menggunakan teks editor apa pun.

/dev/ubd/0 / reiserfs defaults 1 1
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0

Setelah itu edit file /etc/inittab, lihat bagian bawah file. Hapus bagian ini:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

dan gantikan dengan:

0:2345:respawn:/sbin/getty 38400 ttys/0

Debian Sarge menggunakan library tls yang mana pada saat penulisan tutorial ini UML belum mendukung penggunaannya. Oleh karena itu hapus/rename direktori /lib/tls.

# mv /lib/tls /lib/tls-matiin

Atau

# rm /lib/tls -rf

Saat ini basesystem kita hampir jadi. Kita tinggal mengubah setting PAM di beberapa file yang terdapat pada direktori /etc/pam.d. Tujuannya hanya 1 yaitu agar root bisa login tanpa password saat UML dijalankan. he..he..he..

Hapus atau beri tanda komentar pada awal baris berikut dalam file /etc/pam.d/login.

auth requisite pam_securetty.so

Kemudian pastikan ada option nullok pada file common-auth, common-password, dan comon-account. File-file tersebut berada pada direktori /etc/pam.d.
Contohnya:

password required pam_unix.so nullok obscure min=4 max=8 md5 # file comon-password
account required pam_unix.so nullok # file common-account

Selesai

Setelah itu silakan keluar dari chroot dan coba jalankan file system yang telah anda buat.

root:~# linux ubd0=rootfs umid=host1 con=pty con=xterm

Selamat bermain-main dengan filesystem Debian Sarge :)