2 Replies Latest reply: Feb 14, 2013 4:21 PM by 960874 RSS

    Creating an Oracle Linux PVM Using virt-install

    960874
      I've copied the contents of the Oracle Linux 6.3 installation media to an directory that's exported via NFS:
      san2:~ # ls -1 /srv/md128/repositories/oracle/6.3/os/x86_64/
      EFI
      EULA
      eula.en_US
      eula.py
      GPL
      HighAvailability
      images
      isolinux
      LoadBalancer
      media.repo
      Packages
      README-en
      README-en.html
      RELEASE-NOTES-en
      RELEASE-NOTES-en.html
      RELEASE-NOTES-x86_64-en
      RELEASE-NOTES-x86_64-en.html
      RELEASE-NOTES-x86-en
      RELEASE-NOTES-x86-en.html
      repodata
      ResilientStorage
      RPM-GPG-KEY
      RPM-GPG-KEY-oracle
      ScalableFileSystem
      Server
      supportinfo
      TRANS.TBL
      UEK2
      ...and tried to use the directory to install an Oracle Linux VM with virt-install:
      xen2:~ # virt-install -p --name dns2 --ram 786 --disk /dev/disk/by-id/scsi-14945540000000000705f69534353492d73616e315f310000 --location nfs://192.168.0.2/srv/md128/repositories/oracle/6.3/os/x86_64/ --graphics none
      ...but virt-install complains:
      Starting install...
      ERROR    Couldn't find xen kernel for Red Hat Enterprise Linux tree.
      This is a tried-and-true methodology: I use this method for installing CentOS & SuSE regularly:
      san2:~ # ls -1 /srv/md128/repositories/centos/6.3/os/x86_64/
      CentOS_BuildTag
      .discinfo
      EFI
      EULA
      GPL
      images
      isolinux
      Packages
      RELEASE-NOTES-en-US.html
      repodata
      RPM-GPG-KEY-CentOS-6
      RPM-GPG-KEY-CentOS-Debug-6
      RPM-GPG-KEY-CentOS-Security-6
      RPM-GPG-KEY-CentOS-Testing-6
      .treeinfo
      xen2:~ # virt-install -p --name dns2 --ram 786 --disk /dev/disk/by-id/scsi-14945540000000000705f69534353492d73616e315f310000 --location nfs://192.168.0.2/srv/md128/repositories/centos/6.3/os/x86_64/ --graphics none
      What is it that's different about the Oracle Linux installation media (compared to the CentOS installation media, shown above ) that causes this failure? Is there a workaround?

      Eric Pretorious
      Truckee, CA

      Edited by: epretorious on Feb 8, 2013 5:43 PM
        • 1. Re: Creating an Oracle Linux PVM Using virt-install
          960874
          If I use the NFS respository with virt-manager, virt-manager complains...
          Error: coercing to Unicode: need string or buffer, instance found
          What is causing these failures?
          • 2. Re: Creating an Oracle Linux PVM Using virt-install
            960874
            Dude wrote:
            I sugget to debug the process to get more information. Does adding --debug to the virt-install command give you any more clues?
            Once more, with --debug:
            xen2:~ # virt-install -p --name dns2 --ram 786 --disk /dev/disk/by-id/scsi-14945540000000000705f69534353492d73616e315f300000 --location nfs://192.168.0.2/srv/md128/repositories/oracle/6.3/os/x86_64/ --debug
            Thu, 14 Feb 2013 11:48:20 DEBUG    Launched with command line:
            /usr/bin/virt-install -p --name dns2 --ram 786 --disk /dev/disk/by-id/scsi-14945540000000000705f69534353492d73616e315f300000 --location nfs://192.168.0.2/srv/md128/repositories/oracle/6.3/os/x86_64/ --debug
            Thu, 14 Feb 2013 11:48:20 DEBUG    Requesting libvirt URI default
            Thu, 14 Feb 2013 11:48:22 DEBUG    Received libvirt URI xen:///
            Thu, 14 Feb 2013 11:48:22 DEBUG    Requesting virt method 'xen', hv type 'default'.
            Thu, 14 Feb 2013 11:48:22 DEBUG    Received virt method 'xen'
            Thu, 14 Feb 2013 11:48:22 DEBUG    Hypervisor name is 'xen'
            Thu, 14 Feb 2013 11:48:22 DEBUG    DISPLAY is not set: defaulting to nographics.
            Thu, 14 Feb 2013 11:48:22 DEBUG    --graphics compat generated: none
            Thu, 14 Feb 2013 11:48:22 DEBUG    DistroInstaller location is a network source.
            Thu, 14 Feb 2013 11:48:22 DEBUG    Preparing mount at /var/tmp/virtinstmnt.r5psf_
            Thu, 14 Feb 2013 11:48:22 DEBUG    Attempting to detect distro:
            Thu, 14 Feb 2013 11:48:22 DEBUG    local hasFile: Couldn't find /var/tmp/virtinstmnt.r5psf_/.treeinfo
            Thu, 14 Feb 2013 11:48:22 DEBUG    local hasFile: Couldn't find /var/tmp/virtinstmnt.r5psf_/Fedora
            Thu, 14 Feb 2013 11:48:22 DEBUG    Detected a RHEL 5 Server distro
            Thu, 14 Feb 2013 11:48:22 DEBUG    Cleaning up mount at /var/tmp/virtinstmnt.r5psf_
            Thu, 14 Feb 2013 11:48:22 DEBUG    Guest.has_install_phase: True
            
            Starting install...
            Thu, 14 Feb 2013 11:48:22 DEBUG    scratchdir=/var/lib/xen
            Thu, 14 Feb 2013 11:48:22 DEBUG    Preparing mount at /var/lib/xen/virtinstmnt.X0dm9e
            Thu, 14 Feb 2013 11:48:22 DEBUG    Attempting to detect distro:
            Thu, 14 Feb 2013 11:48:22 DEBUG    local hasFile: Couldn't find /var/lib/xen/virtinstmnt.X0dm9e/.treeinfo
            Thu, 14 Feb 2013 11:48:22 DEBUG    local hasFile: Couldn't find /var/lib/xen/virtinstmnt.X0dm9e/Fedora
            Thu, 14 Feb 2013 11:48:22 DEBUG    Detected a RHEL 5 Server distro
            Thu, 14 Feb 2013 11:48:22 DEBUG    local hasFile: Couldn't find /var/lib/xen/virtinstmnt.X0dm9e/images/xen/vmlinuz
            Thu, 14 Feb 2013 11:48:22 DEBUG    Cleaning up mount at /var/lib/xen/virtinstmnt.X0dm9e
            Thu, 14 Feb 2013 11:48:22 ERROR    Couldn't find xen kernel for Red Hat Enterprise Linux tree.
            Thu, 14 Feb 2013 11:48:22 DEBUG    Traceback (most recent call last):
              File "/usr/bin/virt-install", line 633, in start_install
                noboot=options.noreboot)
              File "/usr/lib64/python2.6/site-packages/virtinst/Guest.py", line 1207, in start_install
                self._prepare_install(meter, dry)
              File "/usr/lib64/python2.6/site-packages/virtinst/Guest.py", line 964, in _prepare_install
                meter=meter)
              File "/usr/lib64/python2.6/site-packages/virtinst/DistroInstaller.py", line 429, in prepare
                dev = self._prepare_kernel_and_initrd(guest, meter)
              File "/usr/lib64/python2.6/site-packages/virtinst/DistroInstaller.py", line 368, in _prepare_kernel_and_initrd
                self.os_type)
              File "/usr/lib64/python2.6/site-packages/virtinst/OSDistro.py", line 158, in acquireKernel
                scratchdir, type)
              File "/usr/lib64/python2.6/site-packages/virtinst/OSDistro.py", line 152, in _acquireMedia
                None, media_cb)
              File "/usr/lib64/python2.6/site-packages/virtinst/OSDistro.py", line 133, in _locationCheckWrapper
                return callback(store, fetcher)
              File "/usr/lib64/python2.6/site-packages/virtinst/OSDistro.py", line 145, in media_cb
                media = store.acquireKernel(guest, fetcher, progresscb)
              File "/usr/lib64/python2.6/site-packages/virtinst/OSDistro.py", line 276, in acquireKernel
                { "distro": self.name, "type" : self.type })
            RuntimeError: Couldn't find xen kernel for Red Hat Enterprise Linux tree.
            It appears that the last line provides the vital clue. i.e., The Oracle Linux 6.3 .iso is lacking a .treeinfo file. CentOS, however, includes a .treeinfo file for each of it's installation .iso's:
            san2:/srv/md128/repositories/centos # find . -name .treeinfo
            ./5.7/os/i386/.treeinfo
            ./5.7/os/x86_64/.treeinfo
            ./5.8/os/i386/.treeinfo
            ./5.8/os/x86_64/.treeinfo
            ./5.9/os/i386/.treeinfo
            ./5.9/os/x86_64/.treeinfo
            ./6.0/os/x86_64/.treeinfo
            ./6.2/os/i386/.treeinfo
            ./6.2/os/x86_64/.treeinfo
            ./6.3/os/i386/.treeinfo
            ./6.3/os/x86_64/.treeinfo
            The contents of .treeinfo seem fairly straight-forward:
            san2:/srv/md128/repositories # cat ./centos/6.3/os/x86_64/.treeinfo
            [general]
            family = CentOS
            timestamp = 1341569485.3
            variant =
            totaldiscs = 1
            version = 6.3
            discnum = 1
            packagedir =
            arch = x86_64

            [images-x86_64]
            kernel = images/pxeboot/vmlinuz
            initrd = images/pxeboot/initrd.img
            boot.iso = ../../isos/x86_64/CentOS-6.3-x86_64-netinstall.iso
            [images-xen]
            kernel = images/pxeboot/vmlinuz
            initrd = images/pxeboot/initrd.img

            [stage2]
            mainimage = images/install.img
            ...so I started with the .treeinfo file for CentOS 6.3 and verified that it reflected the contents of the Oracle Linux 6.3 directory as well:
            san2:/srv/md128/repositories/centos # ll ./6.3/os/x86_64/
            total 472
            -rw-r--r--. 1 59999 59999     14 Jul  6  2012 CentOS_BuildTag
            -rw-rw-r--. 1 59999 59999     33 Jul  6  2012 .discinfo
            drwxrwxr-x. 3 59999 59999     17 Jul  6  2012 EFI
            -rw-rw-r--. 1 59999 59999    212 Jun 23  2012 EULA
            -rw-rw-r--. 1 59999 59999  18009 Jun 23  2012 GPL
            drwxr-xr-x. 3 59999 59999     74 Jul  6  2012 images
            drwxr-xr-x. 2 59999 59999   4096 Jul  6  2012 isolinux
            drwxrwxr-x. 2 59999 59999 339968 Jul  5  2012 Packages
            -rw-rw-r--. 1 59999 59999   1354 Jun 23  2012 RELEASE-NOTES-en-US.html
            drwxr-xr-x. 2 59999 59999   4096 Jul  6  2012 repodata
            -rw-rw-r--. 1 59999 59999   1706 Jun 23  2012 RPM-GPG-KEY-CentOS-6
            -rw-rw-r--. 1 59999 59999   1730 Jun 23  2012 RPM-GPG-KEY-CentOS-Debug-6
            -rw-rw-r--. 1 59999 59999   1730 Jun 23  2012 RPM-GPG-KEY-CentOS-Security-6
            -rw-rw-r--. 1 59999 59999   1734 Jun 23  2012 RPM-GPG-KEY-CentOS-Testing-6
            -rw-rw-r--. 1 59999 59999    398 Jul  6  2012 .treeinfo
            
            san2:/srv/md128/repositories/centos # ll ./6.3/os/x86_64/images/
            total 168904
            -rw-r--r--. 1 59999 59999    372736 Jul  6  2012 efiboot.img
            -rw-r--r--. 1 59999 59999  35997696 Jul  6  2012 efidisk.img
            -rw-r--r--. 1 59999 59999 136585216 Jul  6  2012 install.img
            drwxr-xr-x. 2 59999 59999        37 Jul  6  2012 pxeboot
            
            san2:/srv/md128/repositories/centos # ll ./6.3/os/x86_64/images/pxeboot/
            total 34756
            -rw-r--r--. 1 59999 59999 31596586 Jul  6  2012 initrd.img
            -rwxr-xr-x. 1 59999 59999  3986608 Jul  6  2012 vmlinuz
            san2:/srv/md128/repositories/centos # ll ../oracle/6.3/os/x86_64/
            total 504
            drwxr-xr-x 3 root root     33 Feb  8 18:09 EFI
            -rw-r--r-- 1 root root   7041 Feb  8 18:09 EULA
            -rw-r--r-- 1 root root   7041 Feb  8 18:09 eula.en_US
            -rw-r--r-- 1 root root   3334 Feb  8 18:09 eula.py
            -rw-r--r-- 1 root root  18390 Feb  8 18:09 GPL
            drwxr-xr-x 3 root root     66 Feb  8 18:09 HighAvailability
            drwxr-xr-x 3 root root    103 Feb  8 18:09 images
            drwxr-xr-x 2 root root   4096 Feb  8 18:09 isolinux
            drwxr-xr-x 3 root root     66 Feb  8 18:09 LoadBalancer
            -rw-r--r-- 1 root root    196 Feb  8 18:09 media.repo
            drwxr-xr-x 2 root root 188416 Feb  8 18:10 Packages
            -rw-r--r-- 1 root root   2619 Feb  8 18:10 README-en
            -rw-r--r-- 1 root root   7054 Feb  8 18:10 README-en.html
            -rw-r--r-- 1 root root  29531 Feb  8 18:10 RELEASE-NOTES-en
            -rw-r--r-- 1 root root  32428 Feb  8 18:10 RELEASE-NOTES-en.html
            -rw-r--r-- 1 root root  29531 Feb  8 18:10 RELEASE-NOTES-x86_64-en
            -rw-r--r-- 1 root root  32428 Feb  8 18:10 RELEASE-NOTES-x86_64-en.html
            -rw-r--r-- 1 root root  29531 Feb  8 18:10 RELEASE-NOTES-x86-en
            -rw-r--r-- 1 root root  32428 Feb  8 18:10 RELEASE-NOTES-x86-en.html
            lrwxrwxrwx 1 root root     15 Feb  8 18:10 repodata -> Server/repodata
            drwxr-xr-x 3 root root     66 Feb  8 18:10 ResilientStorage
            -rw-r--r-- 1 root root   1011 Feb  8 18:10 RPM-GPG-KEY
            -rw-r--r-- 1 root root   1011 Feb  8 18:10 RPM-GPG-KEY-oracle
            drwxr-xr-x 3 root root     66 Feb  8 18:10 ScalableFileSystem
            drwxr-xr-x 4 root root     87 Feb  8 18:10 Server
            -rw-r--r-- 1 root root    108 Feb  8 18:10 supportinfo
            -r--r--r-- 1 root root   6517 Feb  8 18:10 TRANS.TBL
            drwxr-xr-x 3 root root     66 Feb  8 18:10 UEK2
            
            san2:/srv/md128/repositories/centos # ll ../oracle/6.3/os/x86_64/images/
            total 167692
            -rw-r--r-- 1 root root    376832 Feb  8 18:09 efiboot.img
            -rw-r--r-- 1 root root  34924544 Feb  8 18:09 efidisk.img
            -rw-r--r-- 1 root root 136404992 Feb  8 18:09 install.img
            drwxr-xr-x 2 root root        53 Feb  8 18:09 pxeboot
            -rw-r--r-- 1 root root       541 Feb  8 18:09 README
            -r--r--r-- 1 root root      1106 Feb  8 18:09 TRANS.TBL
            
            san2:/srv/md128/repositories/centos # ll ../oracle/6.3/os/x86_64/images/pxeboot/
            total 33668
            -rw-r--r-- 1 root root 30481341 Feb  8 18:09 initrd.img
            -r--r--r-- 1 root root      441 Feb  8 18:09 TRANS.TBL
            -rwxr-xr-x 1 root root  3986992 Feb  8 18:09 vmlinuz
            ...and then I used the CentOS 6.3 .treeinfo file verbatim to guide virt-install through the process of creating an Oracle 6.3 PV: :)
            san2:/srv/md128/repositories # cp ./centos/6.3/os/x86_64/.treeinfo ./oracle/6.3/os/x86_64/
            Problem solved!