JeOS Virtual Image untuk VirtualBox

Mau sharing saja tentang instalasi distro Linux JeOS di atas JeOS menggunakan virtualizer VirtualBox. Image-image virtual vdi yang dibuat dengan VirtualBox berisi JeOS yang nantinya digunakan sebagai platform server. Dan image ini akan dijalankan di atas lingkungan virtual yang dibuat oleh host JeOS. Lagi ingin belajar konsep dan mengimplementasikan virtualisasi nih🙂

Memang terlihat berlebihan yah. Sudah tahu JeOS ditujukan sebagai virtual appliance di lingkungan virtual, ini kok digunakan sebagai host OS. Alasannya sih, distro uBuntu ini kecil (235MB terinstall di harddisk) dan software yang terinstall sudah mencukupi untuk menginstall paket aplikasi lain. Mungkin dengan instalasi base-linux dari uBuntu, sistem yang kecil seperti itu juga bisa diperoleh (saya belum mencobanya). Namun ini ada harganya, JeOS menggunakan kernel linux (dan modulnya) yang sudah dioptimasi (dan striped), yaitu 2.6.24-24-virtual, sehingga bisa saja ada peripheral yang tidak didukung. Contohnya adalah driver ethernet atl2 yang ada di motherboard Asus, saya sampai perlu menggunakan ethernet card PCI. Tapi bisa juga kok, image kernel, initrd.gz dan modulnya diambil dari versi lain yang generik, dan arahkan boot loader grub JeOS host untuk menggunakan kernel ini daripada kernel -virtualnya.

Berikut outline artikel ini: 1) Instalasi JeOS sebagai host OS; 2) Instalasi virtualizer VirtualBox-3.2.4-62467; 3) Membuat image virtual JeOS dan duplikasi image untuk platform server; dan 4)Menjalankan image virtual JeOS.

Instalasi JeOS sebagai host OS dilakukan di komputer target dengan 1.6GHz, 512MB SDRAM, 80GB IDE HDD. Proses instalasi tidak ada yang khusus, sama seperti kita menginstall uBuntu ke PC kita. Instalasi dilakukan menggunakan cdrom.

  1. Download uBuntu jeos-8.04.03-jeos-i386.iso dari server utama atau kambing.ui.ac.id. Bakar file iso tersebut ke CD dan gunakan sebagai device booting;
  2. Boot dari cdrom, dan ikuti perintah instalasi sampai proses selesai terinstall di PC target

Setelah proses instalasi telah selesai, boot PC dari harddisk dan login dengan user biasa dan sudo su ke root untuk mendapatkan priviledge root dan melakukan instalasi VirtualBox (dan openssh-server, saya lebih suka ssh daripada melihat console display). File /etc/apt/sources.list diedit untuk mengambil repositori dari lokal (ftp://ftp.itb.ac.id), agar tidak makan bandwidth (tidak kena quota AI3, hehehe)

didik@design-107:~$ sudo su
[sudo] password for didik: 
root@design-107:/home/didik# sed -i -e "s,http://id.archive.ubuntu.com/ubuntu/,ftp://ftp.itb.ac.id/pub/ubuntu/,g" /etc/apt/sources.list
root@design-107:/home/didik# aptitude update
root@design-107:/home/didik# aptitude install openssh-server

Kemudian VirtualBox akan diinstall. Ada 2 pilihan lagi selain VirtualBox ini: VMWare dan KVM. Sayang, motherboard yang saya gunakan prosesornya tidak support SVM (AMD) sehingga modul KVM tidak bisa diload. Source VMWare tidak punya. Yang paling mudah instalasinya adalah VirtualBox ini. JeOS sebenarnya mempunyai paket repository virtualbox-ose-1.5.6-dfsg-6ubuntu1 yang bisa langsung diinstall dengan aptitude. Hanya saja, beberapa fitur telah dikembangkan dan bug telah diperbaiki di VirtualBox-3.2.4-62467, sehingga versi inilah yang akan diinstall.

Download VirtualBox-3.2.4-62467-Linux_x86.run, install paket build-essensial dan linux-header-2.6.24-24-virtual, dan kemudian install VirtualBox. (Harus dengan user root)

root@design-107:/home/didik# aptitude install build-essential linux-headers-$(uname -r)
root@design-107:/home/didik# wget http://download.virtualbox.org/virtualbox/3.2.4/VirtualBox-3.2.4-62467-Linux_x86.run
root@design-107:/home/didik# chmod +x VirtualBox-3.2.4-62467-Linux_x86.run
root@design-107:/home/didik# ./VirtualBox-3.2.4-62467-Linux_x86.run

Virtualbox installer akan mengkompile dan menginstall modul kernel yang diperlukan (vboxdrv.ko) dan utility VBox* serta library dependennya. Secara otomatis modul kernel vboxdrv akan diload (dari sysvinit) dan VirtualBox siap digunakan. Selanjutnya adalah membuat image virtual JeOS. Image ini dapat dibuat dengan user biasa, asalkan masuk dalam grup vboxusers. Saya telah membuat script untuk meng-create virtual machine dengan VirtualBox, yaitu create_vm.sh.

root@design-107:/home/didik# usermod -a -G vboxusers didik
root@design-107:/home/didik# id didik
uid=1000(didik) gid=1000(didik) groups=1000(didik),4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(lpadmin),108(sambashare),109(admin),111(vboxusers)
root@design-107:/home/didik# exit
didik@design-107:~$ cat > create_vm.sh <<EOF   
#!/bin/sh
NAME=\$1
if [ -z "\$NAME" ]; then
  echo "\\\$1 shouldn't be empty. Usage: ./create_vm.sh <vm_name> <vdisize,MB>"
  exit
fi

VDINAME=\$NAME.vdi
[ -z "\$2" ] && VDISIZE=1000 || VDISIZE=\$2 # 1GB
FOUND=\`VBoxManage list vms | grep -e \"\$NAME\" | cut -f 2 -d '"'\`

# Create virtual machine
[ "\$FOUND" != "\$NAME" ] && VBoxManage createvm -name "\$NAME" -register || echo "\$NAME VM has existed."

# Update vm
VBoxManage modifyvm \$NAME --nic1 bridged --macaddress1 auto --bridgeadapter1 eth1 # Network
VBoxManage modifyvm "\$NAME" --vrdp on

# Create virtual disk image & attach
VBoxManage createhd --filename "\$VDINAME" --size \$VDISIZE --remember
VBoxManage storagectl \$NAME --name "IDE Controller" --add ide
VBoxManage modifyvm \$NAME --hda \$VDINAME

# Attach JeOS cdrom
VBoxManage storageattach "\$NAME" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium host:/dev/cdrom

# Setting booting order
VBoxManage modifyvm \$NAME --boot1 dvd --boot2 disk

# Run vm in headless mode
#VBoxManage startvm \$NAME --type vrdp
#VBoxHeadless -startvm \$NAME
EOF
didik@design-107:~$ chmod +x create_vm.sh
didik@design-107:~$ ./create_vm.sh "JeOS-img"

Dari perintah di atas, mesin virtual JeOS-img dibuat. Ada baiknya kita lihat bagaimana VM JeOS-img tersebut.

didik@design-107:~$ VBoxManage showvminfo "JeOS-img"
Oracle VM VirtualBox Command Line Management Interface Version 3.2.4
(C) 2005-2010 Oracle Corporation
All rights reserved.

Name:            JeOS-img
Guest OS:        Other/Unknown
UUID:            03907dfc-c546-423d-8ea6-04f358df037a
Config file:     /home/didik/.VirtualBox/Machines/JeOS-img/JeOS-img.xml
Hardware UUID:   03907dfc-c546-423d-8ea6-04f358df037a
Memory size:     128MB
Page Fusion:     off
VRAM size:       8MB
HPET:            off
Number of CPUs:  1
Synthetic Cpu:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): DVD
Boot Device (2): HardDisk
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          off
PAE:             off
Time offset:     0 ms
RTC:             local time
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
State:           powered off (since 2010-06-09T10:43:28.000000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address: 
Teleporter Password: 
Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
IDE Controller (0, 0): /home/didik/.VirtualBox/HardDisks/JeOS-img.vdi (UUID: b4fefead-5328-4718-a72f-ae6f2e84c474)
IDE Controller (0, 1): /dev/scd0 (UUID: 00445644-0000-2f00-6465-762f73636430)
NIC 1:           MAC: 080027A7E1C4, Attachment: Bridged Interface 'eth1', Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
Audio:           disabled
Clipboard Mode:  Bidirectional
VRDP:            enabled (Address 0.0.0.0, Ports 3389, MultiConn: off, ReuseSingleConn: off, Authentication type: null)
Video redirection: disabled
USB:             disabled

USB Device Filters:

<none>

Shared folders:  <none>

Guest:

Configured memory balloon size:      0 MB

Masukkan cdrom yang berisi JeOS untuk membuat file image virtual JeOS-img.vdi, kemudian jalankan mesin virtual tersebut.

didik@design-107:~$ VBoxHeadless --startvm "JeOS-server"
Oracle VM VirtualBox Headless Interface 3.2.4
(C) 2008-2010 Oracle Corporation
All rights reserved.

Listening on port 3389.

Port 3389 VRDP telah dibuka. Akses server tersebut dengan RDP client. Di Puppy Linux saya menggunakan rdesktop.

root:~> rdesktop 167.205.24.107:3389

JeOS guest installation

JeOS guest installation

JeOS running on Virtual Machine

JeOS running on Virtual Machine

Proses instalasi di mesin virtual hampir sama dengan instalasi untuk host OS, hanya saja target instalasi adalah disk virtual JeOS-img.vdi. Setelah proses instalasi selesai, sistem virtual akan reboot dan meload JeOS-img. Hasilnya sistem dengan kebutuhan space 235MB telah berjalan di Virtual Machine. Karena memang image JeOS ini akan menjadi virtual appliance, kita akan mengclone image ini untuk digunakan oleh server lain. Cloning virtual disk ini dapat dilakukan sebagai berikut:

didik@design-107:~$ VBoxManage clonehd JeOS-img.vdi JeOS-server.vdi
Oracle VM VirtualBox Command Line Management Interface Version 3.2.4
(C) 2005-2010 Oracle Corporation
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: e359a001-3eec-49d3-8f16-1ca0a866b8d0

Image disk virtual JeOS-server telah dibuat, yang kemudian dapat dijalankan oleh mesin virtual.

Jadi, apakah USB stick yang bisa menjalankan launcher untuk meload multi distro virtual (Linux, Windows) dapat dibuat? Tentu saja😀.

3 Responses to “JeOS Virtual Image untuk VirtualBox”

  1. Aduh, mas…kok bisa sih, menulis source code seperti itu? Bagaimana caranya? Maksud saya, kok bisa bernomor 1, 2, 3,… begitu?

Trackbacks

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: