From VNX
Jump to: navigation, search

How to create a KVM CentOS root filesystem for VNX

Basic installation

Follow this procedure to create a KVM CentOS based root filesystem for VNX. The procedure has been tested with CentOS 5.6, 6.2, 6.4, 6.5 and 7.0.

  • Create the filesystem disk image:
  • qemu-img create -f qcow2 vnx_rootfs_kvm_centos.qcow2 20G
  • Get CentOS installation DVD (we recommend to use the complete DVD; the LiveDVD version does not include the customization menu to choose among different installation profiles: minimal, desktop, etc). For example:
  • wget
    cp CentOS-X.X-i386-bin-DVD1.iso /almacen/iso

    Note: latests versions of CentOS are distributed in two DVDs. However, only the first DVD is needed for basic installations; no need to download DVD2.

  • Create the virtual machine with:
  • vnx --create-rootfs vnx_rootfs_kvm_centos.qcow2 --install-media /almacen/iso/CentOS-X.X-i386-bin-DVD1.iso --mem 768M

    Note: around 768M of memory are needed to use the graphical installation assistant. With the textual assistant the memory requirements are lower (known to work with 512M).

    Note: add "--arch x86_64" option for 64 bits virtual machines

  • Follow the CentOS installation assistant. At some point, you will have to choose among different system profiles: Desktop, Minimal Desktop, Minimal, Basic Server, etc.
  • Once the installation is finished and the installer asks for rebooting the system, just stop the virtual machine using "virsh destroy ..." command and continue with the configuration phase.


  • Restart the system with the following command:
  • vnx --modify-rootfs vnx_rootfs_kvm_centos.qcow2 --update-aced --mem 768M

    Note: ignore the errors "timeout waiting for response on VM socket". Note2: 768M are needed if you are installing a root filesystem with desktop interface; 512M are enough for a text version.

  • Configure the serial console:
    • For CentOS 5.X and 6.X, following these instructions.
    • For CentOS 7.X, by executing:
    • grubby --update-kernel=ALL --args="console=ttyS0"
  • Delete the net udev rules file and reboot the system:
  • rm /etc/udev/rules.d/70-persistent-net.rules
  • Once started, access the system through the text console to easy the copy-paste of commands:
  • virsh console vnx_rootfs_kvm_centos.qcow2
  • Check that you have network connectivity. Maybe you have to activate the network interface by hand:
  • dhclient eth1

    Note: use "ip link show" to know which network interface to use.

  • Install daemonize package (e.g. for CentOs 7; change url to whatever version corresponds):
  • yum install
  • Update the system and install additional packages
  • yum update
    yum install perl perl-XML-LibXML perl-NetAddr-IP acpid perl-Sys-Syslog

    Note: if you get a dependencies error when installing LibXML package, try installing 'perl-XML-SAX' package instead.

  • Install VNX autoconfiguration daemon:
  • mount /dev/sdb /mnt/
    perl /mnt/vnxaced-lf/install_vnxaced
  • Optionally:
    • Disable the services you are not going to use to speed up the virtual machine startup (you can see the list of active services with "chkconfig --list"). For example to disable sendmail and bluetooth:
    • chkconfig sendmail off
      chkconfig bluetooth off
    • Disable the firewall. Firewall is enabled by default which could be problematic for testing purpose systems. If desired, disable it using the following command:
    • chkconfig iptables off
      chkconfig ip6tables off
    • Or, if using a "minumum installation", install network utilities:
    • yum install telnet wget openssh-clients traceroute tcpdump
  • Create a file /etc/vnx_rootfs_version to store version number and informacion about modifications:
  • VER=v0.25
    OS=CentOS 6.5
    DESC=Basic CentOS 6.5 root-filesystem without GUI
  • Finally, stop the virtual machine with:
  • vnx_halt

    vnx_halt deletes some caches and log files and optionally lets you write a short message to /etc/vnx_rootfs_version file describing the latest modifications done.

Installing additional software

To install additional software or to modify your root file system, you just have to:

  • Start a virtual machine from it:
  • vnx --modify-rootfs vnx_rootfs_kvm_centos.qcow2
  • Check network connectivity. Maybe you have to activate the network interface by hand:
  • dhclient eth1

    Note: use "ip link show" to know which network interface to use.

  • Do the modifications you want.
  • Finally, halt the system using:
  • vnx_halt

Updating VNXACED

You can automatically update the VNXACE daemon with the following command:

vnx --modify-rootfs vnx_rootfs_kvm_centos.qcow2 --update-aced -y

Known issues

  • When executing commands using vnx "--exe" option in virtual machines configured with exec_mode="cdrom", traces like the followinf appear on the consoles:
  • hdb: tray open
    end_request: I/O error, dev hdb, sector 8388352

    They are generated as a result of mount command execution by the VNX daemon. Commands are correctly executed. To be further investigated.