How to Boot the openSUSE 16.0 network install image with PXE:


  1. Download the CD image available here: get.opensuse.org/leap/16.0/
    I am using this image file: Leap-16.0-online-installer-x86_64.install.iso.

    The other files I reference are here: bootimage

  2. Mount the image ( as /mnt/cd-16.0)
    mkdir /mnt/cd-16.0
    mount Leap-16.0-online-installer-x86_64.install.iso /mnt/cd-16.0

    You can find the linux and initrd files you need to boot it under:
    /mnt/cd-16.0/boot/x86_64/loader/
    Copy those to your tftp boot server.

  3. Mount the squashfs.img (in the cd image):
    mkdir /mnt/squashfs-16.0
    mount /mnt/cd-16.0/LiveOS/squashfs.img /mnt/squashfs-16.0

  4. Mount the rootfs.img (in the squashfs image):
    mkdir /mnt/rootfs-16.0
    mount /mnt/squashfs-16.0/LiveOS/rootfs.img /mnt/rootfs-16.0

  5. Copy the contents of /mnt/rootfs-16.0/ to your nfs server share, I use the folder /export/boot/net-install-opensuse-16.0/READONLY
    (but it could be something else - last directory must be /READONLY, or the below will be very hard to follow):
    mkdir -p /export/boot/net-install-opensuse-16.0/READONLY
    cp -a /mnt/rootfs-16.0/. /export/boot/net-install-opensuse-16.0/READONLY/.

  6. Move these folders from READONLY up:
    cd /export/boot/net-install-opensuse-16.0
    mv -i READONLY/dev .
    mv -i READONLY/mnt .
    mv -i READONLY/proc .
    mv -i READONLY/run .
    mv -i READONLY/sys .
    mv -i READONLY/tmp .

  7. Make links in READONLY for the moved folders:
    cd /export/boot/net-install-opensuse-16.0/READONLY
    ln -si ../* .
    (DO NOT replace existing folders).
    rm READONLY OVERLAY
    (This is to make sure links in the subfolders of READONLY/ work).

  8. In /export/boot/net-install-opensuse-16.0/, create the folder OVERLAY/:
    mkdir /export/boot/net-install-opensuse-16.0/OVERLAY

    And make links in OVERLAY for folders (and the one file) in READONLY/:
    cd /export/boot/net-install-opensuse-16.0/OVERLAY
    ln -s ../READONLY/.profile .
    ln -s ../READONLY/* .

  9. Make links in the main folder for folders (and the one file) in OVERLAY/:
    cd /export/boot/net-install-opensuse-16.0
    ln -s OVERLAY/.profile .
    ln -si OVERLAY/* .
    (DO NOT replace existing folders).

  10. Now place the files I have shared here: bootimage/usr/local/sbin/
    in: /export/boot/net-install-opensuse-16.0/READONLY/usr/local/sbin/

  11. Export "/export/boot" with the options: -ro,sec=sys,no_root_squash,subtree_check,async
    ( You could just export "/export/boot/net-install-opensuse-16.0" )

  12. Use this file as a template for your boot loader: bootimage/grub-boot.cfg
    It NFS mounts /export/boot/net-install-opensuse-16.0/ as root ( nfsroot=repo-suse-start.localdomain:/export/boot/net-install-opensuse-16.0,ro )
    And starts (as init) the special init.sh you put in place ( init=/usr/local/sbin/init.sh ).



When everything boots (read init-config.sh),
it will have a writeable /OVERLAY folder containing the contents of /READONLY
All of the system folders (/usr, /root, /etc, /var ..etc. ) are linked to the read/write folders in /OVERLAY
So you now have a running system (with an installer) running from a read-only NFS share
It will also use A LOT less memory to boot than the actual CD image.

I was able to use it to install openSUSE 16.0 on a 1 core VM with 1 Gb of virtual memory.


The views and opinions expressed in these pages are strictly those of the page author(s).
The contents of these pages have not been reviewed nor approved by any entity whatsoever.



paulfm.com/~paulfm/.






The below is to help search engines find this page:
open suse linux / opensuse 16.0 paulfm.com boot pxe
open suse leap linux / opensuse leap 16.0 paulfm.com boot pxe