openSUSE Lizards

Authors
Adrian Schröter (2)
Agustin Chavarria (1)
Akhil Laddha
Alexander Naumov
Alexander Orlovskyy (3)
Alexey Eromenko
Alin M Elena (2)
Andrea Florio (5)
Andreas Jaeger (26)
Andreas van dem Helge
Andrej Semen
Andrew Wafaa (24)
Arvin Schnell (4)
Bharath Acharya
Brian G. Merrell
Carl Fletcher
Casual Programmer
Christoph Thiel
Christopher Hobbs (15)
Ciaran Farrell (2)
Coly Li
Cristian Rodríguez
Daniel Bornkessel
David C. Rankin
Dean Hilkewich
Dinar Valeev (5)
Dirk Müller (1)
Dmitry Serpokryl (4)
Duncan Mac-Vicar
Eugene Pivnev
Fabio Mucciante
Gabriele Mohr
Gerrit Beine
Helman Rene Taleno Martinez
Helmut Schaa
Henne (5)
Herbert Graeber
Holgi
Hubert Mantel (1)
J. Daniel Schmidt (1)
James Tremblay (5)
Jan Blunck (4)
Jan Madsen (1)
Jan Nieuwenhuizen
Jan-Christoph Bornschlegel (3)
Jan-Simon Möller (18)
Javier Llorente
Jigish Gohil (10)
Jiri Srain (1)
Jiří Suchomel (1)
Johan Kotze (5)
John Terpstra
Joop Boonen
Josef Reidinger (7)
Juergen Weigert (1)
Julio Vannini (7)
Justin Haygood
Kálmán Kéménczy
Kevin Yeaux (9)
Klaas Freitag (14)
Klara Cihlarova
Klaus Kämpf
Klaus Singvogel
kl_eisbaer (10)
Lars Marowsky-Bree
Ludwig Nussel (3)
M. Edwin Zakaria
Manuel Trujillo
Marcus Hüwe (6)
Marcus Meissner (1)
Marcus Moeller (1)
Marcus Schaefer (1)
Martin Lasarsch (8)
Martin Mohring (8)
Martin Schmidkunz
Masim "Vavai" Sugianto (20)
Matt Sealey
Mauro Parra-Miranda
Michael Andres (1)
Michael Skiba
Michal Marek (3)
Michal Vyskocil (6)
Michal Zugec
mrdocs
Nikanth Karthikesan
Oswin Zulu
Peter Nixon
Peter Pöml (3)
Petr Mladek (23)
Petr Uzel
Philipp Thomas
Pragnesh Radadiya
Ray Chen
Ray Wang (1)
Ricardo Varas Santana (3)
Richard Bos (3)
Robert Lihm
Roman Drahtmueller
Rossana Motta (1)
Rupert Horstkötter (7)
Sascha Manns (33)
Sebastian Schöbinger (3)
Stanislav Visnovsky (7)
Stefan Haas (1)
Stefan Hundhammer (5)
Stefan Schubert (3)
Steffen Winterfeldt (4)
Stephan Kulow (8)
Suman Manjunath
Susanne Oberhauser (2)
Syamsul Qamar Ngabito
Thomas Göttlicher (4)
Thomas Schraitle (11)
Thruth Wang
Tuukka (11)
Ulrich Hecht
Wilken Gottwalt
Xin Wei Hu





 

How to Make openSUSE 11.0 GM Live USB

1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 4.11 out of 5)
Loading ... Loading ...
Friday, June 20th, 2008 by Masim "Vavai" 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.


17 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 condor64
2008-09-22 09:14:38

Hi,

Is there is a solution for this error “Failed to detect CD drive !” ?
I tried to make my initrdud but it’s always the same. I always have this error .

Thanks in advance

Condor64

(Comments wont nest below this level)
 
 
 
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)

 
Comment by Scott
2008-09-05 22:56:10

I made a change to the include function as I was using a different partition. Just the for loop is changed:

for i in $cddevs;do
for j in 1 2 3 4 5 6 7 8 9 10 # fixme; looks only in first 10 partitions
do
echo j $j
devi=$i$j
echo devi $devi
if [ -b $devi ]; then
test -z $cddev && cddev=$devi || cddev=$cddev:$devi
echo cddev $cddev
fi

done
done

 
Comment by G Turing
2008-11-05 14:52:12

I’m stop in “Couldn’t find CD image configuration file”

 
Comment by swordcatchr
2009-02-19 12:36:44

Hi.

As a little unexperienced SUSE beginner, i’m glad that i’ve found this tutorial.
But i got stuck now.

I used the Live-CD-Image from this source: http://download.opensuse.org/distribution/11.1/iso/openSUSE-11.1-KDE4-LiveCD-i686.iso
and modified the initrdud as described above.

The only exception is the linuxrc-file, there was no line like “/bin/sh” where i could start to display the executed commands. The other shell called in the first line is taken out with a comment-sign “#”, so i didn’t know how to display the called commands in the terminal window.

The Stick will boot but i get this lines (copied by hand):

—-begin of copy—–

—–> Probing module: ata_piix
—–> Probing module: uhci-hcd
—–> Probing module: ehci-hcd
cddevs /dev/sda /dev/sdb
i /dev/sda1
cddev /dev/sda1
i /dev/sdb1
cddev /dev/sda1:/dev/sdb1
—–> Mounting live boot drive…
—–> Failed to mount RW root filesystem
—–> shellException: providing shell…
(none):/ #

—-end of copy—–

Booting from a real Live-CD works fine.
Has anybody a hint for me, why the filesystem will not be mounted?
Thanks in advance.

Comment by swordcatchr
2009-02-19 16:34:09

Update: thanks google i found a solution (but unfortunately i don’t understand the reason why this works).

I had to erase the file named: “config.isoclient”
and i renamed the file “config.kde.isoclient” to “config.isoclient”.

Anyone who can explain me, why the original file was empty and what the entries in the other file are for?
Thanks in advance.

 
 

Sorry, the comment form is closed at this time.