Mirroring SuSE

I find myself having to mirror bits of the SuSE install tree and updates quite often. The problem is I typically do not need all the .iso files, the src rpms and the debuginfo packages, so I use the command below to exclude them from my rsync:

*.iso
*-debuginfo-*
*/src/*
*-ar-*
*-ca-*
*-cs-*
*-da-*
*-de-*
*-el-*
*-es-*
*-et-*
*-fi-*
*-fr-*
*-hu-*
*-it-*
*-ja-*
*-ko-*
*-nl-*
*-pl-*
*-pt-*
*-ru-*
*-sk-*
*-sl-*
*-sv-*
*-tr-*
*-zh-*
*-af-*
*-bg-*
*-br-*
*-cy-*
*-en-*
*-eo-*
*-fo-*
*-ga-*
*-hr-*
*-is-*
*-nn-*
*-ro-*
*-nb-*

hint:You can paste the above list into a text file and pass it to rsync with the --exclude-from option

Also note that from the UK, I’ve found ftp.sh.cvut.cz to be a consistently fast mirror

Hacking the SUSE boot.iso

I’ve recently been using autoyast quite a bit to automate builds of new SUSE this is nice and easy if the machine network boots, you just use pxelinux but if the machine does not support PXE booting you have to boot from the mini boot.iso included with SUSE and then manually type in the install= and autoyast= kernel parameters.

To save time and the hassle of doing this I have built a custom SUSE 9.2 mini boot.iso with a new grub option which includes all of the information necessary. Below is the steps involved:

  1. get the mini boot iso from a SUSE mirror, the filename I grabbed was /pub/suse/i386/9.2/iso/SUSE-Linux-9.2-mini-installation.iso
  2. mount the iso:
    # mount -t iso9660 -o loop SUSE-Linux-9.2-mini-installation.iso /mnt/tmp
    
  3. copy the contents to a temporary directory and set them to be writeable:
    # mkdir /tmp/boot-iso
    # cp -av /mnt/tmp/* /tmp/boot-iso/
    # chmod -R 700 /tmp/boot-iso/*
    
  4. edit the boot loader config in boot/loader/isolinux.cfg. I added the following as the second option:
    label cmlinux
      kernel linux
      append initrd=initrd ramdisk_size=65536 splash=silent showopts \
       textmode=1 install=http://192.168.22.250/install/SUSE/i386/9.2/ \
       autoyast=http://192.168.22.250/install/SUSE/autoinstall/repository/ \
       textmode=1
    

    note: the lines are broken here for clarity make sure the append line is all on one line and the slashes are removed

    note: the url’s specified in the install= and autoyast= parameters are specific to our configuration, you will need to edit as appropriate for your own auto install setup

    you also need to edit the messages file which is what is displayed on screen immediately after boot, I added the following directly after the ‘Boot from harddisk’ option:

      cmlinux   - Use the CM autoyast installer
    
  5. now you are ready to make your bootable iso. Whilst inside the /tmp/boot-iso/ directory I ran the following:
    #mkisofs -R -b boot/loader/isolinux.bin -no-emul-boot \
     -boot-load-size 4 -boot-info-table -o ../custom-boot.iso .
    
  6. write this custom-boot.iso to a cd and boot from it. When you see the menu choose ‘cmlinux’ which will automatically set the install source to be the url in the install= parameter and set the autoyast repository to the url in the autoyast= parameter. If there is an entry in the rules.xml for the machine being booted an auto install should run automatically, if not you will be left with the option of doing a manual install