Difference between revisions of "Vnx-rootfsfreebsd"

From VNX
Jump to: navigation, search
(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...")
(No difference)

Revision as of 10:44, 29 June 2011

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 ftp://ftp.rediris.es/mirror/FreeBSD/ISO-IMAGES-i386/8.1/FreeBSD-8.1-RELEASE-i386-disc1.iso
    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'>
      <name>Freebsd</name>
      <memory>524288</memory>
      <vcpu>1</vcpu>
      <os>
        <type arch="i686">hvm</type>
        <boot dev='hd'/>
        <boot dev='cdrom'/>
      </os>
      <features>
         <pae/>
         <acpi/>
         <apic/>
      </features>
      <clock sync="localtime"/>
      <devices>
        <emulator>/usr/bin/kvm</emulator>
        <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>
        <disk type='file' device='cdrom'>
          <source file='/almacen/iso/FreeBSD-8.1-RELEASE-i386-disc1.iso'/>
          <target dev='hdb'/>
        </disk>
        <interface type='network'>
          <source network='default'/>
        </interface>
        <serial type="pty">
          <target port="1"/>
        </serial>
        <console type="pty">
          <target port="1"/>
        </console>
        <graphics type='vnc'/>
      </devices>
    </domain>
    

    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=ftp://ftp.es.freebsd.org" > ~/.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
        /cdrom/install_vnxdaemon
        
    • Configure the serial console by editting /etc/ttys file and changing the line:
    • ttyu0 "/usr/libexec/getty std.9600"   dialup  off secure
      

      by:

      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:
    • http://www.freebsd.org/gnome/docs/faq2.html#q23
      
    • 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.