ติดตั้ง virtualbox บน ubuntu

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่  29-06-2554

ดูแลโดย WIPAT



  1. ต้องติดตั้งโปรแกรมเพิ่มเติมก่อนด้วยคำสั่ง
    sudo apt-get install libqt4-network libqt4-opengl libcurl3 dkms

    ต่อไปดาวน์โหลดแฟ้มโปรแกรม virtualbox จาก http://ftp.psu.ac.th/pub/virtualbox ต้องเลือกให้ถูกต้องกับรุ่นที่ต้องใช้งาน

    ตัวอย่างนี้เป็น virtualbox 4.0.10  สำหรับ ubutnu 11.04  แบบ 32 bit
    ให้เลือกแฟ้ม
    ดาวน์โหลดมาด้วยคำสั่ง wget http://ftp.psu.ac.th/pub/virtualbox/virtualbox-4.0_4.0.10-72479~Ubuntu~natty_i386.deb -P /tmp
    ติดตั้งด้วยคำสั่ง sudo dpkg -i /tmp/virtualbox-4.0_4.0.10-72479~Ubuntu~natty_i386.deb

    หากเคยติดตั้ง virtualbox เวอร์ชั่นอื่นมาอยู่แล้ว อาจได้ตัวอย่างข้อความประมาณว่า  ...
    virtualbox-4.0 conflicts with virtualbox
    virtualbox-3.2 provides virtualbox and is present and installed.
    ก็ให้ถอนโปรแกรม virtualbox ของเดิมออกก่อน ด้วยตัวอย่างคำสั่งประมาณว่า sudo apt-get remove virtualbox-3.2
    เสร็จแล้วจึงค่อยติดตั้ง virtualbox ใหม่ต่อไป

    หากได้หน้าต่างประมาณว่า Configuring virtualbox-4.0  หัวข้อว่า Creating group 'vboxusers'
    ให้กดแป้น Enter  อย่างเดียวเท่านั้น แล้วรอจนเสร็จ

  2. จัดการให้ virutalbox ติดต่อกับ usb ได้ด้วยคำสั่ง
    sudo usermod -a -G vboxusers $(whoami)
    sudo usermod -a -G vboxsf $(whoami)
    sudo usermod -a -G lp $(whoami)

    ตั้งค่าให้ virtualbox ปิด guest โดยอัตโนมัติตอน shutdown host  ด้วยคำสั่งว่า
    sudo sh -c "echo 'SHUTDOWN_USERS=\"$(whoami)\"' >> /etc/default/virtualbox"
    sudo sh -c "echo "SHUTDOWN=acpibutton" >> /etc/default/virtualbox"

    แค่นี้ก็เสร็จแล้ว ทดสอบใช้งานด้วยคำสั่ง VirtualBox
    ได้หน้าต่าง VirtualBox License ให้คลิกปุ่ม "I Agree"
    ได้หน้าต่าง VirtualBox Registration Dialog ให้คลิกปุ่ม "Cancel"
    คราวนี้ก็ใช้งานได้เลย

    ต่อไปก็ติดตั้ง Extension Packs เพิ่มเติม โดยดาวน์โหลดได้จาก
    http://ftp.psu.ac.th/pub/virtualbox/Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpack
    แล้วติดตั้งด้วยการเปิดโปรแกรม virtualbox ไปที่เมนู File -> Preferences...
    ได้หน้าต่าง VirtualBox - Settings ช่องด้านซ้ายเลือก Extensions
    แล้วเพิ่มหรือลบ Extension Package ตามต้องการ

  3. หากเรียกโปรแกรม VirtualBox แล้ว มี error ประมาณว่า
    WARNING: The vboxdrv kernel ...
              sudo /etc/init.d/vboxdrv setup
      ...       Please consult the User Manual for build instructions. 
    ให้แก้ไขดังนี้ ติดตั้งโปรแกรมเพิ่มเติมด้วยคำสั่ง sudo apt-get install linux-headers-$(uname -r)
    แล้วสั่งปรับปรุง vboxdrv ใหม่ด้วยคำสั่ง sudo /etc/init.d/vboxdrv setup รอจนเสร็จก็จะใช้งานได้

    อาการแบบนี้อาจเกิดขึ้นหลังจาก upgrade kernel เป็นเวอร์ชั่นใหม่

  4. การปรับแต่งให้ใช้ usb ได้ ทำดังนี้
    หากเป็น ubuntu 10.04 ต้องเพิ่มชื่อ user ให้เป็นสมาชิกของ group ชื่อ vboxusers ด้วย ให้ทำดังนี้
    sudo usermod -a -G vboxusers $(whoami)

    หากเป็น ubuntu 9.04  ให้ตรวจสอบเลข gid ของ vboxusers ในแฟ้ม /etc/group
    ลองใช้คำสั่งว่า grep vboxusers /etc/group
    ได้ผลประมาณ ว่า vboxusers:x:46: หมายความว่า vboxusers มีเลข gid เป็น 46

    ให้ แก้ไขแฟ้ม /etc/fstab ไปที่ท้ายแฟ้มแล้วเพิ่ม/ปรับปรุงบรรทัดใหม่ข้อความว่า
    none /proc/bus/usb usbfs devgid=46,devmode=664 0 0
    ให้แก้ไขค่า devgid ให้ถูกต้องตรงกับเลข gid ของ vboxusers ตัวอย่างนี้คือ devgid=46
    แล้ว ทำงานต่อด้วยคำสั่งว่า sudo mount -a

    หากเป็น ubuntu 8.04 ให้แก้ไขแฟ้ม /etc/init.d/mountdevsubfs.sh
    ไปที่ประมาณบรรทัด 42-45 ให้ uncomment กลายเป็นประมาณว่า
    mkdir -p /dev/bus/usb/.usbfs
    domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
    ln -s .usbfs/devices /dev/bus/usb/devices
    mount --rbind /dev/bus/usb /proc/bus/usb
    แล้วทำงานต่อด้วยคำสั่งว่า sudo /etc/init.d/mountdevsubfs.sh start

  5. ตัวอย่างการสร้าง hard disk สำหรับ guest ทำดังนี้ เปิดโปรแกรม VritualBox  ด้วยคำสั่ง VirtualBox
    ได้หน้าต่าง Sun VirtualBox  ที่แถบด้านบนให้เลือกเมนู File -> Virtual Media Manager... 
    ได้หน้าต่าง Virtual Media Manager  ที่แถบด้านบนให้เลือกเมนู Actions -> New...
    ได้หน้าต่าง Welcome to the Cretate New VirtualDisk Wizard! ให้คลิกปุ่ม Next >
    ได้หน้าต่าง Hard Disk Storage Type  ให้คงเลือกค่าเดิมว่า Dynamically expanding storage  แล้วคลิกปุ่ม Next >
    ได้หน้าต่าง Virtual Disk Location and Size  ที่ส่วนของ Location ให้ตั้งชื่อแฟ้มให้ถูกต้อง และ/หรือเปลี่ยน path ตามต้องการ
    ที่ส่วนของ Size ให้ใส่ขนาดตามต้องการ  แล้วคลิกปุ่ม Next >
    ได้หน้าต่าง Summary  ให้คลิกปุ่ม Finish
    กลับมาได้หน้าต่าง Virtual Media Manager  หากไม่ทำงานต่ออีก ก็ให้คลิกปุ่ม OK ออกไปได้เลย

  6. ตัวอย่างการสร้าง guest  ทำดังนี้ เปิดโปรแกรม VritualBox  ด้วยคำสั่ง VirtualBox
    ได้หน้าต่าง Sun VirtualBox  ที่แถบด้านบนให้เลือกเมนู Machine -> New...
    ได้หน้าต่าง Welcome to the New Virtual Machine Wizard! ให้คลิกปุ่ม Next >
    ได้หน้าต่าง VMname and OS Type ที่ส่วนของ Name ให้ใส่ชื่อ guest ตามต้องการ
    ที่ส่วนของ OS Type ให้ปรับตั้งค่าให้ถูกต้อง แล้วคลิกปุ่ม Next >
    ได้หน้าต่าง  Memory  ที่ส่วนของ Base Memory Size ให้ใส่ขนาด RAM ตามต้องการ แล้วคลิกปุ่ม Next >
    ได้หน้าต่าง  Virtual Hard Disk  ให้คงค่าคลิกเลือก  Boot Hard Disk (Primary Master) ไว้
    แล้วเปลี่ยนไปคลิกเลือกหัวข้อ Use existing hard disk  แล้วเปลี่ยนให้เป็นชื่อแฟ้ม hard disk ที่เคยสร้างไว้  แล้วคลิกปุ่ม Next >
    ได้หน้าต่าง Summary  ให้คลิกปุ่ม Finish

  7. ตัวอย่างการปรับแต่ง  guest  เปิดโปรแกรม VritualBox  ด้วยคำสั่ง VirtualBox
    ได้หน้าต่าง Sun VirtualBox  ที่ช่องด้านซ้ายจะมีรายชื่อ guest ที่สร้างไว้  ให้เลือก guest ที่ต้องการปรับแต่งไว้ก่อน
    ไปที่แถบด้านบนให้เลือกเมนู Machine -> Settings...
    ได้หน้าต่าง ...Settings ที่ช่องด้านซ้ายจะมีรายชื่ออุปกรณ์ที่สามารถใช้งานได้ ให้เลือกอุปกรณ์ที่ต้องการปรับแต่ง

    สำหรับ guest ที่เป็น linux server แนะนำให้ตั้งค่าดังนี้
    General -> Basic -> Base Memory Size = 256 MB
    General -> Basic -> Video Memory Size = 1 MB
    General -> Advanced ->  Extended Features: ให้คลิกเลือก Enable PAE/NX เพิ่มด้วย
    Audio -> ให้คลิกออก ไม่เลือก Enable Audio

  8. หากต้องการตั้งค่าให้ virtualbox ปิด guest โดยอัตโนมัติตอน shutdown host ให้ทำดังนี้
    ตรวจสอบดูว่าผู้ใช้เจ้าของ virtualbox เป็นใครด้วยคำสั่ง whoami ตัวอย่างสมมติว่าชื่อ mama
    ให้สร้างหรือแก้ไขแฟ้ม /etc/default/virtualbox เพิ่มให้มีข้อความประมาณว่า
    SHUTDOWN_USERS="mama"
    SHUTDOWN=acpibutton

    อาจทำง่ายๆด้วยการใช้คำสั่งว่า
    sudo sh -c "echo 'SHUTDOWN_USERS=\"$(whoami)\"' >> /etc/default/virtualbox"
    sudo sh -c "echo "SHUTDOWN=acpibutton" >> /etc/default/virtualbox"

    ผลคือตอน host ทำการ shutdown หรือ reboot ก็จะปิด vm guest ที่มีอยู่ทุกตัวโดยอัตโนมัติ

  9. ตัวอย่างการสั่งให้ virtualbox ทำงานแบบ command line

    ดูว่ามี guest อะไรบ้าง ใช้คำสั่ง
    VBoxManage list vms

    ดูว่ามี guest อะไรที่กำลังทำงาน ใช้คำสั่ง
    VBoxManage list runningvms

    ดูค่าต่างๆที่ตั้งไว้บน guest ใช้คำสั่งประมาณว่า
    VBoxManage showvminfo guestname

    ให้ guest ชื่อ SAMPLE ทำงานแบบมี gui ด้วย ใช้คำสั่ง
    VBoxManage startvm "SAMPLE"  --type gui

    ให้ guest ชื่อ SAMPLE ทำงานแบบไม่มี gui แต่ remote desktop เข้ามาทำงานได้ ใช้คำสั่ง
    VBoxManage startvm "SAMPLE"  --type headless

    สั่งปิด guest ชื่อ SAMPLE ใช้คำสั่ง
    VBoxManage controlvm "SAMPLE" acpipowerbutton

  10. การตั้งค่าให้ guest ชื่อ SAMPLE ทำงานทุกครั้งที่บูท host server ขึ้นมา
    สมมติว่า virtualbox ติดตั้งด้วย user ชื่อ mama
    ให้เพิ่มบรรทัดข้อความที่แฟ้ม /etc/rc.local ข้อความประมาณตัวอย่างว่า
    sudo -H -u mama  VBoxManage startvm "SAMPLE"  --type headless

  11. หากต้องการให้ remote desktop เข้ามาดู โดยมีการ authen ด้วยบัญชี username และ password บน linux  ให้ทำดังนี้

    ส่วนบน guest ให้ตั้งค่าเพิ่มเติมทำดังนี้ เปิดโปรแกรม VritualBox  ด้วยคำสั่ง VirtualBox
    ได้หน้าต่าง Sun VirtualBox  ที่ช่องด้านซ้ายจะมีรายชื่อ guest ที่สร้างไว้  ให้เลือก guest ที่ต้องการปรับแต่งไว้ก่อน
    ไปที่แถบด้านบนให้เลือกเมนู Machine -> Settings...
    ได้หน้าต่าง ...Settings ที่ช่องด้านซ้ายจะมีรายชื่ออุปกรณ์ที่สามารถใช้งานได้ ให้เลือก Display
    หน้าต่างด้านขวาเปลี่ยนเป็น Display ให้เลือกแถบ Remote Display  ให้ตั้งค่าดังนี้
    Remote Display -> ให้คลิกเลือก Enable Sever เพิ่ม แล้วปรับค่าอื่นๆ
    Remote Display -> Server Port: ให้ใส่ port ตามต้องการตัวอย่างเช่น 5000
    Remote Display -> Authentication Method:  เลือกเปลี่ยนให้เป็น External
    Remote Display -> Authentication Timeout: ให้คงเป็น 0 ไว้เหมือนเดิม
    เสร็จแล้วก็คลิก OK

    ต่อไปบน virtualbox  สั่งให้ guest ทำงานทาง command ด้วยตัวอย่าง
    คำสั่งประมาณว่า  VBoxManage startvm "SAMPLE"  --type headless

    ตัวอย่างคำสั่งในการใช้ linux PC ตัวอื่นเข้ามาดูด้วยคำสั่ง rdesktop -u username -p - hostname:5000
    ระบบจะมีการถามให้ป้อนรหัสผ่านก่อน จึงจะอนุญาติให้ใช้งานได้

  12. การนำแฟ้ม hard disk  ไปใช้งานเป็นอีก guest ในเครื่อง virtualhost เดียวกัน
    จะใช้วีธี copy แฟ้ม hard disk  ไปแล้วเปลี่ยนเป็นชื่ออื่นไม่ได้
    ต้องทำการ clone hard disk ไปใช้งาน เพราะ virtual มีการจำค่า UUID ไว้
    ตัวอย่างคำสั่งการ  clone hard disk ต้นฉบับจาก source.vdi ไปเป็นปลายทางคือ target.vdi
    ใช้คำสั่งว่า   VBoxManage clonehd  source.vdi target.vdi
    สำหรับเวอร์ชั่น 4.0 ต้องมีการระบุ path ของแฟ้ม vdi ที่ต้องการจัดการด้วย
    ตัวอย่างเช่น   VBoxManage clonehd  /home/mama/.VirtualBox/source.vdi  /home/mama/.VirtualBox/target.vdi

  13. แนะนำให้ติดตั้ง VirtualBox Guest Additions ด้วย เพื่อให้ share folder และแก้ไขปัญหาใช้งานแล้วเกิดมี 2 เมาส์ ทำดังนี้
    เปิดโปรแกรม VritualBox  สั่ง guest ที่ต้องการปรับแต่งให้ทำงานตามปรกติก่อน
    ด้านบนหน้าต่างของ guest ให้เลือกเมนู Devices -> Install Guest Additions...
    จะเห็นระบบทำงานสักครู่ไม่เกิน 2 นาทีก็จะนิ่งเป็นปรกติ
    เข้าไปทำงานใน guest แล้วเปิด drive ของ CD-ROM

    หาก guest เป็นวินโดวส์ จะได้ volume ชื่อประมาณว่า VirtualBox Guest Additions (D:) ก็ให้เข้าไปใช้เมาส์คลิกสั่งให้ volume นี้ทำงาน
    ได้หน้าต่าง Welcome to the Sun VirtualBox Guest Additions 4.0.4 Setup Wizard ... ให้คลิกปุ่ม Next >
    ได้หน้าต่าง License Agreement  ให้คลิกปุ่ม I Agree
    ได้หน้าต่าง Choose Install Location ให้คลิกปุ่ม Install แล้ว รอๆๆ
    รอจนได้หน้าต่าง Completing the Sun VirtualBox Guest Additions 4.0.4 Setup Wizard คลิกปุ่ม Finish ได้เลย
    แล้ว guest จะทำการ reboot ใหม่ ลองใช้งานดูผลได้เลย

    หาก guest เป็นลินุกซ์ จะได้ volume ชื่อประมาณว่า VBOXADDITIONS_4.0.4_70112
    ให้เข้าไปทำงานบน terminal ให้ใช้คำสั่งดังนี้
    cd /media/cdrom
    sudo sh autorun.sh
    รอจนเสร็จ แล้วก็รีบูท guest ใหม่ ลองใช้งานดูผลได้เลย

  14. วิธีใช้ Share Folder ที่ เครื่อง HOST เปิดให้ guest ใช้ เช่นเปิด Share ชื่อ Downloads

    หาก guest เป็นลินุกซ์ และต้องการให้ user สามารถเขียนอ่านได้ เช่น  User คือ mama
    โดยกำหนด Mount Point มาที่ vboxshare
    ใช้คำสั่ง
    mkdir vboxshare
    sudo mount -t vboxsf -o uid=mama,gid=mama Downloads vboxshare
    ก็จะใช้งานได้เหมือนเป็นพื้นที่ของตนเอง

  15. หากเจอปัญหา XP guest เวลาบูทแล้วเกิด "หน้าจอฟ้าพิฆาต (Blue Screen Of Death)"
    หรือการฟ้องให้เลือกเข้า safe mode เสร็จแล้วก็ยังรีบูทหมุนวนไปเรื่อยๆไม่ยอมจบ

    การแก้ไขคือให้หาวิธีเข้าไปจัดการแฟ้มที่เป็นต้นตอปัญหาคือแฟ้ม
    c:\windows\system32\drivers\intelppm.sys และ c:\windows\system32\drivers\processr.sys
    ให้เปลี่ยนชื่อแฟ้มทั้ง 2 นี้เป็นชื่ออื่น ปัญหานี้ก็จะหายไปชั่วคราว
    ยังไม่ทราบเหตุผลที่แท้จริงเหมือนกันว่า 2 แฟ้มนี้ใช้ทำอะไรกันแน่
    เมื่อบูท XP guest ขึ้นมาได้แล้ว ให้เข้าไปใน XP guest แล้วใช้คำสั่ง
    sc config processor start= disabled
    sc config intelppm start= disabled
    คราวนี้ปัญหาแบบนี้ก็จะจบลง