cpu: Intel E6300
mb: Asrock Conroe945G-DVI
ram: 1G
เที่ยวนี้ลองคอมไพล์ซอร์สเอง ไม่ผ่านซักอย่าง เลยใช้แบบไบนารีดีกว่า
ทำตาม wiki.ubuntu.com/XenOnEdgy เกือบทั้งหมด
เอาแพกเกจที่เกี่ยวข้องมาก่อน
$ sudo apt-get install xen-hypervisor-3.0-i386 xen-image-xen0-2.6.17-6-generic-xen0 xen-utils-3.0
+++ xen-hypervisor-3.0-i386* xen-image-xen0-2.6.17-6-generic-xen0*
xen-ioemu-3.0* xen-utils-3.0*
สร้างแรมดิสก์สำหรับบูตไว้ที่ /boot
$ sudo mkinitramfs -o /boot/xen0-linux-2.6.17-6-generic-xen0.initrd.img 2.6.17-6-generic-xen0
แก้ไขเมนูบูตให้ Xen อยู่อันแรก
$ sudo vi /boot/grub/menu.lst
ของเดิม /boot อยู่ที่ /dev/hda5 และ / อยู่ที่ /dev/hda7
... title XEN/2.6.17 root (hd0,4) kernel /boot/xen-3.0-i386.gz module /boot/xen0-linux-2.6.17-6-generic-xen0 root=/dev/hda7 ro module /boot/xen0-linux-2.6.17-6-generic-xen0.initrd.img ...
เน็ตเวิร์กยังไม่ได้ลอง เดี๋ยวจะกลับมาลอง
ในตัวอย่างของ wiki เขาใช้ลินุกส์เป็น DomU แล้วใช้ disk image เป็นไดร์ฟ
แต่ในที่นี้จะติดตั้ง WinXP โดยแบ่งพาร์ติชั่นจริง ๆ เป็นไดร์ฟ
สร้างไฟล์คอนฟิก ตั้งชื่อว่า winxp.cfg
$ sudo vi /etc/xen/winxp.cfg
พาร์ติชั่นที่ใช้ ผมแยกไปใช้ SATA คือ /dev/sda1
kernel = "/usr/lib/xen-ioemu-3.0/boot/hvmloader" builder='hvm' memory = 384 name = "winxp" vcpus=1 vif = [ 'type=ioemu, bridge=xenbr0' ] disk = ['phy:/dev/sda1,ioemu:hda,w','phy:/dev/hdb,hdb:cdrom,r'] device_model ='/usr/lib/xen-ioemu-3.0/bin/qemu-dm' boot='d' vnc=1 vncviewer=1 serial='pty' ne2000=0
ก่อนบูตเพื่อติดตั้ง ต้องติด xvncviewer ก่อน
$ sudo apt-get install xtightvncviewer
แล้วก็ลองบูตเพื่อติดตั้งได้เลย ด้วยคำสั่ง
$ sudo xm create winxp.cfg
รีบตามไปดูจอของ WinXP ด้วยการเรียกใช้ xvncviewer
$ xtightvncviewer localhost
ผลการทดลอง
ข้อดีคือ ความเร็วที่เกี่ยวกับฮาร์ดแวร์ดีถึงดีมาก รู้สึกหน่วงนิดเดียว สามารถใช้งานได้อย่างจริงจัง
ข้อเสีย เหมือนเดิม คือการแสดงผลผ่าน VNC มีข้อจำกัดมาก คือ
ข้อเสียอื่น ๆ ก็พอยอมรับได้ครับ เมื่อแลกกับความเร็วที่ได้มา
(ลองกับ WinMe ยังไม่ผ่านครับ)
เนื่องจากอูบุนตูเปลี่ยนการเมานต์ดิสก์ จากเดิมที่กำหนดเป็นค่าดีไวซ์ มาเป็น UUID แทน (เข้าใจว่าเปลี่ยนมาหลายรุ่นแล้ว)
และเนื่องจากผมแบ่งพาร์ติชั่นแยกไว้หลายอัน เพื่อให้ลงได้หลายดิสโตรและสามารถใช้ข้อมูลร่วมกันได้ ทำไปทำมากลัวงง ผมเลยกำหนดค่าให้ไดรฟ์ใหม่ จาก UUID กลับมาใช้เป็น /dev/hda? แบบเก่า
ลองตรวจดูว่าจะใช้ค่าอะไรบ้างด้วยคำสั่ง
$ mount
ปรากฎว่าอูบุนตูแปลงค่าเดิม /dev/hda? กลายเป็น /dev/sda? เสียหมด
ก็เลยต้องปรับแก้ค่าในไฟล์ /etc/fstab จาก UUID=... มาเป็น /dev/sda? ให้หมด
วันนี้จะกลับมาทดสอบ Xen อีกครั้ง งานที่เคยเปลี่ยนค่าพาร์ติชั่นไว้เลยกลายมาเป็นปัญหา เพราะเคอร์เนลของ Xen หาไดรฟ์ sda? ไม่พบ
ทางแก้คือต้องแก้กลับมาเป็น UUID เหมือนเดิม
คำสั่งที่ใช้คือ
$ ls /dev/disk/by-uuid/ -alh
total 0 drwxr-xr-x 2 root root 180 May 9 21:27 . drwxr-xr-x 5 root root 100 May 9 21:27 .. lrwxrwxrwx 1 root root 10 May 9 21:27 0e6d39ab-0446-46d6-a6fa-e0d37dc1d73c -> ../../sdb1 lrwxrwxrwx 1 root root 10 May 9 21:27 17905509-63dd-40e5-99fd-6522baa71c13 -> ../../sda9 lrwxrwxrwx 1 root root 10 May 9 21:27 257ff35d-8add-492c-9b76-e3adc11ff7f8 -> ../../sda7 lrwxrwxrwx 1 root root 10 May 9 21:27 2A13-19F4 -> ../../sda1 lrwxrwxrwx 1 root root 10 May 9 21:27 50f0a6d8-10d6-4a6c-b1ff-3508d66f618e -> ../../sda2 lrwxrwxrwx 1 root root 10 May 9 21:27 694d81d4-da76-430c-acb4-78491037055e -> ../../sda8 lrwxrwxrwx 1 root root 10 May 9 21:27 f64defd2-5ebd-4749-947c-b02b55ee4137 -> ../../sda6
แล้วจึงตามแก้ค่าในไฟล์ /etc/fstab และไฟล์ /boot/grub/menu.lst ให้หมด
เมื่อเปลี่ยนกลับมาเป็นรูป UUID=... เรียบร้อยแล้ว ก็จะสามารถบูต Xen ได้อย่างที่ควรจะเป็น
อีกคำสั่งนึงคือ
$ sudo vol_id -u /dev/sda8
694d81d4-da76-430c-acb4-78491037055e
เอามาจาก ubuntuforum แต่ลืมบันทึกครับ