Difference between revisions of "Vnx-rootfsfedora"

From VNX
Jump to: navigation, search
(Created page with "{{Title|How to create a Fedora root filesystem for VNX}} Follow this procedure to create a fedora based root filesystem for VNX. The procedure has been tested with Fedora 14. <u...")
 
Line 59: Line 59:
 
<li>One of the other options (e.g "web server", "desktop system", etc) if you want a system with graphical user interface</li>
 
<li>One of the other options (e.g "web server", "desktop system", etc) if you want a system with graphical user interface</li>
 
</ul>
 
</ul>
<li>Once installation is finished, update the system and install additional packages</li>
+
 
 +
<li>Once installation is finished, stop the machine and edit root_fs_fedora.xml file and comment the following line in cdrom disk specification:</li>
 +
<!--source file='/almacen/iso/Fedora-14-i386-DVD.iso'/-->
 +
<li>Start the virtual machine again with:</li>
 +
virsh create root_fs_fedora.xml
 +
<li>Update the system and install additional packages</li>
 
  yum update
 
  yum update
 
  yum install perl perl-XML-DOM acpid udisks
 
  yum install perl perl-XML-DOM acpid udisks

Revision as of 20:00, 16 July 2011

How to create a Fedora root filesystem for VNX

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

  • Create the filesystem disk image:
  • qemu-img create -f qcow2 root_fs_fedora-base.qcow2 5GB
    
  • 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/14/Fedora/i386/iso/Fedora-14-i386-DVD.iso
    cp Fedora-14-i386-DVD.iso /almacen/iso
    
  • Create a libvirt XML definition (root_fs_freebsd.xml) containing the virtual machine description:
  • <domain type='kvm'>
      <name>Fedora</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_fedora-base.qcow2'/>
          <target dev='hda'/>
        </disk>
        <disk type='file' device='cdrom'>
          <source file='/almacen/iso/Fedora-14-i386-DVD.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_fedora.xml
    
  • Access virtual machine console with:
  • virt-viewer Fedora
    
  • Follow Fedora installation menus to install:
    • A "minimal" system, if you want a server rootfs without user interface
    • One of the other options (e.g "web server", "desktop system", etc) if you want a system with graphical user interface
  • Once installation is finished, stop the machine and edit root_fs_fedora.xml file and comment the following line in cdrom disk specification:
  • Start the virtual machine again with:
  • virsh create root_fs_fedora.xml
    
  • 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:
    • From the host execute:
    • /usr/share/vnx/bin/vnx_update_aced Fedora /usr/share/vnx/aced/vnx-aced-lf-0.1b.tgz 
      
    • From the virtual machine console:
    • ln -s /media/CDROM /media/cdrom
      perl /media/cdrom/install_vnxdaemon
      
  • Delete udev network rules files:
  • rm /etc/udev/rules.d/70-persistent-net.rules
    
  • Enable login on the first serial line by creating 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
    
  • Besides, you have to add ttyS0 to /etc/securetty file if you want to login root on that console:
  • echo "ttyS0" >> /etc/securetty
    
  • If you have chosen a "minimum installation", activate network services (they are disable by default):
  • chkconfig --level 3 network on
    
  • Optionally:
    • Install other services, for example, an apache server:
    • yum install httpd
      update-rc.d -f apache2 remove   # to avoid automatic start
      
    • 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 which 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
      
  • Clean yum cache and stop the machine with:
  • yum clean all
    halt
    

Installing additional software

To install additional software or modify your root file system, 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 root_fs_fedora.xml 
  • Install the software:
yum install ...
  • Delete udev rules files:
rm /etc/udev/rules.d/70-persistent-net.rules
  • Stop the machine with:
halt

Known problems