Linux KVM中FreeBSD9的安装

种种原因,站长已经很久没有关注过FreeBSD了,记得最后一次关注,FreeBSD还是8.0。现在已经到了9.0,安装界面上有了“质一级的飞跃”!由于真实主机上的安装没什么难度,这次就直接在KVM中安装。印象中FreeBSD属于比较保守的操作系统,对新的硬件和技术的支持相对比较慢。安装中也确实出现过问题,这里顺便也做个记录。

KVM主机是之前一直在说的Ubuntu1204的libvirt,没有桌面系统,也就意味着不能简单的通过virt-manger工具配置。主机在外网,且防火墙限制了它不能直接通过VNC连接。

首先是准备ssh 通道,windows下,我一直用putty

 

连接成功后,本地将会出现5900端口的监听,直接用VNC的客户端连接localhost的5900事实上就连接到了远程主机的5900。当然,虚拟机还没有启动,两个5900都不存在。

准备配置文件,其实我是直接用模版修改出来的:

 <domain type='kvm'>
  <name>medkaoyan</name>
  <uuid>f5936116-24c7-163f-13ac-7f50604faa5c</uuid>
  <memory>524288</memory>
  <currentMemory>524288</currentMemory>
  <vcpu>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.0'>hvm</type>
    <boot dev='cdrom'/> <!-- 首次用光驱启动 -->
  </os>
  <features>
    <acpi/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/VM/medkaoyan/freebsd.qcow2'/> <!-- 磁盘文件 -->
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
<!--
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/VM/medkaoyan/data.qcow2'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='1'/>
    </disk>
-->
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/root/FreeBSD-9.0-RELEASE-i386-disc1.iso'/> <!-- 安装介质 -->
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:ef:8c:06'/>
      <source bridge='br0'/>
      <model type='ne2k_pci'/> <!-- 网络 -->
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <!-- <input type='mouse' bus='ps2'/> -->
    <graphics type='vnc' port='-1' autoport='yes'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </memballoon>
  </devices>
</domain>

典型的xml,很好通读,里面的问题稍后再说。

制作虚拟磁盘文件,配置文件中,此文件名为 /data/VM/medkaoyan/freebsd.qcow2

kvm-image create -f qcow2 /data/VM/medkaoyan/freebsd.qcow2 20G   , 创建一个20G的虚拟磁盘。

多说一句,KVM支持多种虚拟磁盘格式,除了诸如vmdk等其他几个虚拟主机格式的文件之外,raw和qcow2我用的比较多。raw事实上是硬模拟了一个裸设备,这样做的优势是相对来说数据是平滑的,也就是一旦虚拟机崩溃,用这个文件可以硬恢复数据的。但磁盘空间是预分配的,而且不支持snap,从某种程度上说是增加了崩溃几率。qcow2的空间分配是按照使用率来的,效率比较高,而且支持数据压缩、数据缓存等高级功能,但问题是一旦崩溃,数据恢复比较复杂。大家各取所需吧。

下载安装镜像,没什么难度:

wget http://mirrors.163.com/FreeBSD/releases/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-disc1.iso

对于网络,系统原本推荐的是virtio,但FreeBSD不支持virtio,第一次安装的时候我在全部完成之后进入系统,手工配置内核后才OK,其间没有网络cvsup都是问题,费时费力。为了方便,索性这次直接修改默认配置到ne2k_pci,很方便!

确认无误后启动virsh,create你的xml配置文件,start 虚拟主机。此时5900开始监听,VNC上!

安装过程是图形化的,直接跳过。

完成后destroy 主机, 将启动介质从cdrom切换为hd。

首次进入系统后,准备之前说的virtio模块,优化性能(需要安装src源并保持更新)。

cd /usr/src/sys/dev
svn co http://svn.freebsd.org/base/projects/virtio/sys/dev/virtio
cd /usr/src/sys/modules
svn co http://svn.freebsd.org/base/projects/virtio/sys/modules/virtio
cd /usr/src/sys/modules/virtio

make install

漫长的编译过程。。。。完成后编辑 /boot/loader.conf,增加:

virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"

重起之后确认模块是否挂装:

# dmesg | grep -i  virtio
vtnet0:  on virtio_pci0
virtio_pci1:  port 0xc060-0xc07f irq 11 at device 4.0 on pci0
vtballoon0:  on virtio_pci1
virtio_pci2:  port 0xc080-0xc0bf mem 0xf2040000-0xf2040fff irq 10 at device 5.0 on pci0
vtblk0:  on virtio_pci2

写在最后的是通过virt-install的安装方法,有没有觉得之前看这么多是上当了? :mrgreen:  请先apt-get install virtinst

sudo virt-install \
--name medkaoyan\
--ram 512 --vcpus=2 \
--os-type unix --hvm --vnc \
--cdrom=/root/FreeBSD-9.0-RELEASE-i386-disc1.iso \
--network=bridge:br0,model=ne2k_pci \
--disk path=/data/VM/medkaoyan/freebsd.qcow2,size=20
推荐阅读:
时延 latency(亦称为延
事出前些日子有人咨询我:“在某
有感于CPU的各种电源状态描述
如果大家了解一点CPU的知识,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据