Saturday, March 31, 2012

Chroot X : Chroot Fedora 17 dengan lingkungan Grafis



X-Windows atau X11 atau disebut X saja  adalah sistem grafis dan windowing bagi sistem operasi UNIX dan sistem-operasi-mirip-UNIX (termasuk didalamnya GNU/Linux) yang dikembangkan di Massachusetts Institute of Technology (MIT) sejak tahun 1984. Dengan menggunakan X-Windows dan aplikasi Windows Manager, sebuah komputer dengan sistem operasi UNIX dapat memiliki sistem GUI,
Sekilas mengenai chroot :
Chroot (Change Root) dalam sistem operasi Unix (termasuk didalamnya GNU/Linux,), adalah perintah  yang digunakan untuk menjadikan sebuah direktori biasa menjadi seolah-olah sebagai  sistem root ( / ) disistemnya sendiri,  perintah yang dijalankan pada lingkungan chroot hanya akan mempengaruhi lingkungan chroot sendiri, tanpa bisa mempengaruhi direktori yang berada diatasnya,
ilustrasi sederhana lingkungan chroot :

ilustrasi lingkungan chroot
Jadi secara sederhana Chroot X dapat diartikan sebagai menjalankan aplikasi yang berada dilingkungan chroot dengan modus grafis X. Dalam peletakannya lingkungan chroot  dapat ditaruh pada top direktori maupun sub direktori mana saja,
Sebagai contoh dan percobaan, disini saya akan menjelaskan secara singkat cara menjalankan chroot X secara manual menggunakan sistem operasi Ubuntu 12.04.
Lingkungan chroot saya letakan pada direktori ~wagung/chroot yang merupakan sub direktori dari top direktori /home,

/home/wagung/chroot
lingkungan chroot sendiri dapat dapat dibuat menggunakan berbagai macam cara, mulai dari menyalin sistem GNU/Linux yang berjalan, debootstrap atau menggunakan live filesystem dari distribusi GNU/Linux Live CD, disini saya menggunakan Fedora 17 GNU/Linux Live CD yang akan dijadikan basis lingkungan chroot, 

Fedora 17 Alpha 1 Image
Menggunakan Ubuntu 12.04 saya akan memasang perangkat lunak yang dibutuhkan,

sudo apt-get install squashfs-tools genisoimage xserver-xephyr

Image CD Ubuntu 12.04
Setelah selesai, dilanjutkan dengan menyiapkan lingkungan chroot menggunakan Fedora 17 GNU/Linux Live CD, berikut langkah-langkahnya,
Salin berkas yang dibutuhkan,
sudo mount -o loop Fedora-17-Alpha-i686-Live-Desktop.iso /mnt
cp -av /mnt/LiveOS/squashfs.img ~/chroot/
sudo umount /mnt
cd ~/chroot/
unsquashfs squashfs.img

Berkas ext3fs.img yang didapatkan
Selanjutnya sebuah berkas dengan nama ext3fs.img telah didapatkan dan siap digunakan, berkas squashfs.img tidak dibutuhkan lagi dan dapat dihapus,

Berkas ext3fs.img yang dibutuhkan
Dari keterangan pada gambar dapat dilihat bahwa berkas ext3fs.img yang berukuran 4.3 GB merupakan disk image dengan ext4 filesystem yang berisi filesystem LiveCD fedora, jika diinginkan sebenarnya berkas ext3fs.img telah dapat dimount read-write mode dan digunakan sebagai lingkungan chroot, namun untuk kemudahan dan agar tidak ribet memount disk image setiap kali akan melakukan chroot, isi dari ext3fs.img yang telah dimount dapat disalin kesebuah direktori untuk selanjutnya dapat dichroot dengan lebih praktis,

sudo mount -o loop -t ext4 ~/chroot/ext3fs.img /mnt


Salin isi dari ext3fs.img ke direktori /home/wagung/chroot
rsync -av /mnt/ ~/chroot/ 

Jika proses penyalinan telah selesai, umount /mnt dan selanjutnya berkas ext3fs.img dapat dihapus,
Selanjutnya untuk keperluan menjalankan lingkungan chroot, modifikasi sedikit direktori chroot,

cp /etc/resolv.conf ~/chroot/etc/
mkdir -p ~/chroot/var/run/dbus

Selanjutnya mount filesystem yang dibutuhkan pada lingkungan chroot
sudo mount --bind /dev ~/chroot/dev
sudo mount --bind /proc ~/chroot/proc
sudo mount --bind /sys ~/chroot/sys
sudo mount --bind /var/run/dbus ~/chroot/var/run/dbus
sudo mount --bind /dev/pts ~/chroot/dev/pts
sudo mount --bind /tmp ~/chroot/tmp

Gunakan perintah df (display free) untuk membantu melihat
berkas yang dimount
Selanjutnya  chroot pada direktori  /home/wagung/chroot
sudo chroot ~/chroot/

Buka sebuah terminal baru dan jalankan perintah dibawah ini, normalnya setelah perintah dijalankan sebuah jendela hitam akan muncul,

xhost +local:; Xephyr -ac -screen 800x600 :1 

Jendela Xephyr
Didalam lingkungan chroot lanjutkan dengan menjalankan perintah berikut,
dbus-uuidgen >> /var/lib/dbus/machine-id
export DISPLAY=:1

Setelah selesai, jalankan aplikasi grafis yang diinginkan yang berada dilingkungan chroot, misalnya ingin menjalankan firefox, jalankan juga metacity window manager agar aplikasi yang membutuhkanya dapat berjalan dengan sempurna,

firefox &
metacity &

Jika benar sebuah penampakan akan muncul dijendela yang tadinya hitam,

Chroot Firefox Fedora - Xephyr
untuk menjalankan sesi gnome-session desktop full jalankan perintah berikut pada chroot,
gnome-session &

Gnome- Session Fedora - berjalan pada Ubuntu 12.04
menggunakan Xephyr ( Chroot X)
Walaupun sekilas terlihat yang dijalankan pada jendela Xephyr ( Chroot X) adalah desktop fedora, namun sebenarnya lingkungan chroot tetap berjalan menggunakan kernel sistem yang ditumpangi (Ubuntu 12.04)

Kernel dan spesfikasi hardware tetap menggunakan
kernel milik host / root sebenarnya (Ubuntu 12.04)
Jangan lupa, untuk melakukan umount, setelah selesai dengan  lingkungan chroot .

sudo umount -lf ~/chroot/dev
sudo umount -lf ~/chroot/proc
sudo umount -lf ~/chroot/sys
sudo umount -lf ~/chroot/var/run/dbus
sudo umount -lf ~/chroot/tmp

Dalam menjalankan lingkungan Chroot X Fedora 17, saya menemui beberapa keterbatasan, error dan pesan kesalahan ketika menjalankan aplikasi grafis, namun secara keseluruhan sistem chroot X dapat berjalan dengan lumayan baik dan tentunya lebih hemat sumber daya dibandingkan dengan menggunakan virtual mesin :D

Demikian penjelasang singkat sekaligus percobaan menggunakan chroot X ini, ;)
Semoga bermanfaat

*lakukan semua perintah diatas secara berurutan

Referensi:
http://id.wikipedia.org/wiki/X_Window_System
https://help.ubuntu.com/community/LiveCDCustomization

No comments:

Post a Comment