ติดตั้ง virtualbox บน ubuntu

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 17-04-2557

เขียนครั้งแรกโดยคุณวิภัทร ศรุติพรหม

ดูแลโดย WIBOON


  1. หากติดตั้งกับรุ่นที่ต่ำกว่า ubuntu 12.04 อาจจำเป็นต้องติดตั้งโปรแกรมเพิ่มเติมก่อนด้วยคำสั่ง
    sudo apt-get install libqt4-network libqt4-opengl libcurl3 dkms

  2. ต่อไปดาวน์โหลดแฟ้มโปรแกรม virtualbox จากต้นฉบับ ต้องเลือกให้ถูกต้องกับรุ่นที่ต้องใช้งาน
    สามารถค้นหาไฟล์รุ่น 4.3.10 ได้จาก http://mirrors.psu.ac.th/pub/virtualbox-pkg/4.3.10/
    ติดตั้งผ่านทาง GUI desktop จำนวน 2 ไฟล์ เช่น ใช้กับ ubuntu 13.10 (raring)
    คือ http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/virtualbox-4.3_4.3.10-93012~Ubuntu~raring_i386.deb
    และ
    http://download.virtualbox.org/virtualbox/4.3.10/Oracle_VM_VirtualBox_Extension_Pack-4.3.10-93012.vbox-extpack
    หากพบข้อผิดพลาดเนื่องจากต้องการโปรแกรมที่เกี่ยวข้อง ให้ใช้คำสั่ง sudo apt-get -f install

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

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

  5. หากเคยติดตั้ง Extension Package รุ่นก่อนอยู่แล้ว ต้องถอนออกก่อนด้วยคำสั่ง
    sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"

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

    แค่นี้ก็เสร็จแล้ว

  7. ต้อง logout 1 ครั้ง แล้ว login เข้าไปใหม่

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

  9. หากเรียกโปรแกรม 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 เป็นเวอร์ชั่นใหม่

  10. การปรับแต่งให้ใช้ usb ได้ สำหรับ ubuntu 9.04 และ 8.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

  11. ตัวอย่างการสร้าง 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 ออกไปได้เลย

  12. ตัวอย่างการสร้าง 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

  13. ตัวอย่างการปรับแต่ง 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

  14. หากต้องการตั้งค่าให้ 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 ที่มีอยู่ทุกตัวโดยอัตโนมัติ

  15. ตัวอย่างการสั่งให้ 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

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

  17. หากต้องการให้ 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
    ระบบจะมีการถามให้ป้อนรหัสผ่านก่อน จึงจะอนุญาตให้ใช้งานได้

  18. การนำแฟ้ม 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

  19. แนะนำให้ติดตั้ง 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.1.6 Setup Wizard ... ให้คลิกปุ่ม Next >
    ได้หน้าต่าง License Agreement ให้คลิกปุ่ม I Agree
    ได้หน้าต่าง Choose Install Location ให้คลิกปุ่ม Install แล้ว รอๆๆ
    รอจนได้หน้าต่าง Completing the Sun VirtualBox Guest Additions 4.1.6 Setup Wizard คลิกปุ่ม Finish ได้เลย
    แล้ว guest จะทำการ reboot ใหม่ ลองใช้งานดูผลได้เลย

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

  20. วิธีใช้ 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
    ก็จะใช้งานได้เหมือนเป็นพื้นที่ของตนเอง

  21. หากเจอปัญหา 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
    คราวนี้ปัญหาแบบนี้ก็จะจบลง