ควบคุม VirtualBox แบบ Command Line

Sun 15 Dec 2013
ใช้เวลาอ่าน 4 นาที
Featured Image

หลังจากพยายามทดสอบการใช้งาน VirtualBox แบบไม่พึ่ง Graphic จุดประสงค์หลักก็คือ ติดตั้ง Server ที่จะใช้ VM หลาย ๆ ตัวบนนั้น โดยใช้ VirtualBox แต่ไม่อยากเปิด Graphic ไว้ที่ Server จากการทดสอบก็พอเป็นเรื่องเป็นราวดังนี้

  • พบว่ายังต้องลง pkgs ที่พ่วงสำหรับลง VirtualBox อีกหลายตัวเหมือนกัน
  • ต้องเรียนรู้คำสั่งเพื่อควบคุม VirtualBox ผ่านทาง command line แต่มี doc ให้แบบละเอียดพอสมควร
  • ถ้าให้ง่าย ๆ ต้องลงจากที่ง่าย ๆ ไปก่อนแล้วค่อยไป import เข้า
  • ถ้าติดตั้งบน Server เลยก็สนุกดีผ่านทาง Remote Desktop บน OS X ใช้ของมันเองไม่ Work ต้องหามาลง ชื่อว่า Microsoft Remote Desktop  ของ Microsoft เอง
  • ทำงานผ่าน Remote Desktop รู้สึกว่าช้ามาก
  • เจอปัญหา Board Atom ที่ใช้ไม่ Support VT-X เลยลง Guest OS แบบ 32 bit เท่านั้น

คร่าว ๆ สำหรับสิ่งที่พบเจอคราวนี้มาดูขั้นตอนเบื้องต้นสำหรับการใช้งาน VirtualBox แบบ Command Line กัน

  1. สร้าง VM ขึ้นมาใหม่ให้ชื่อว่า vm0

    VBoxManage createvm –name “vm0” –register

    ผลออกมาประมาณนี้

    Virtual machine 'vm0' is created and registered.
    

UUID: 53d7f0de-ced7-4c53-b930-2d29400d69bd Settings file: ‘/root/VirtualBox VMs/vm0/vm0.vbox’

  1. กำหนดรายละเอียดของ VM ว่าจะให้มีอะไรเบื้องต้นยังไง
    VBoxManage modifyvm “vm0” –memory 512 –acpi on –boot1 dvd –nic1 bridged –bridgeadapter1 eth0 –ostype Redhat

  1. สร้าง Virtual Disk สำหรับเป็น HDD ให้กับ VM

    VBoxManage createvdi –filename ~/VirtualBox\ VMs/vm0/vm0-disk01.vdi –size 10000

    ผลออกมาประมาณนี้
<pre class="nums:false lang:sh decode:true ">0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Disk image created. UUID: fbf6febd-44de-4b48-833f-e87a587a121a


  1. เพิ่ม HDD Controller ให้กับ VM

    VBoxManage storagectl “vm0” –name “IDE Controller” –add ide
  2. Attach HDD และ CD เข้าไปยัง Controller ที่สร้างไว้ สำหรับ CD Image คือ ISO ตัวติดตั้งครับ
    VBoxManage storageattach “vm0” –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium ~/VirtualBox\ VMs/vm0/vm0-disk01.vdi
    VBoxManage storageattach “vm0” –storagectl “IDE Controller” –port 1 –device 0 –type dvddrive –medium /root/CentOS-6.4-i386-minimal.iso

  1. สำหรับเครื่องที่มีปัญหาเรื่อง CPU ไม่ Support VT-x ให้ปิดก่อนครับ แต่ส่วนใหญ่มัน Support หมดแหละ

    VBoxManage modifyvm “vm0” –hwvirtex off

  2. ตรวจสอบรายละเอียดของ VM ที่เราสร้างขึ้นมา

    VBoxManage showvminfo vm0

    ผลที่ได้จะประมาณนี้
<pre class="lang:sh decode:true ">Name:            vm0

Groups: / Guest OS: Red Hat UUID: 53d7f0de-ced7-4c53-b930-2d29400d69bd Config file: /root/VirtualBox VMs/vm0/vm0.vbox Snapshot folder: /root/VirtualBox VMs/vm0/Snapshots Log folder: /root/VirtualBox VMs/vm0/Logs Hardware UUID: 53d7f0de-ced7-4c53-b930-2d29400d69bd Memory size: 512MB Page Fusion: off VRAM size: 8MB CPU exec cap: 100% HPET: off Chipset: piix3 Firmware: BIOS Number of CPUs: 1 PAE: on Long Mode: on Synthetic CPU: off CPUID overrides: None Boot menu mode: message and menu Boot Device (1): DVD Boot Device (2): DVD Boot Device (3): HardDisk Boot Device (4): Not Assigned ACPI: on IOAPIC: off Time offset: 0ms RTC: local time Hardw. virt.ext: off Nested Paging: on Large Pages: off VT-x VPID: on VT-x unr. exec.: on State: powered off (since 2013-12-15T10:22:45.000000000) Monitor count: 1 3D Acceleration: off 2D Video Acceleration: off Teleporter Enabled: off Teleporter Port: 0 Teleporter Address: Teleporter Password: Tracing Enabled: off Allow Tracing to Access VM: off Tracing Configuration: Autostart Enabled: off Autostart Delay: 0 Default Frontend: 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 Storage Controller Bootable (0): on IDE Controller (0, 0): /root/VirtualBox VMs/vm0/vm0-disk01.vdi (UUID: fbf6febd-44de-4b48-833f-e87a587a121a) IDE Controller (1, 0): /root/CentOS-6.4-i386-minimal.iso (UUID: ab3bc771-af71-4b46-8118-feef1aa5c511) NIC 1: MAC: 080027BFD1E7, Attachment: Bridged Interface ’eth0’, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none 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 LPT 1: disabled LPT 2: disabled Audio: disabled Clipboard Mode: disabled Drag’n’drop Mode: disabled VRDE: disabled USB: disabled EHCI: disabled

USB Device Filters:

<none>

Available remote USB devices:

<none>

Currently Attached USB Devices:

<none>

Bandwidth groups: <none>

Shared folders: <none>

VRDE Connection: not active Clients so far: 0

Video capturing: not active Capture screens: 0 Capture file: /root/VirtualBox VMs/vm0/vm0.webm Capture dimensions: 1024x768 Capture rate: 512 kbps Capture FPS: 25

Guest:

Configured memory balloon size: 0 MB

&nbsp;</li> 

  * ถือว่าเป็นการเสร็จพิธีปลุกเสก ตอนนี้ก็สามารถเรียกใช้งานได้แล้ว โดยแทนที่ IP ของเครื่อง Server ลงไป<br class="none" />  
     <span class="whitespace-before:1 whitespace-after:1 lang:sh decode:true crayon-inline">VBoxVRDP -s vm0 -e &#8220;TCP/Address=10.x.x.x&#8221;</span><br class="none" /><br class="none" /></p> 
  * เปิด Remote Desktop Client แล้วติดต่อเข้ามายัง IP Server ถ้าเข้าไม่ได้ก็ลองเปิด firewall ดูครับ
  * ถ้าเกิดเหตุที่ไม่สามารถติดต่อหรือเข้าใช้งานได้และอยากจะปิด VM ก็ให้สั่ง<br class="none" />  
    <span class="whitespace-before:1 whitespace-after:1 lang:sh decode:true  crayon-inline ">VBoxManage controlvm vm0 poweroff</span></ol> 

ครั้งต่อ ๆ ไปถ้าเรา config เสร็จเรียบร้อยมี IP ในตัว VM แล้วก็ไม่จำเป็นต้องใช้ Remote Desktop แล้วนะครับ ลองเอาไปประยุกต์ใช้และเล่นกันดูครับ

&nbsp;

<div id="attachment_747" style="width: 844px" class="wp-caption aligncenter">
  <a href="/wp-content/uploads/2013/12/Screenshot-2013-12-15-18.07.40.png"><img aria-describedby="caption-attachment-747" loading="lazy" class="size-full wp-image-747" alt="Remote Desktop to VirtualBox" src="/wp-content/uploads/2013/12/Screenshot-2013-12-15-18.07.40.png" width="834" height="780" srcset="/wp-content/uploads/2013/12/Screenshot-2013-12-15-18.07.40.png 834w, /wp-content/uploads/2013/12/Screenshot-2013-12-15-18.07.40-300x280.png 300w, /wp-content/uploads/2013/12/Screenshot-2013-12-15-18.07.40-800x748.png 800w" sizes="(max-width: 834px) 100vw, 834px" /></a>
  
  <p id="caption-attachment-747" class="wp-caption-text">
    Remote Desktop to VirtualBox
  </p>
</div>

แหล่งอ้างอิง

  * <a href="https://www.virtualbox.org/manual/ch08.html" target="_blank">https://www.virtualbox.org/manual/ch08.html</a>
  * <a href="http://xmodulo.com/2013/05/how-to-create-and-start-virtualbox-vm-without-gui.html" target="_blank">http://xmodulo.com/2013/05/how-to-create-and-start-virtualbox-vm-without-gui.html</a>

ที่คล้ายกัน

OpenShift Origin Nightly on CentOS 6.5 VirtualBox