Vnx-rootfsfedora

From VNX
Revision as of 15:21, 21 May 2012 by David (talk | contribs) (Configuration)
Jump to: navigation, search

How to create a Fedora root filesystem for VNX

(being updated...do not use...)

Follow this procedure to create a fedora based root filesystem for VNX. The procedure has been tested with Fedora 16 and 14.

Basic installation

  • Create the filesystem disk image:
  • qemu-img create -f qcow2 vnx_rootfs_kvm_fedora.qcow2 8GB
    
  • Get Fedora installation DVD (use the complete DVD; do not use the Live version, as it seems the installation wizard does not include the customization menu). For example:
  • wget ftp://ftp.rediris.es/mirror/fedora/16/Fedora/i386/iso/Fedora-16-i386-DVD.iso
    cp Fedora-16-i386-DVD.iso /almacen/iso
    
  • Create the virtual machine with:
  • vnx --create-rootfs vnx_rootfs_kvm_fedora.qcow2 --install-media /almacen/iso/Fedora-16-i686-Live-Desktop.iso --mem 768M
    
  • Follow the Fedora installation assistant. At some point, you will have to choose among different system profiles: desktop, web server, minimal, etc.
  • Enable login on the first serial line:
    • Fedora 16. Execute this command:
    • ln -s /usr/lib/systemd/system/getty@.service   /etc/systemd/system/getty.target.wants/getty@ttyS0.service
      
    • Fedora 14. Create a file named /etc/init/serial-ttyS0.conf with the following content:
    • #This service maintains a getty on /dev/ttyS0.
      start on stopped rc RUNLEVEL=[2345]
      stop on starting runlevel [016]
      respawn
      exec /sbin/agetty /dev/ttyS0 9600 vt100-nav
      

      And add ttyS0 to /etc/securetty file if you want to login root on that console:

      echo "ttyS0" >> /etc/securetty
      
  • Finally, delete the net udev rules file and halt the system:
  • rm /etc/udev/rules.d/70-persistent-net.rules
    halt -p
    

Configuration

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

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

  • Access the system through the text console to easy the copy-paste of commands:
  • virsh console vnx_rootfs_kvm_fedora.qcow2
    
  • Check that you have network connectivity. Maybe you have to activate the network interface by hand:
  • dhclient eth0
    

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

  • Update the system and install additional packages
  • yum update
    yum install perl perl-XML-DOM acpid udisks
    

    Note: if yum fails, check that the network is working. Maybe you will have to manually execute "dhclient eth0", at least in the case of a minimal installation.

  • Install VNX autoconfiguration daemon:
  • mount /dev/sdb /mnt/
    perl /mnt/vnxaced-lf/install_vnxaced
    
  • If you have chosen a "minimum installation", activate network services (they are disabled by default):
  • chkconfig --level 3 network on
    
  • Optionally:
    • Install other services needed, for example, an apache server:
    • yum install httpd
      chkconfig httpd off  # to avoid automatic start in Fedora 16
      update-rc.d -f apache2 remove   # to avoid automatic start in Fedora 14
      
    • Or, if using a "minumum installation", install network utilities:
    • yum install telnet wget openssh-clients
      
    • If you want automatic login, just edit /etc/gdm/custom.conf and add the following lines:
    • AutomaticLoginEnable=true
      AutomaticLogin=vnx
      
    • Disable the firewall. Firewall is enabled by default; that could be problematic for testing purpose systems. If desired, disable it graphically in "System|Administration|Firewall" option, or using the following command from the command line:
    • chkconfig iptables off
      
  • Create a file /etc/vnx_rootfs_version to store version number and informacion about modification:
  • VER=v0.21
    OS=Fedora 14
    DESC=Basic Fedora 14 root-filesystem without GUI
    
  • Create a script named /usr/local/bin/vnx_halt:
  • #!/bin/bash
    # Clean yum cache
    yum clean all
    # Delete /etc/resolv.conf
    rm -f /etc/resolv.conf
    # Clean command history
    rm -f /root/.bash_history
    # Delete udev net rules files:
    rm -f /etc/udev/rules.d/70-persistent-net.rules
    # Delete VNXACE log
    rm -f /var/log/vnxaced.log
    while true; do
        # Ask for a message to save in /etc/vnx_rootfs_version file
        echo    "** Save a log message in /etc/vnx_rootfs_version file "
        echo -n "** describing the modifications done? "
        read -n 1 -p "[y/n] " answer
        echo ""
        case $answer in
            [Yy]* )
                    echo "** Log message (1 line maximum):"
                    read logmsg
                    DATE=`date`
                    echo "MODDATE=$DATE" >> /etc/vnx_rootfs_version
                    echo "MODDESC=$logmsg" >> /etc/vnx_rootfs_version
                    break;;
            [Nn]* ) break;;
            * )     echo "** Error: please answer 'y' or 'n'.";;
        esac
    done
    # Halt the system
    halt -p
    
  • Give the script execution permissions:
  • chmod +x /usr/local/bin/vnx_halt
    
  • Stop the machine with that script:
  • vnx_halt
    

Installing additional software

To install additional software or modify your root filesystem, you just have to start it as described above and make the operations required on the filesystem.

  • Start the virtual machine (directly using virsh or the vnx_modify_rootfs utility):
 /usr/share/vnx/bin/vnx_modify_rootfs rootfs_fedora.xml 
  • Install the software:
yum install ...
  • Stop the machine with:
vnx_halt

Known problems