From VNX
Revision as of 11:44, 29 June 2011 by Admin (talk | contribs) (Created page with "{{Title|How to create a Freebsd root-file-system for VNX}} <ul> <li>Create the filesystem disk image:</li> qemu-img create -f qcow2 root_fs_freebsd-base.qcow2 5GB <li>Get FreeB...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

How to create a Freebsd root-file-system for VNX

  • Create the filesystem disk image:
  • qemu-img create -f qcow2 root_fs_freebsd-base.qcow2 5GB
  • Get FreeBSD installation CD. For example:
  • wget
    cp FreeBSD-8.1-RELEASE-i386-disc1.iso /almacen/iso
  • Create a libvirt XML definition (root_fs_freebsd.xml) containing the virtual machine description:
  • <domain type='kvm'>
        <type arch="i686">hvm</type>
        <boot dev='hd'/>
        <boot dev='cdrom'/>
      <clock sync="localtime"/>
        <disk type='file' device='disk'>
          <source file='/usr/share/vnx/filesystems/root_fs_freebsd-base.qcow2'/>
          <target dev='hda'/>
          <driver name="qemu" type="qcow2"/>
        <disk type='file' device='cdrom'>
          <source file='/almacen/iso/FreeBSD-8.1-RELEASE-i386-disc1.iso'/>
          <target dev='hdb'/>
        <interface type='network'>
          <source network='default'/>
        <serial type="pty">
          <target port="1"/>
        <console type="pty">
          <target port="1"/>
        <graphics type='vnc'/>

    Note: change "source file=" lines to whatever fits your case (use full paths).

  • Start the virtual machine with:
  • virsh create root_fs_freebsd.xml
  • Access virtual machine console with:
  • virt-viewer Freebsd
  • Follow FreeBSD installation menus to install a basic system with DHCP configured in the network interface and a user named "vnx".
  • Once the installation is finished, stop the machine and edit root_fs_freebsd.xml file and comment the following line in cdrom disk specification:
     <!--source file='/almacen/iso/FreeBSD-8.1-RELEASE-i386-disc1.iso'/-->
  • Start the virtual machine again and:
    • Install bash and change package repository:
    • pkg_add -r bash
      pw usermod root -s /usr/local/bin/bash
      pw usermod vnx -s /usr/local/bin/bash 
      echo "export PACKAGEROOT=" > ~/.bash_profile
    • Install perl and XML::DOM library:
    • pkg_add -r perl p5-libxml-enno
    • Disable DHCP on network interface by editing the /etc/rc.conf file and commenting the following line:
    • ifconfig_re0="DHCP"
    • Install VNX autoconfiguration daemon:
      • From the host execute:
      • /usr/share/vnx/bin/vnx_update_aced Freebsd /usr/share/vnx/aced/vnx-aced-lf-0.1b.tgz 
      • From the virtual machine console:
      • mount /cdrom
    • Configure the serial console by editting /etc/ttys file and changing the line:
    • ttyu0 "/usr/libexec/getty std.9600"   dialup  off secure


      ttyu0 "/usr/libexec/getty std.9600"   vt100  on secure
    • Optional: allow root login thorugh ssh by editing /etc/ssh/sshd_config file:
    • PermitRootLogin yes
    • Optional: set locales according to your preferences in /etc/profile:
    • export LANG=es_ES.UTF-8
      export LC_ALL=es_ES.UTF-8
    • Optional: add gnome window manager with:
      • Install packages needed:
      • pkg_add -r xorg-minimal gnome2-lite gdm
      • Add the following line to /etc/rc.conf:
      • gname_enable="YES"
      • Add the following line to /etc/fstab:
      • proc    /proc   procfs  rw      0       0
      • Disable the screensaver and change keyboard configuration in "System->Keyboard" menu.
    • Optional: reduce the boot timeout from 10 seconds to, for example, 3 seconds. Edit /boot/loader.conf and add:
    • autoboot_delay="3"
    • Optional: give vnx user (or whatever one you have created during installation) permissions tu su root:
    • pw usermod vnx -G wheel
    • Optional: if you have installed gnome, you can add automatic login following the instructions in:
    • Stop the machine with:
    • halt -p

If everything went well, your root filesystem will be ready to be used with VNX. You can make a simple test using the simple_freebsd.xml scenario distributed with VNX.

Note: after installing gnome, you probaly will get the following error message on the console:

acd0: FAILURE - unknown CMD (0x03) ILLEGAL REQUEST asc=0x20 ascq=0x00

To eliminate them you can execute:

hal-disable-polling --device /dev/acd0

Installing additional software

To install additional software or modify your root file system, you just have to start it as described above and:

  • Configure network interface with:
  • dhclient re0
  • Install new packages using "pkg_add -r ..." commands or using "sysinstall" utility. For example, to install apache web server:
  • pkg_add -r apache22
  • Stop de virtual machine with:
  • halt -p

Updating ACE daemon

If you have a root filesystem with the autoconfiguration and command execution daemon (ACE) already installed, you can use the autoupdate functionallity to update the daemon to a newer version. Just follow this procedure:

  • Edit the xml described above and comment the line defining the Freebsd iso file for the cdrom:
  • Start the virtual machine (directly using virsh or the vnx_modify_rootfs utility):
 /usr/share/vnx/bin/vnx_modify_rootfs root_fs_freebsd.xml 
  • Execute the update utility:
/usr/share/vnx/bin/vnx_update_aced Freebsd /usr/share/vnx/aced/vnx-aced-lf-0.1b.tgz 
  • Once the ace daemon is updated the virtual machine will be rebooted automatically.