• Run SuSE Studio images without persistence for OpenSuSE 12.3

    A while ago, I wrote an article about booting OpenSuSE images (specifically SuSE Studio images) without persistence, without having to dedicate a device/partition to it. If you follow the OpenSuSE documentation, it will direct you to wipe and replace a device/partition with the ISO image using an ISO writing tool. That isn't ideal because you can't use the device for anything else (without partitioning it at least).

    Unfortunately, changes in the booting process put a stop to the trick described in the previous article. Fortunately however, I have found a new way to do it, and it is cleaner and simpler than the previous method. It will also work with machines that have a CDROM installed as well (this was a flaw in the old method as it tried to act as a CDROM fallback). I have only tested this with OpenSuSE 12.3, but it should work with other versions in the OpenSuSE 12.x series.

    1. Ensure your device is formatted in one of the standard Linux filesystems (btrfs, ext* etc.) or FAT32. I haven't tried NTFS, but I'm pretty sure the boot image can't read that and so this wouldn't work.
    2. Ensure your device has a label assigned to it. On Windows, right-click on the device, click Properties and check the text box at the top of the dialog. On Linux, see this article for a list of tools to use to modify it.
    3. Copy the ISO file to the root of your device.
    4. Mount the ISO file or otherwise extract the boot directory from it on to the root of your device, then unmount the ISO file.
    5. On your device, in the boot/<arch>/loader directory (i.e. if it is a 64-bit image, it will be boot/x86_64/loader; if it is a 32-bit image, it will be boot/i386/loader), make a copy of the isolinux.cfg file and name it syslinux.cfg.
    6. Open up syslinux.cfg (on Windows, you'll have to use an editor that is aware of Unix file endings; try notepad++ if you don't have such an editor), and on the end of both lines beginning with append, add the following (substituting as required) then save and close the file -
      OpenSuSE 12.3: isofrom=/dev/disk/by-label/<the label assigned in step 2>:<the path to the ISO file on your device>
      OpenSuSE 13.1: isofrom_device=/dev/disk/by-label/<the label assigned in step 2> isofrom_system=<the path to the ISO file on your device>
      For example, if your device is labelled LINUXLIVE and your OpenSuSE 12.3 ISO is named My_Live_Linux_Desktop_12.3.x86_64-0.0.1.iso, then that line will be -
    7. If you're on Windows, download SYSLINUX 4.04 from here and extract win32/syslinux.exe to the root of your device. If you're on Linux, make sure you have the syslinux 4.04 package installed.
    8. Open up a terminal with administrative/root privileges and execute the following command (substituting as necessary; <arch> refers to the same value as in step 5) -

      On Windows (note the forward-slashes for the -d argument value; it must be forward-slashes or it will not work) -
      <drive letter of device>\syslinux.exe -f -m -a -d /boot/<arch>/loader <drive letter of device>
      On Linux,
      syslinux -f -m -a -d /boot/<arch>/loader <path to your device, e.g. /dev/sdb1>

    And that's it, reboot, select your device as the device to boot from and your OpenSuSE desktop should load.

    Instead of using explicit device names (e.g. /dev/sdb1), I used the device/partition label instead so if new devices were added there wouldn't be a possibility of it changing the device name and hence causing the boot to fail. You can choose to use the other forms of persistent device naming instead, or even the explicit names, as long as it identifies your device.




    Fixed the arch name for 32-bit x86 (should be i386 not x86).

    21st July 2013 12:49 PM

    Added the new syntax needed for OpenSuSE 13.1.

    1st December 2013 5:29 PM


Leave a comment