Bootable openSUSE Linux 11.2 64bit on a USB Memory Stick

If you have problems getting your USB memory stick to boot, check out my page on USB memory stick boot problem solving

Lexar 8GB Memory StickAn inexpensive USB memory stick can be bought for a few pounds / dollars. This tutorial spells out how to create a fully functional Linux openSUSE 11.2 64 bit installation on such a memory stick. Furthermore, the build will be write-enabled (unlike a CD installation) thus facilitating the saving of system settings (such as country codes and personal preferences) and data files.

Before you start, source yourself a memory stick. I bought mine - an 8GB example - from PC World for £15.99 (about $25). If I had been bothered to order by mail I would have secured a much better deal although postage and waiting for delivery mitigated against that approach. If you chose to use a spare memory stick you have doing nothing, be aware that this process is 'destructive' - i.e. anything saved on the disk prior to our installation will be trashed and lost forever.

There are instructions to build a working openSUSE distro on USB on the openSUSE site but it didn't work on my installation so I have provided these steps instead for the benefit of others who also experience problems

The first task is to download the iso file and the md5 checksum file - which ensures that the iso download didn't become corrupted in the download process. Check out the script below for implementing this. Note that I have decided to go for a 64 bit installation and my favourite Linux desktop is KDE. If you prefer 32 bit or the GNOME desktop, change the wget parameters to reflect different downloads. You can check what is available by pointing your browser at http://download.opensuse.org/distribution/11.2/iso/


$ cd /tmp
$ wget -q http://download.opensuse.org/distribution/11.2/iso/openSUSE-11.2-KDE4-LiveCD-x86_64.iso
$ wget -q http://download.opensuse.org/distribution/11.2/iso/openSUSE-11.2-KDE4-LiveCD-x86_64.iso.md5
$ md5sum openSUSE-11.2-KDE4-LiveCD-x86_64.iso > mout
$ diff  openSUSE-11.2-KDE4-LiveCD-x86_64.iso.md5 mout
$

Intel 64 Dual Processor
Note that if your diff command produces some output then your download was corrupted and you need to try again. If, like me, you decide to go for a 64 bit installation, you need to satisfy yourself that your computer has a 64 bit instruction set. Firstly, determine what type of CPU you have - on my openSUSE laptop it's easy by clicking on the desktop 'My Computer' icon. This provides a list of system information, including your CPU. In my case it is a Intel(R) Pentium(R) Dual CPU T3400 @ 2.16GHz. For the second check, I pasted that text into Google which thankfully led me directly to the official Intel site and gave me the information I needed. The image on the right is taken from the Intel site and shows that my laptop has a 64 bit instruction set and was released Q4 2008 which makes sense since I bought it Q1 2009.

Once you are satisfied you have the correct iso image for the installation, insert the memory stick into yor computer and type the following command to determine how your memory stick is recognised by the system:

$ ls -l /dev/disk/by-id/*usb*
lrwxrwxrwx 1 root root  9 2010-02-03 13:14 /dev/disk/by-id/usb-Lexar_USB_Flash_Drive_QR2EUZI4R8EFDFG39Y7T-0:0 -> ../../sdb
lrwxrwxrwx 1 root root 10 2010-02-03 13:14 /dev/disk/by-id/usb-Lexar_USB_Flash_Drive_QR2EUZI4R8EFDFG39Y7T-0:0-part1 -> ../../sdb1

This tells me that the device is /dev/sdb and the partition supplied with the memory stick is /dev/sdb1. If we were doing the straight USB ISO install, we would just copy over the iso image onto the USB drive and we would be done. Unfortunately, like I said, it doesn't work for me; I suspect because the image pretends the USB stick is a CD drive and I already have one of those.

The approach I am taking uses the open source utility UNetbootin which can create bootable USB sticks for many Linux distros, and comes in Linux and Windows flavours. Below are the instructions for Linux. Download the latest binary from Sourceforge.

7-zip file compressionBefore you are tempted to run it, you must first satisfy a prerequisite. The 7-zip file compression program is required so install it on your system with Kickoff->Computer->Install Software. Type 7z in the search box and then select p7zip and Accept.


Next change to the directory you downloaded the UNetbootin to, and change the permissions so it can be executed, and then run it.

# cd /tmp
/tmp # ls unet*
unetbootin-linux-393
/tmp # chmod u+x unet*
/tmp # ./unetbootin-linux-393

UNetbootinUSB BootThe utility is GUI-based, so you will be confronted with the screen on the left. Populate the diskimage field with the iso file you downloaded earlier, and tick the Show All Drives box. You will then need to select the USB drive we determined earlier - in my case it is /dev/sdb1 but yours could be different as we have previously discussed. Once you are sure you have everything correct, hit OK and the image will be copied to your USB drive. At the end of that process, you will be prompted to reboot your machine and provided you have set your BIOS correctly, you should now get the menu right. Select the openSUSE_Live_(KDE) option and your USB LiveCD image will boot!

Since we now have a downloaded iso file, and blank CDs are only a few pennies, we may as well burn a CD also as backup. First you need to know the name of your CD device name.

# wodim --devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0  dev='/dev/scd0'     rwrw-- : 'TSSTcorp' 'CDDVDW TS-L633A'
-------------------------------------------------------------------------

Writing the iso image to CD should be quite easy, just issue the following statement making sure you change the device name to reflect your own and ditto the image file:
cdrecord dev=/dev/scd0 speed=44 driveropts=burnproof -eject -v /tmp/openSUSE-11.2-KDE4-LiveCD-x86_64.iso

This prompts a load of output. Copied here for reference only!
2-KDE4-LiveCD-x86_64.iso                                                        
wodim: No write mode specified.                                                 
wodim: Asuming -tao mode.                                                       
wodim: Future versions of wodim may have different drive dependent defaults.    
TOC Type: 1 = CD-ROM                                                            
scsidev: '/dev/scd0'                                                            
devname: '/dev/scd0'                                                            
scsibus: -2 target: -2 lun: -2                                                  
Linux sg driver version: 3.5.27                                                 
Wodim version: 1.1.9                                                            
Driveropts: 'burnproof'                                                         
SCSI buffer size: 64512                                                         
Device type    : Removable CD-ROM                                               
Version        : 5                                                              
Response Format: 2                                                              
Capabilities   :                                                                
Vendor_info    : 'TSSTcorp'                                                                
Identification : 'CDDVDW TS-L633A '                                                        
Revision       : 'TM00'                                                                    
Device seems to be: Generic mmc2 DVD-R/DVD-RW.                                             
Current: 0x0009 (CD-R)                                                                     
Profile: 0x0015 (DVD-R/DL sequential recording)                                            
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001B (DVD+R)
Profile: 0x001A (DVD+RW)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0012 (DVD-RAM)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R) (current)
Profile: 0x0008 (CD-ROM)
Profile: 0x0002 (Removable disk)
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 1962752 = 1916 KB
Beginning DMA speed test. Set CDR_NODMATEST environment variable if device
communication breaks or freezes immediately after that.
FIFO size      : 4194304 = 4096 KB
Track 01: data   689 MB
Total size:      791 MB (78:23.60) = 352770 sectors
Lout start:      791 MB (78:25/45) = 352770 sectors
Current Secsize: 2048
ATIP info from disk:
  Indicated writing power: 5
  Is not unrestricted
  Is not erasable
  Disk sub type: Medium Type B, low Beta category (B-) (4)
  ATIP start of lead in:  -11607 (97:27/18)
  ATIP start of lead out: 359849 (79:59/74)
Disk type:    Short strategy type (Phthalocyanine or similar)
Manuf. index: 18
Manufacturer: Plasmon Data systems Ltd.
Blocks total: 359849 Blocks current: 359849 Blocks remaining: 7079
Speed set to 4234 KB/s
Starting to write CD/DVD at speed  24.0 in real TAO mode for single session.
Last chance to quit, starting real write in    0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01:  689 of  689 MB written (fifo 100%) [buf 100%]  25.4x.
Track 01: Total bytes read/written: 722468864/722468864 (352768 sectors).
Writing  time:  276.386s
Average write speed  17.4x.
Min drive buffer fill was 99%
Fixating...
Fixating time:   40.764s
BURN-Free was never needed.
wodim: fifo had 11380 puts and 11380 gets.
wodim: fifo was 0 times empty and 10871 times full, min fill was 87%.

Reboot your machine, and provided your BIOS is set correctly. you will be able to boot from CD as well as hard disk and USB!