一般虚拟机都很容易安装,尤其是使用有图形界面的虚拟机软件。
但在某些场合,只能命令行安装。
现在linux流行的虚拟机软件有Xen\KVM等。ubuntu自从9.04开始,从源中去掉Xen,转为提供KVM。本文记录下命令行安装KVM虚拟机的过程。
Host主机是在Ubuntu 11.04,安装的Guest主机将使用Ubuntu 10.04
准备
sudo apt-get install kvm libvirt-bin virtinst
你还需要有一个Ubuntu 10.04 的ISO,我选用的是server 32位版。然后把iso mount起来
sudo mkdir /media/iso sudo mount -o loop /media/1T/ISO/linux/ubuntu-10.04.2-server-i386.iso /media/iso cd /media/iso python -m SimpleHTTPServer
使用python命令可以以当前目录为根目录,创建一个简易HTTP Server,留作之后的步骤使用。
创建虚拟机
将以下内容写到一个bash脚本,如build.sh:
#!/bin/bash if [ "$#" -ne 2 ]; then echo "Usage: $0 " exit 0 fi name=$1 file=$2 virt-install -n ${name} \ -r 512 --vcpus=2 --nographic \ --os-type=linux --os-variant=ubuntuLucid \ --disk path=${file},size=5 \ -v --arch=i386 -d \ --connect qemu:///system \ --accelerate \ --location http://localhost:8000/ubuntu \ --extra-args="text console=tty0 utf-8 console=ttyS0,115200"
使用
./build.sh datanode1 vm1.img
即可开始创建Guest OS,过程中会有一段时间黑屏,KVM进程会占用大量CPU,这是正常的,请耐心等待。
很快会进入到命令行安装Ubuntu的界面,按照向导操作即可。其中有一步让你选安装什么包,请选上OpenSSH,当然你也可以之后再安装。(其中有一步是选择源镜像,按照某文章,是可以用iso mount起来,然后建立HTTP服务器来作为源的,但我尝试失败了,如果你知道,请告诉我)
经过漫长的从网上源下载安装后,Ubuntu Guest OS就已经装好了。
配置虚拟机
使用virsh命令可以进入虚拟机管理shell,list –all命令可以列出现有的虚拟机。
使用start datanode即可启动虚拟机,使用console datanode即可把当前console连接上虚拟机。
登录进虚拟机后,查看下IP。推荐使用ssh登录虚拟机而不是console,console模式在vi编辑时会有问题,应该是shell的问题,懒得深究了。
默认KVM的虚拟机会使用NAT/DHCP配置,这里我把它改成Static IP,方便之后ssh登录。
配置静态IP
sudo vi /etc/network/interfaces
将iface eth0 inet dhcp那行注释掉,配置如下:
#iface eth0 inet dhcp iface eth0 inet static address 192.168.122.101 netmask 255.255.255.0 gateway 192.168.122.1
然后执行命令
sudo ifdown eth0 && sudo ifup eth0
创建第二个虚拟机
有了第一个虚拟机,如果需要创建另一个一模一样的虚拟机,可以使用virt-clone命令。
virt-clone --connect=qemu:///system -d -f vm2.img -o datanode1 -n datanode2
复制好之后,需要修改一些地方以便与之前源虚拟机区分开来。
通过console连接上datanode2,编辑/etc/hosts和/etc/hostname,修改datanode1为datanode2
然后执行
sudo rm /etc/udev/rules.d/70-persistent-net.rules sudo reboot
重启后即可让虚拟机生成自己的网络配置
重复上一节的配置静态IP步骤,并在Host主机内配置hosts指向Guest OS的地址。至此,多个虚拟机的配置即告完成。
参考:
- Installing an Ubuntu 10.x KVM Guest OS from the Command-line (virt-install and virsh)
- KVMCreateGuests
- How clone a KVM virtual machine on Ubuntu Server
Pingback: JJLIU'S WORLD » 通过console连接远程kvm虚拟机()