openSUSE Lizards

Authors
Adrian Schröter (2)
Andrea Florio (1)
Andreas Jaeger (5)
Andrew Wafaa (13)
Arvin Schnell (1)
Bernhard Walle
Casual Programmer
Christoph Thiel
Christopher Hobbs
Cristian Rodríguez
Dirk Müller (1)
Duncan Mac-Vicar
Gabriele Mohr
Henne (1)
Hubert Mantel (1)
J. Daniel Schmidt (1)
Jan Blunck
Jan Madsen
Jan-Christoph Bornschlegel (1)
Jan-Simon Möller (4)
Josef Reidinger
Kevin Dupuy (6)
Klaas Freitag (7)
Klaus Singvogel
Ludwig Nussel (1)
Marcus Moeller (1)
Marcus Schaefer
Martin Lasarsch (3)
Masim Sugianto (16)
Michael Andres (1)
Michal Marek (3)
Michal Zugec
mrdocs
Peter Nixon
Peter Pöml (1)
Petr Mladek
Rossana Motta (1)
Rupert Horstkötter (1)
Stanislav Visnovsky (1)
Stefan Haas
Stefan Hundhammer
Stefan Schubert (1)
Steffen Winterfeldt (2)
Susanne Oberhauser
Thomas Schraitle (4)
Xin Wei Hu





 

How to Make openSUSE 11.0 GM Live USB

1 Star2 Stars3 Stars4 Stars5 Stars (7 votes, average: 3.86 out of 5)
Loading ... Loading ...
Friday, June 20th, 2008 by Masim Sugianto Digg!

openSUSE 11.0 with tons of impovement has been announced on June 19, 2008. Since then it was a busiest day for me : setting up a local mirror providing iso image for openSUSE fans in Indonesia, arrange openSUSE 11.0 release party and preparing Indonesian openSUSE community regular meeting on Saturday, June 21, 2008. We have planned all of these since last month but I must updated the planning with latest news and preparation.

Beside the planning, I also read some comments that noticed me with problem regarding openSUSE LiveUSB tutorial. The tutorial used openSUSE 11.0 RC1 and the modified initrd as noticed on the tutorial doesn’t fit with the GM version.

I have updated the initrdud that *should be*  applied with openSUSE 11.0 GM. I got it succeeded with my 2 GB USB Flash Disk. The overall process to make openSUSE 11.0 GM LiveUSB are same as described on the previous tutorial with RC1. The different thing is initrdud file.

openSUSE 11.0 LiveUSB sysinfo

openSUSE 11.0 LiveUSB Partitioner

Download the modified initrd file (called initrdud) from this link.

How to Modify the Initrd

Initrd modification needed to add nls_cp437.ko, module for mount vfat partition that commonly used by USB flash disk.

  1. Preparing your LiveUSB ISO. In this example, I used openSUSE-11.0-KDE4-LiveCD-i386.iso. Change with your downloaded LiveCD ISO instead
  2. Preparing, Extract and update the initrd
  3. su
    mkdir unpacked
    mkdir /mnt/iso
    mkdir /mnt/squash
    mount -o loop openSUSE-11.0-KDE4-LiveCD-i386.iso /mnt/iso/
    cd unpacked
    gzip -dc /mnt/iso/boot/i386/loader/initrd | cpio -i
    mount -o loop /mnt/iso/openSUSE-*read-only.* /mnt/squash/
    cp /mnt/squash/lib/modules/*/kernel/fs/nls/nls_cp437.ko lib/modules/*/kernel/fs/nls/
    cp /mnt/squash/lib/modules/*/kernel/fs/nls/nls_iso8859-1.ko lib/modules/*/kernel/fs/nls/
    cp -r /mnt/squash/lib/modules/*/kernel/fs/vfat lib/modules/*/kernel/fs/
    cp -r /mnt/squash/lib/modules/*/kernel/fs/fat lib/modules/*/kernel/fs/

  4. Edit the linuxrc file and change /bin/sh on top of the file with /bin/sh -x. This used for verbose option while boot, every command will be display before executed so if there is a problem, it will more easier to resolve.
  5. Modify the include file and change (replace) the function CDDevice with below code. This will change LiveCD to LiveUSB.
  6. function CDDevice {
    	# /.../
    	# changed this function so that it finds config.isoclient on vfat disks, e.g. USB drives
    	# ----
    	find /lib/modules/*/kernel/fs/nls/nls* -exec insmod {} \; # needed for vfat filesystem
            find /lib/modules/*/kernel/fs/*fat/*.ko -exec insmod {} \; # needed for vfat filesystem
            insmod /lib/modules/*/kernel/drivers/usb/storage/usb-storage.ko # needed for USB
    	sleep 5 # fixme; do this in a proper way
    	cddevs=`/usr/sbin/hwinfo --disk | grep sd | grep "Device File:" | cut -f2 -d: | cut -f2 -d " "` # looks for disks instead of CDs
    	echo cddevs $cddevs
    	for i in $cddevs;do
    		i=$i"1" # fixme; looks on the first partition only
    		echo i $i
    		if [ -b $i ];then
    			test -z $cddev && cddev=$i || cddev=$cddev:$i
    			echo cddev $cddev
    		fi
    	done
    	if [ -z $cddev ]; then
    		systemException \
    			“Failed to detect CD drive !” \
    		“reboot”
    	fi
    }
    
  7. Repack the initrd. We will place the initrdud in root of cureent folder :
  8. find . | cpio -o -H newc | gzip -9 > ../initrdud
    

Hope the above process solve the problem while making openSUSE 11.0 GM LiveUSB. Don’t forget to place a comment if you got any problem regarding this tutorial.


12 Comments »

Comment by Raffo
2008-06-20 22:22:05

The file /mnt/iso/openSUSE-*read-only.* cannot be mounted unless your system supports the SquashFS filesystem. My computer (10.1) does not seem to support it.

Comment by Vavai
2008-06-21 00:45:02

Hi Raffo,

Thanks for mentioning this one. Seem to be the right time to upgrade into 11.0 ;-)

 
 
Comment by FameWOlf
2008-06-21 03:37:57

Can you give us the steps to make the extra space on our usb keys available? Perhaps we could run a script which would mount a new home after boot so at least configuration preferences would be kept?

 
Comment by mimoune djouallah
2008-06-21 08:43:58

unfortunately, i fellowed your tutorial the last time with opensuse-kde 11 rc2, first it boot from the usb flash disk, but after that, the kernel complains, that it can find my usb driver ;(
definitively opensuse lags really in this field

 
Comment by mimoune djouallah
2008-06-21 08:44:36

unfortunately, i followed your tutorial the last time with opensuse-kde 11 rc2, first it boot from the usb flash disk, but after that, the kernel complains, that it can find my usb driver ;(
definitively opensuse lags really in this field

 
Comment by FameWolf
2008-06-21 10:34:59

djouallah,

The whole purpose of his new initrdud is to correct the error you are reporting. It works fine with Opensuse 11 final. His previous tutorial was for RC1..not RC2 which was supposed to be an internal build only and not be ran by general public.

 
Comment by johnny
2008-06-22 02:15:01

Hi,

I used Grub to boot the original and then also your manipulated initrd file using the following grub entry:

title openSUSE-11.0 extracted ISO
root (hd0,0)
kernel /linux
initrd /initrdusb kiwidebug=1 ramdisk_size=512000 ramdisk_blocksize=4096 splash=silent showopts

It boots and everything but then in both cases (original and manipulated initrd) reboots sind I have no CD-Drive (Thinkpad X61s has no optical drive). The problem is in this code:

if [ -z $cddev ]; then
systemException \
“Failed to detect CD drive !” \
“reboot”
fi

Can you remove it an offer a new initrd?

Comment by Vavai
2008-06-26 03:55:53

Hi Johnny,

I’ll be update with the requested initrdud.Thanks for your info.

 
 
Comment by Rohan Dhruva
2008-06-23 07:23:52

Hi,

Nice guide, but I found 2 mistakes-

1) The mount command formatting is not correct. Maybe it is caused by wiki-markup issues.
2) You mkdir /mnt/squash but then mount it to /media/squash :)

Thanks!
Rohan.

Comment by Vavai
2008-06-26 03:56:38

Thanks, fixed.

 
 
Comment by dimas
2008-06-30 12:42:05

Voila This is what I have been waiting for so long since the first day I use SUSE LINUX. Hip-hip Huray, Hip-hip Huray, Hip-hip Huray.

 
Comment by gagahput3ra
2008-07-21 21:26:53

Hell yeah! I’ve just read your tutorial on your local blog about running a live iso through usb flash drive, and i’ve tried but failed due to this exact error. :D Glad that i’m not the only one having this error. Will try replace the file now. Thanks for the tutorial. 8)

 
Name
Email for notification (will not be published)
Website (optional)
Spam protection: Sum of five + 9 ?

Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.