Home Home > 2015 > 05 > 30 > Create multi liveUSB with openSUSE
Sign up | Login

Create multi liveUSB with openSUSE

May 30th, 2015 by

I was trying to create a liveUSB with many distros. The reason is simple. All of my USB sticks were quite big for only one distro. So the rest of the USB space is wasted. For example, the openSUSE USBs I got from conferences, are 8GB. If I use installation DVD, I’m going to use only 4GB. LiveGNOME is only 1GB (the rest would be persistent drive for storage but personally, I don’t use it.

For that reason, I used 2 programs.

1. Multisystem.

I translated to Greek. Unfortunately, this software is installed only on Ubuntu/Debian distros. I used it also on Arch Linux but there was a problem lately and didn’t work correctly. On Ubuntu, I managed to insert 13.1 successfully and lately this was difficult to do. At the end of each time, there were some strange symbols running for a quite long time with a sound (I muted the sound for that reason). I think persistent drive for 13.2 and Tumbleweed wasn’t something that the creators of the program added.
DVD ISO and NET install ISO wasn’t at their list either.

2. YUMI

This works on Windows. At the end of the page there’s a version for Ubuntu/Debian (and source code). I didn’t test them.
I tested this tool and I inserted NET install ISOs to an old 512MB USB I had. The only “negative” is that there wasn’t room left for the ISOs I wanted. 90MB x 4 = 360MB. It adds syslinux stuff. Anyways, at least I can use a very old USB.

With the help of my friend Thanos, I created a liveUSB with the Tumbleweed versions of GNOME and KDE.
I’ll write here how I did it with some possible options. Firstly the references. I used Arch wiki and a και έναν tutorial that Thanos sent me.

Let’s see the steps:

1. Create a FAT32 partition

If you use terminal, you need the commands:

To find the name of your USB

$ cat /proc/partition

To unmount your USB (yours might have different name than sdX)

$ sudo umount /dev/sdX1

Format the partition

$ sudo mkfs.vfat -n MULTIBOOT /dev/sdX1

2. Create 2 directories boot and iso inside your USB.

$ sudo mkdir /run/media/USERNAME/MULTIBOOT/{boot,iso}

if this doesn’t work, just go to MULTIBOOT and create the directories with the command mkdir.

3. Install grub (this command didn’t work on openSUSE. I guess there was something more to install).

$ sudo grub-install –force –no-floppy –root-directory=/run/media/USERNAME/MULTIBOOT /dev/sdX

4. Copy the ISO you want to the iso directory of the USB.

5. Create a grub.cfg file

$ nano /run/media/USERNAME/MULTIBOOT/boot/grub/grub.cfg

Here is all the different options you could have.
Add the text:

# Config for GNU GRand Unified Bootloader (GRUB)
# /boot/grub/grub.cfg

# Timeout for menu
set timeout=30

# Default boot entry
set default=0

# Menu Colours
set menu_color_normal=white/black
set menu_color_highlight=white/green

# Path to the partition holding ISO images (using UUID)
#set imgdevpath=”/dev/disk/by-uuid/UUID_value”
# … or…
# Path to the partition holding ISO images (using device labels)
#set imgdevpath=”/dev/disk/by-label/label_value”
set imgdevpath=”/dev/disk/by-label/MULTIBOOT”

# Boot ISOs
menuentry ‘openSUSE Tumbleweed GNOME Live x86_64′ {
set isofile=’/iso/openSUSE-Tumbleweed-GNOME-Live-x86_64.iso’
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8
initrd (loop)/boot/x86_64/loader/initrd
}

menuentry ‘openSUSE Tumbleweed KDE Live x86_64′ {
set isofile=’/iso/openSUSE-Tumbleweed-KDE-Live-x86_64.iso’
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8
initrd (loop)/boot/x86_64/loader/initrd
}

menuentry ‘openSUSE Tumbleweed GNOME Live 32bit’ {
set isofile=’/iso/openSUSE-Tumbleweed-GNOME-Live-i686.iso’
loopback loop $isofile
linux (loop)/boot/i386/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8
initrd (loop)/boot/i386/loader/initrd
}

menuentry ‘openSUSE Tumbleweed KDE Live 32bit’ {
set isofile=’/iso/openSUSE-Tumbleweed-KDE-Live-i686.iso’
loopback loop $isofile
linux (loop)/boot/i386/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG=en_US.UTF-8
initrd (loop)/boot/i386/loader/initrd
}

menuentry ‘openSUSE-Tumbleweed-DVD-x86_64′ {
set isofile=’/iso/openSUSE-Tumbleweed-DVD-x86_64.iso’
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
initrd (loop)/boot/x86_64/loader/initrd
}

menuentry ‘openSUSE-Tumbleweed-DVD-i586′ {
set isofile=’/iso/openSUSE-Tumbleweed-DVD-i586.iso’
loopback loop $isofile
linux (loop)/boot/i386/loader/linux install=hd:$isofile
initrd (loop)/boot/i386/loader/initrd
}

menuentry ‘openSUSE-Tumbleweed-NET-x86_64′ {
set isofile=’/iso/openSUSE-Tumbleweed-NET-x86_64.iso’
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
initrd (loop)/boot/x86_64/loader/initrd
}

menuentry ‘openSUSE-Tumbleweed-NET-i586′ {
set isofile=’/iso/openSUSE-Tumbleweed-NET-i586.iso’
loopback loop $isofile
linux (loop)/boot/i386/loader/linux install=hd:$isofile
initrd (loop)/boot/i386/loader/initrd
}

menuentry ‘openSUSE-Leap-42.1-DVD-x86_64′ {
set isofile=’/iso/openSUSE-Leap-42.1-DVD-x86_64.iso’
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
initrd (loop)/boot/x86_64/loader/initrd
}

menuentry ‘openSUSE-Leap-42.1-NET-x86_64′ {
set isofile=’/iso/openSUSE-Leap-42.1-NET-x86_64.iso’
loopback loop $isofile
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile
initrd (loop)/boot/x86_64/loader/initrd
}

I wrote all possible senarios. You choose what you need.

Everytime that new snapshot is available, you download and change the name. Then just copy it in the iso directory.

You can test my live USB Tumbleweed GNOME+KDE, 32-64bit plus NET install of Leap. It fits in 4GBs USB.

If you want to use other distro, just check the wiki.

Both comments and pings are currently closed.

Comments are closed.