CoEPP RC
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
cernvm_uvic [2012/12/07 16:41]
lucien
cernvm_uvic [2013/01/31 12:17]
joannah
Line 1: Line 1:
 +The doc has been migrated to:
  
-====== Customise UVic's CernVM Images ====== +  ​* [[cernvm_nectar ​Customise ​CernVM ​Images]]
-~~NOTOC~~ +
-===== Download Images ===== +
-  ​Download and unzip UVic's CernVM 2.5.1 images of version 4 (dual-hypervisor:​ KVM+Xen): +
-    * Production: <code bash> +
-$ wget http://​repoman.heprc.uvic.ca/​api/​images/​raw/​crlb/​kvm/​cernvm-batch-node-2.5.1-3-1-x86_64-v4.img.gz +
-$ gunzip cernvm-batch-node-2.5.1-3-1-x86_64-v4.img.gz +
-</​code>​ +
-    * Test: <code bash> +
-$ wget http://​repoman.heprc.uvic.ca/​api/​images/​raw/​crlb/​kvm/​cernvm-batch-node-test-2.5.1-3-1-x86_64-v4.img.gz  +
-$ gunzip cernvm-batch-node-test-2.5.1-3-1-x86_64-v4.img.gz  +
-</​code>​ +
- +
-===== Rename the Images ===== +
-  * Change the image names: <code bash> +
-$ mv cernvm-batch-node-2.5.1-3-1-x86_64-v4.img cernvm-batch-nectar-2.5.1-3-1-x86_64-v4.img +
-$ mv cernvm-batch-node-2.5.1-3-1-x86_64-v4.img cernvm-batch-nectar-test-2.5.1-3-1-x86_64-v4.img +
-</​code>​ +
- +
-===== Mount CernVM Image ===== +
-  * Use the following comments to mount/​unmount the image for further modification:​ <code bash> +
-$ kpartx -av cernvm-batch-nectar-test-2.5.1-3-1-x86_64-v4.img +
-$ mount /​dev/​mapper/​loop0p1 /mnt +
-... +
-$ umount /mnt +
-$ kpartx -d cernvm-batch-nectar-test-2.5.1-3-1-x86_64-v4.img +
-</​code>​ +
-  * **Please NOTE**: +
-    * We use the test image all through this recipe on Ubuntu 11.10 with a root permission.  +
-    * You will have to do the same to the production image. +
- +
-===== Change Image'​s Label ===== +
-  * Modify the file **/​mnt/​.image.metadata**,​ change the **name** attribute as following: <code bash> +
-$ vi /​mnt/​.image.metadata +
-hypervisor: kvm,xen +
-name: cernvm-batch-nectar-test-2.5.1-3-1-x86_64-v4.img.gz +
-</​code>​ +
- +
-===== Change root's Password ===== +
-  * Change root's password for access in case we need to boot a VM with the image locally for package installation:​ <code bash> +
-$ chroot /mnt +
-$ passwd  +
-Changing password for user root. +
-New UNIX password:  +
-Retype new UNIX password:  +
-passwd: all authentication tokens updated successfully. +
-$ exit +
-</​code>​ +
- +
-===== Turn Off Firewall Rules ===== +
-  * Turn off iptables service by default. The security groups would take care of access rules. <code bash> +
-$ chroot /mnt +
-$ chkconfig iptables off +
-$ chkconfig --list | grep iptables +
-iptables ​      ​ 0:​off 1:​off 2:​off 3:​off 4:​off 5:​off 6:​off +
-$ exit +
-</​code>​ +
- +
-===== Configure OpenSSH ===== +
-  * Modify the file **/​mnt/​etc/​ssh/​sshd_config** and make sure the following options have correct default values: <code bash> +
-$ vi /​mnt/​etc/​ssh/​sshd_config +
-.... +
-PermitRootLogin without-password +
-RSAAuthentication yes +
-PubkeyAuthentication yes +
-PasswordAuthentication no +
-ChallengeResponseAuthentication no +
-UsePAM no +
-.... +
-</​code>​ +
- +
-===== Turn On OpenSSH Service ===== +
-  * The service sshd is turned on by default on startup. Make sure it has proper run-levels: <code bash> +
-$ chroot /mnt +
-$ chkconfig sshd on +
-$ chkconfig --list | grep sshd +
-sshd           ​ 0:​off 1:​off 2:​on 3:​on 4:​on 5:​on 6:​off +
-$ exit +
-</​code>​ +
- +
-===== Remove All SSH Keys Embedded in the Image ===== +
-  * It's highly recommended by Nectar to remove all ssh keys from image and use its metadata service for downloading public key and add it to the root authorized_keys file during VM instantiation.  +
-  * To remove them: <code bash> +
-$ rm -rf /​mnt/​root/​.ssh/​authorized_keys +
-$ rmdir /​mnt/​root/​.ssh/​ +
-</​code>​ +
- +
-===== Create Startup Scripts ===== +
- +
-==== format_mount_vdb ==== +
-  * This script is to format and mount the on-instance/​secondary/​ephemeral storage of the 30 GB (per CPU core) disk. +
-  * Create an init script /​mnt/​etc/​init.d/​format_mount_vdb:​ <code bash> +
-#​!/​bin/​bash +
-+
-# format_mount_vdb ​ Set correct hostname based on FQDN after networking +
-+
-# chkconfig: 2345 00 99 +
-# description:​ Format and mount the on-instance/​secondary/​ephemeral storage  +
-#              of the 30 GB (per CPU core) disk. +
-+
-### BEGIN INIT INFO +
-# Provides: ​         format_mount_vdb +
-# Required-Start: ​    +
-# Required-Stop:​ +
-# Default-Start: ​    2 3 4 5 +
-# Default-Stop: ​     0 1 6 +
-# Short-Description:​ format_mount_vdb daemon, formatting and mounting the  +
-#                    secondary storage. +
-# Description: ​      The format_mount_vdb daemon is a script which creates +
-#                    the partition table for the secondary storage of 30  +
-#                    GB per CPU core disk (/dev/vdb); formats it and then  +
-#                    mounts it to /scratch directory.  +
-### END INIT INFO +
- +
-lockfile=/​var/​log/​format_mount_vdb +
- +
-# Carry out specific functions when asked to by the system +
-case "​$1"​ in +
-  start) +
-    if ! -f $lockfile ] ; then +
-       +
-      # Create partition table for the secondary disk +
-      (echo n; echo p; echo 1; echo ; echo; echo w) | /sbin/fdisk /dev/vdb +
-       +
-      # Format and mount the secondary disk +
-      /bin/sleep 3 && /​sbin/​mkfs.ext2 -L blankpartition0 /dev/vdb1 && /bin/mount -t ext2 /dev/vdb1 /scratch +
-       +
- +
-      touch $lockfile +
-    fi +
-    ;; +
-  stop) +
-    echo "​Stopping script format_mount_vdb"​ +
-    ;; +
-  status) +
-    if -f $lockfile ]; then +
-      echo "The secondary storage /dev/vdb1 has been formatted and mounted into /scratch by format_mount_vdb."​ +
-    else +
-      echo "The secondary storage /dev/vdb1 hasn't been formatted and mounted into /scratch by format_mount_vdb."​ +
-    fi +
-    ;; +
-  *) +
-    echo "​Usage:​ /​etc/​init.d/​format_mount_vdb {start|stop|status}"​ +
-    exit 1 +
-    ;; +
-esac +
- +
-exit 0 +
-</​code>​ +
-  * Set correct file permissions:​ <code bash> +
-$ chmod 755 /​mnt/​etc/​init.d/​format_mount_vdb +
-</​code>​ +
-  * Create symbolic links: <code bash> +
-$ chroot /mnt +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc0.d/​K99format_mount_vdb +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc1.d/​K99format_mount_vdb +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc2.d/​S00format_mount_vdb +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc3.d/​S00format_mount_vdb +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc4.d/​S00format_mount_vdb +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc5.d/​S00format_mount_vdb +
-$ ln -s /​etc/​init.d/​format_mount_vdb /​etc/​rc.d/​rc6.d/​K99format_mount_vdb +
-$ exit +
-</​code>​ +
-  * Enable the init script: <code bash> +
-$ chroot /mnt +
-$ chkconfig --add format_mount_vdb +
-$ chkconfig --list | grep format_mount_vdb +
-format_mount_vdb 0:​off 1:​off 2:​on 3:​on 4:​on 5:​on 6:​off +
-$ exit +
-</​code>​ +
- +
- +
-==== fix_hostname ==== +
-  * This script is to fix the wrong default hostname assigned by Nectar. In Nectar cloud platform, they haven'​t provided a DNS service for VMs yet. A solution of DNS provision is under investigation and it will be rolled out to all Nectar cloud nodes at some point. Till then, this script is used as a workaround. +
-  * Create an init script /​mnt/​etc/​init.d/​fix_hostname:​ <code bash> +
-#​!/​bin/​bash +
-+
-# fix_hostname ​ Set correct hostname based on FQDN after networking +
-+
-# chkconfig: 2345 11 91 +
-# description:​ Set correct hostname based on FQDN at boot time. +
-+
-### BEGIN INIT INFO +
-# Provides: ​         fix_hostname +
-# Required-Start: ​   $network +
-# Required-Stop:​ +
-# Default-Start: ​    2 3 4 5 +
-# Default-Stop: ​     0 1 6 +
-# Short-Description:​ fix_hostname daemon, setting correct hostname FQDN +
-# Description: ​      The fix_hostname daemon is a script which fix the wrong +
-#   ​hostname assigned by Nectar cloud by default. ​ We want it to be active +
-#   in runlevels 2, 3, 4 and 5, as these are the runlevels as the networking +
-#   ​service. +
-### END INIT INFO +
- +
-lockfile=/​var/​log/​fix_hostname +
- +
-# Carry out specific functions when asked to by the system +
-case "​$1"​ in +
-  start) +
-    if [ ! -f $lockfile ] ; then +
-       +
-      echo "​Starting script fix_hostname"​ +
-      # EC2 Metadata server +
-      EC2_METADATA=169.254.169.254 +
- +
-      # Get the IP address assigned +
-      # Note: The IP addresses assigned in the Research Cloud are listed as  +
-      #       ​private-ips as they are automatically assigned rather than elastic  +
-      #       IPs.  +
-      IP_ADDRESS=`curl -m 10 -s http://​$EC2_METADATA/​latest/​meta-data/​local-ipv4` +
- +
-      # Get host name based on FQDN +
-      # eg. host 115.146.94.139 | grep '​domain name pointer'​ | awk '​{print $5}' +
-      # eg. nslookup 115.146.94.139 | grep 'name =' | awk '​{print $4}' +
-      EXTHOSTNAME=`nslookup $IP_ADDRESS | grep 'name =' | awk '​{print $4}'​` +
-      # Remove last character +
-      EXTHOSTNAME=${EXTHOSTNAME%?​} +
-   +
-      # Fix hostname settings +
-      echo $IP_ADDRESS $EXTHOSTNAME >> /​etc/​hosts +
-      sed -i "​s/​^HOSTNAME=.*$/​HOSTNAME=$EXTHOSTNAME/"​ /​etc/​sysconfig/​network +
-   +
-      # Set hostname to correct host FQDN and set it to external +
-      echo $EXTHOSTNAME +
-      hostname $EXTHOSTNAME +
-      touch $lockfile +
- +
-    fi +
-    ;; +
-  stop) +
-    echo "​Stopping script fix_hostname"​ +
-    #rm -f $lockfile +
-    ;; +
-  status) +
-    if [ -f $lockfile ]; then +
-      echo "Real hostname has been set to external by fix_hostname."​ +
-    else +
-      echo "​Hostanme hasn't been changed by fix_hostname."​ +
-    fi +
-    ;; +
-  *) +
-    echo "​Usage:​ /​etc/​init.d/​fix_hostname {start|stop|status}"​ +
-    exit 1 +
-    ;; +
-esac +
- +
-exit 0 +
-</​code>​ +
-  * Set correct file permissions:​ <code bash> +
-$ chmod 755 /​mnt/​etc/​init.d/​fix_hostname +
-</​code>​ +
-  * Create symbolic links: <code bash> +
-$ chroot /mnt +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc0.d/​K91fix_hostname +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc1.d/​K91fix_hostname +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc2.d/​S11fix_hostname +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc3.d/​S11fix_hostname +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc4.d/​S11fix_hostname +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc5.d/​S11fix_hostname +
-$ ln -s /​etc/​init.d/​fix_hostname /​etc/​rc.d/​rc6.d/​K91fix_hostname +
-$ exit +
-</​code>​ +
-  * Enable the init script: <code bash> +
-$ chroot /mnt +
-$ chkconfig --add fix_hostname +
-$ chkconfig --list | grep fix_hostname +
-fix_hostname 0:​off 1:​off 2:​on 3:​on 4:​on 5:​on 6:​off +
-$ exit +
-</​code>​ +
- +
-==== rc.local ==== +
-  * Create a startup script as **/​mnt/​etc/​rc.d/​rc.local** to do the following tasks: +
-    * Download SSH public key from Openstack Metadata service and store in place during VM startup. +
-    * Format and mount the 30 GB (per CPU core) ephemeral disk. +
-    * Fix hostname issue. +
-  * Simply copy the source code listed below into **/​mnt/​etc/​rc.d/​rc.local**:​ <code bash> +
-#!/bin/sh +
-+
-# This script will be executed *after* all the other init scripts. +
-# You can put your own initialization stuff in here if you don'​t +
-# want to do the full Sys V style init stuff. +
- +
-touch /​var/​lock/​subsys/​local +
- +
-#​------------------------------------------------------------------#​ +
-#     ​Download SSH public key from Openstack Metadata service ​     # +
-#​------------------------------------------------------------------#​ +
- +
-# Create .ssh directory if it doesn'​t exit +
-if [ ! -d /root/.ssh ] ; then +
-  mkdir -p /​root/​.ssh +
-  chmod 700 /​root/​.ssh +
-fi +
- +
-# Fetch public key from Nectar cloud metadata service +
-wget -O /tmp/my-key http://​169.254.169.254/​latest/​meta-data/​public-keys/​0/​openssh-key +
-if [ $? -eq 0 ] ; then +
-  cat /tmp/my-key >> /​root/​.ssh/​authorized_keys +
-  chmod 600 /​root/​.ssh/​authorized_keys +
-  rm /​tmp/​my-key +
-fi +
- +
-</​code>​ +
-  * Make sure **/​mnt/​etc/​rc.d/​rc.local** is executable: <code bash> +
-$ ll /​mnt/​etc/​rc.d/​rc.local  +
--rwxr-xr-x 1 root root 1596 2012-11-19 21:52 /​mnt/​etc/​rc.d/​rc.local +
-</​code>​ +
- +
-===== Fix Python Version ===== +
-  * There are two python versions existing in the image and CernVM ​uses Python 2.7.3 which is not the one we need to use: <code bash> +
-$ chroot /mnt +
-$ /​usr/​local/​bin/​python -V +
-Python 2.7.3 +
-$ /​usr/​bin/​python -V +
-Python 2.4.3 +
-$ which python +
-/​usr/​local/​bin/​python +
-$ python -V +
-Python 2.7.3 +
-$ exit +
-</​code>​ +
-  * Fix it with the following command. This will make a hardlink from /​usr/​local/​bin/​python --> /​usr/​bin/​python (replacing the old hardlink). <code bash> +
-$ chroot /mnt +
-$ ln -f /​usr/​bin/​python /​usr/​local/​bin/​python +
-$ python -V +
-Python 2.4.3 +
-$ exit +
-</​code>​ +
- +
-===== CVMFS Configuration ===== +
-  * Specify CVMFS HTTP proxy and CVMFS server to use: <code bash> +
-$ vi /​mnt/​etc/​cvmfs/​default.local +
-CVMFS_REPOSITORIES=atlas.cern.ch,​atlas-condb.cern.ch,​grid.cern.ch +
-CVMFS_QUOTA_LIMIT=3000 +
-CVMFS_HTTP_PROXY="​http://​rcsquid1.atlas.unimelb.edu.au:​3128|http://​rcsquid2.atlas.unimelb.edu.au:​3128;​http://​cernvm-webfs.atlas-canada.ca:​3128;​DIRECT"​ +
-$ vi /​mnt/​etc/​cvmfs/​domain.d/​cern.ch.local +
-CVMFS_SERVER_URL="​http://​cvmfs.fnal.gov:​8000/​opt/​@org@;​http://​cvmfs.racf.bnl.gov:​8000/​opt/​@org@;​http://​cernvmfs.gridpp.rl.ac.uk:​8000/​opt/​@org@;​http://​cvmfs-stratum-one.cern.ch:​8000/​opt/​@org@;​http://​cvmfs02.grid.sinica.edu.tw:​8000/​opt/​@org@"​ +
-</​code>​ +
- +
- +
-===== Fix Failed VM Instance Registration with Condor (In progress) ===== +
-  * There are some workaround to enable registration of VM instances on Nectar cloud with Condor: +
-    * Modify the Condor init script, /​mnt/​etc/​init.d/​condor +
-      * Add the following funtion into /​mnt/​etc/​init.d/​condor:​ <code bash> +
-setup_on_nectar() { +
-        local_file=`get_condor_config_val LOCAL_CONFIG_FILE` +
- +
-        # Get the IP address assigned by Openstack +
-        # Note: The IP addresses assigned in the Nectar Cloud are listed as  +
-        #       ​private-ips as they are automatically assigned rather than  +
-        #       ​elastic IPs.  +
-        public_ip=`curl -m 10 -s http://​$EC2_METADATA/​latest/​meta-data/​local-ipv4` +
-        test $public_ip != "​0.0.0.0"​ > /dev/null 2>&​1 +
-        HAS_PUBLIC_IP=$?​ +
- +
-        curl -m 10 -s http://​$EC2_METADATA/​ >/​dev/​null 2>&​1 +
-        IS_EC2=$? +
-        if [ $IS_EC2 -eq 0 ; then +
- +
-                # Get host name based on FQDN +
-                EXTHOSTNAME=`nslookup $public_ip | grep 'name =' | awk '​{print $4}'​` +
-                # Remove last character +
-                EXTHOSTNAME=${EXTHOSTNAME%?​} +
-   +
-                # Fix hostname settings +
-                echo $public_ip $EXTHOSTNAME >> /​etc/​hosts +
-                sed -i "​s/​^HOSTNAME=.*$/​HOSTNAME=$EXTHOSTNAME/"​ /​etc/​sysconfig/​network +
-   +
-                # Set hostname to correct host FQDN and set it to external +
-                hostname $EXTHOSTNAME +
- +
-                if [ $HAS_PUBLIC_IP -eq 0 ; then +
-                    private_network_name=amazon-ec2-`curl -s http://​$EC2_METADATA/​latest/​meta-data/​placement/​availability-zone` +
-                    replace_or_append "​PRIVATE_NETWORK_NAME"​ "​PRIVATE_NETWORK_NAME=$private_network_name"​ $local_file +
- +
-                    tcp_forwarding_host=`curl -s http://​$EC2_METADATA/​latest/​meta-data/​local-ipv4` +
-                    replace_or_append "​TCP_FORWARDING_HOST"​ "​TCP_FORWARDING_HOST=$tcp_forwarding_host"​ $local_file +
- +
-                    private_network_interface=`curl -s http://​$EC2_METADATA/​latest/​meta-data/​local-ipv4` +
-                    replace_or_append "​PRIVATE_NETWORK_INTERFACE"​ "​PRIVATE_NETWORK_INTERFACE=$private_network_interface"​ $local_file +
-                else +
-                    private_network_interface=`curl -s http://​$EC2_METADATA/​latest/​meta-data/​local-ipv4` +
-                    replace_or_append "​PRIVATE_NETWORK_INTERFACE"​ "​PRIVATE_NETWORK_INTERFACE=$private_network_interface"​ $local_file +
-                fi +
-        fi +
-+
- +
-</​code>​ +
-      * Add the following line into start() function in /​mnt/​etc/​init.d/​condor:​ <code bash> +
-        setup_on_nectar +
-</​code>​ +
-    * Install ec2contexthelper script in the image.  +
-      * Boot a VM instance from the image you are currently working on. You can use virt-manager to instantiate it. +
-      * After the VM is booted, use the root account and its password you just created in previous step to log into the VM instance. +
-      * Get the source code from https://​github.com/​hep-gc/​cloud-scheduler/​tree/​master/​scripts/​ec2contexthelper and install it in the image. <code bash> +
-$ mkdir /​root/​Git/​ec2contexthelper +
-$ cd /​root/​Git/​ec2contexthelper +
-$ wget https://​raw.github.com/​hep-gc/​cloud-scheduler/​master/​scripts/​ec2contexthelper/​context --no-check-certificate +
-$ wget https://​raw.github.com/​hep-gc/​cloud-scheduler/​master/​scripts/​ec2contexthelper/​contexthelper --no-check-certificate +
-$ wget https://​raw.github.com/​hep-gc/​cloud-scheduler/​master/​scripts/​ec2contexthelper/​setup.py --no-check-certificate +
-$ python setup.py install +
-$ chkconfig context on +
-$ chmod a+x /​etc/​init.d/​context +
-</​code>​ +
-      * Fix the line at the top of /​etc/​init.d/​context:​ <code bash> +
-$ vi /​etc/​init.d/​context +
-... +
-CONTEXT_HELPER="/​usr/​local/​bin/​contexthelper"​ +
-... +
-</​code>​ +
-      * shutdown the VM instance. <code bash> +
-$ shutdown -h now +
-</​code>​ +
- +
-===== Modify ATLAS_SITE_NAME in .bashrc ===== +
-  * Modify the file **.bashrc** under each atlas user's home directory (eg. /​mnt/​home/​atlas01/​.bashrc);​ change the value of directive ATLAS_SITE_NAME from **FutureGrid** to **Australia-ATLAS**. +
- +
- +
-===== Repair swapfile ===== +
-  * The original swapfile /​mnt/​var/​swap in the image is corrupt and can't be used. The following is the testing result from a test VM instance booted from the original image: <code bash> +
-[root@i-000029ac ~]# swapon /var/swap +
-swapon: Skipping file /var/swap - it appears to have holes.  +
-</​code>​ +
-  * Create a new 1GB swapfile and copy it into image: <code bash> +
-$ dd if=/​dev/​zero of=/​var/​swap bs=1024 count=1048576 +
-$ mkswap -c -v1 /var/swap +
-$ mv /​mnt/​var/​swap /​mnt/​var/​swap.old +
-$ mv /var/swap /​mnt/​var/​swap +
-</​code>​ +
- +
-===== Network Checking List ===== +
-  * There are a couple of things you need to check in your image. +
- +
-==== Remove the network persistence rules ==== +
-  * If you don't remove the network persistence rules then the network interface will not come up as eth0 and you won't be able to connect to it in the cloud. +
-  * Simply check if the network persistence rules exist in your image. If so, then delete it: <code bash> +
-$ rm -rf /​mnt/​etc/​udev/​rules.d/​70-persistent-net.rules +
-</​code>​ +
- +
-==== Remove the line of HWADDR= from eth0 configuration file ==== +
-  * The operating system records the MAC address of the virtual ethernet card in /​etc/​sysconfig/​network-scripts/​ifcfg-eth0 during the instance process. However, each time the image boots up, the virtual ethernet card will have a different MAC address, so this information must be deleted from the configuration file. +
-  * Edit /​mnt/​etc/​sysconfig/​network-scripts/​ifcfg-eth0 and remove the **HWADDR=** line. <code bash>  +
-DEVICE=eth0 +
-BOOTPROTO=dhcp +
-NM_CONTROLLED=yes +
-ONBOOT=yes +
-</​code>​ +
- +
-===== Filesystem Performance Tuning (Future work) ===== +
-==== EXT4 Filesystem ==== +
-  * Use virt-manager to boot a VM instance and log in with root password. +
-  * Install package e4fsprogs: <code bash> +
-$ conary install e4fsprogs:​runtime +
-</​code>​ +
- +
-==== XFS Filesystem ==== +
-  * Use virt-manager to boot a VM instance and log in with root password. +
-  * Install package xfsprogs: <code bash> +
-$ conary install xfsprogs:​runtime +
-</​code>​+
cernvm_uvic.txt · Last modified: 2013/05/10 15:31 by joannah
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki