Don't understand german? Read or subscribe to my english-only feed.

Grazer Linuxtage 2012: Call for Lectures

January 23rd, 2012

Am Samstag, dem 28. April finden heuer wieder die Grazer Linuxtage statt!

Die Suche nach Vorträgen und Projektständen wurde soeben offiziell eröffnet. Wenn du ein spannendes Thema oder Projekt hast, über das du vor einem interessierten Publikum reden möchtest ist das deine Chance. :)

Die Grazer Linuxtage feiern heuer ihren 10. Geburtstag(!) und wir erwarten auch diesmal wieder mehr als 500 Besucher auf einem der größten IT-Events in Österreich.

Disclaimer: Die Grazer Linuxtage sind für ein buntgemischtes Thema bekannt. Wir beschränken uns aber weder auf Linux, noch mußt du dir ein supertechnisches Thema aussuchen. Von Anwendersoftware und Projektvorstellungen, über Themen für Systemadministratoren und Softwareentwickler, bis hin zu freier Kultur und Technik ist alles mit dabei. Ganz besonders freuen wir uns über Vorträge für Einsteiger (du musst definitiv kein Superduperüberdrüber-Geek sein um bei uns vorzutragen – weder wir noch unser Publikum beißen!).

Wir freuen uns über deine Vortrags- und/oder Projektstand-Einreichung über

commit-sounds – make committing more fun

December 2nd, 2011

December, release time. I’m currently involved in the release management of three major projects and it’s not always about fun. So lets make it more fun:

FAI: switch from Subversion to Git

November 5th, 2011

Revision one in the Subversion repository of the FAI project dates back to the 27th of June 2000. Over the last few months we were discussing the switch to Git. At the last FAI meeting we decided to finally switch to Git and I volunteered to drive the migration. Today I officially did the migration.

I’ve been using git-svn to handle the FAI svn repository for at least as long as I’m wearing the FAI stable release manager hat. But the tags, author information,… inside my git-svn checkout weren’t ready for official publishing yet…

There are at least two different well known and referenced svn2git implementations out there. I decided to give the one hosted on github a shot because it’s mentioned at It basically uses git-svn and just does the few annoying steps for you that I’d had to do manually otherwise. For more complex repositories the other svn2git implementation might be worth a try, especially since it’s supported by the svneverever tool. svneverever supports more flexible rules regarding the repository layout (it was used for switching Gentoo’s Portage from Subversion to Git). Luckily we didn’t need it in our situation and I had experience with git-svn on the FAI repository already, so…

Converting the repository was as simple as running:

% svn2git svn:// --authors ../fai-svnauthors

The ../fai-svnauthors file contains all the “svnuser = Realname <>” mappings to get the author information right. Some 41 minutes later svn2git finished its work. Finally I pushed the result to the FAI repository at github.

If you’re interested in the repository size of svn vs. git:

  • svn repository (server side): 155MB
  • svn checkout (client side): 318.3MB (4.3MB trunk, 301MB tags, 13MB branches)
  • git-svn checkout: 13MB
  • git repository/checkout: 7.1MB

Rocking Zsh: directory specific shell profiles – Screencast

October 8th, 2011

The “Directory specific shell configuration with Zsh” is a rocking feature I use in all my projects when working on the command line. I just created a screencast where I’m showing this feature in action, including its configuration:

This embedded video doesn’t work for you? Try heading over to YouTube.

Since its my first screencast please let me know what you think of it. Waste of time? Want to see further screencasts about Zsh, Grml,…? Is there any other platform than YouTube better suited for such screencasts (for the creator as well as the visitor’s point of view)? Is there anything specific I might consider changing in upcoming screencasts?

Open Source Projects using Jenkins

August 27th, 2011

For a (german) talk I’ll be giving soon I was interested in a list of open source projects which use Jenkins. Jenkins is a great open source continuous integration server. I was wondering whether such a list exists but since it doesn’t exist yet I created my own and Kohsuke Kawaguchi (creator of Hudson/Jenkins) suggested to blog about it. There we go. :)

Open source projects using Jenkins, though Jenkins service not accessible for the public (yet):

And Cloudbees hosts some OSS projects providing Jenkins as a service.

Update [2011-09-05]: I put the list to the jenkins wiki under ->

Update [2011-08-29]: thanks for all the feedback, I’ve updated the list accordingly.
If you’re aware of another open source project using Jenkins please leave it in the comments, I’ll update the list accordingly then.

Event: 20 Jahre Linux – WKO/Graz

August 27th, 2011

Die Open Source Experts Group Steiermark veranstaltet am 1. September 2011 das Event “20 Jahre Linux” in Graz. Gemeinsam mit Alfred Bach, Jan Kleinert und Klaus Knopper bin ich als Vortragender anzutreffen. Ich würde mich über ein paar bekannte Gesichter im Publikum freuen. Der Eintritt ist frei, weitere Details unter

Use of VCS in Debian packages – some stats

August 19th, 2011

Everyone loves stats, ok well – at least I do. I was doing some research with regards to package maintenance within the Debian distribution and since the results might be interesting for someone else – there we are.

On 19th of August 2011 there have been:

  • 16935 unique source packages in Debian/sid
  • 9977 packages with Vcs-* field in Debian/sid
  • 6957 packages without a Vcs-* field in Debian/sid

Therefore ~59% of all packages in Debian/sid are officially managed with a version control system (VCS). Now, which VCS do those packages use?

  1. Svn: 4939
  2. Git: 4377
  3. Darcs: 284
  4. Bzr: 247
  5. Hg: 61
  6. Cvs: 31
  7. Arch: 28
  8. Mtn: 10

I’ve retrieved the numbers from the Ultimate Debian Database (UDD). Sadly there’s a bug in UDD regarding the Vcs-Type information, see #637524. Therefore I’ve extracted a list of 80 packages where a Vcs-Browser header is available but the Vcs-Type entry is empty in UDD. 29 packages of them are managed inside CVS but don’t appear as such in UDD, so I manually corrected the number for CVS in the numbers above. The remaining 51 packages have a Vcs-Browser field set but lack the according Vcs-* entry, some of them pointing to upstream VCS instead of the according Debian package repository, some of them result in 404 errors, etc. As a result I’ve reported bugs where applicable (#638466, #638468, #638469, #638470, #638471, #638472, #638474, #638475, #638476, #638477, #638479, #638482, #638486, #638488, #638493, #638497, #638501, #638475, #638475, #638502, #638503, #638505, #638506, #638508, #638509, #638510, #638511, #638512, #638513, #638516, #638518, #638519, #638520, #638522, #638523, #638524, #638525, #638526, #638527, #638528, #638529, #638530, #638516, #638531).

Disclaimer: I found Debian’s Statistics wiki page and Zack’s VCS usage stats after starting to play with my own stats. AFAICT Zack’s slightly higher numbers are the result of looking at multiple versions for the same source packages, as you’ll see when comparing numbers from UDD’s sources_uniq view (which I used) with either 1) UDD’s sources table, 2) source table count from projectb or 3) Package count from http://$DEBIAN_MIRROR/debian/dists/unstable/{main,contrib,non-free}/source/Sources.bz2.

Conclusion: 9316 packages are officially managed with Subversion and Git as of today, representing ~94% of the VCS managed packages. This means ~55% of all the Debian (source) packages are available through either a Git or Subversion repository – and that’s actually the number I was originally interested in.

Thanks to Alexander Wirt, Christian Hofstaedter, Gerfried Fuchs, Jörg Jaspert and Michael Renner for hints in forming up the final stats results.

Review: Das Git-Buch

August 14th, 2011


Ich habe soeben “Das Git-Buch – Verteilte Versionsverwaltung für Code und Dokumente” von Valentin Haenel und Julius Plenz gelesen. Das deutschsprachige Buch füllt 328 Seiten und konkurriert mit freien Büchern wie dem Git Community Book, Pro Git und Git In the Trenches. Das Inhaltsverzeichnis des Buches sieht wie folgt aus:

  1. Einführung und erste Schritte
  2. Grundlagen
  3. Praktische Versionsverwaltung
  4. Fortgeschrittene Konzepte
  5. Verteiltes Git
  6. Workflows
  7. Git auf dem Server
  8. Git automatisieren
  9. Zusammenspiel mit anderen Versionsverwaltungssystemen

Es geht schnell zur Sache: die fürs Verständnis besonders wichtigen Themen Index und Objektmodell sind bereits nach rund 60 Seiten solide absolviert. Bei dickeren Büchern habe ich immer Angst, dass die Seiten mit Auszügen aus Manpages oder Kommandozeilenoutput gefüllt sein könnten, das ist aber hier definitiv nicht der Fall. Die Erklärungen sind knackig und präzise geschrieben, es wird nicht lange um den heißen Brei geredet.

Es gibt anschauliche Beispiele und es wird nicht nur das wie erklärt, sondern auch das warum und was der Hintergrund von einem anfangs vielleicht noch komisch anmutendem Konzept ist. Fortgeschrittene Themen wie reflog und filter-branch werden praxisnahe behandelt und auch meine Lieblinge wie –color-words, interaktives Rebasen, git grep und cherry-picking kommen vor.

Ich habe einiges dazu gelernt, wie z.B. ‘git show id:datei’, ‘git gui blame’, den Einsatz von ‘git rerere‘ und wie man eine GPG-Signatur in einen Blob steckt. Dass die sehr nette patch-Option ‘-p’ in vielen Tools funktioniert war mir bereits bekannt, dass die verbose-Option ‘-v’ aber etwa beim Commiten nützlich sein kann war mir neu. Der Hinweis auf mergeinfo-Support in git-svn mit Git Version 1.7.4 kam mir ebenso wie die Gegenüberstellung von Submodules zu Subtrees gerade recht.

Zu Beanstanden habe ich nur eine Kleinigkeit: Im Absatz über gute Commit-Nachrichten fehlt mir ein Hinweis auf englischsprachige Commit-Nachrichten als empfehlenswerter Standard. Das Buch richtet sich natürlich an deutschsprachiges Publikum und daher sind die deutschen Commit-Nachrichten in den Beispielen verzeihbar, aber deutschsprachigen Commit-Nachrichten möchte zumindest ich in keinem Repository begegnen, an dem mehrere Personen beteiligt sind.

Aus der Stichwortliste was ich gerne erwähnt gefunden hätte sind folgende Punkte offen geblieben: das praktische Tool git-wtf, das Konsolenfrontend tig sowie der mit speziellen Tools versehene Workflow gitflow. Zu git-svn fällt mir noch die addAuthorFrom/useLogAuthor-Thematik ein. Sehr praktisch für den Alltag finde ich weiters url insteadOf/pushInsteadOf. Im Kapitel zu Github hätte vielleicht noch ein Hinweis auf eines der hilfreichen Tools wie git-pull-request Platz gehabt. Dass Tools wie git-buildpackage und gitpkg im Debian-Paketbau beliebt sind und diverse Frontends für Emacs und Vim existieren hätte aber vermutlich das Buch inhaltsmäßig gesprengt oder das Risiko mit sich gebracht, dass die Informationen für ein Buch zu schnell überholt sein könnten.

Mein Fazit: Selbst mit über 3 Jahren Erfahrung und als Anhänger von Git hat mich das Buch nicht gelangweilt, sondern das vorhandene Wissen gefestigt und neues dazugestellt. Das Buch liefert solides Wissen in angenehm lesbarer Form und ich kann es Einsteigern wie Fortgeschrittenen empfehlen. Man hat damit den passenden Überblick und die richtigen Stichwörter um sich durch die diversen Manpages und die Weite des Internets zu kämpfen und Git voll genießen zu können.

Disclaimer: Ich habe vom Verlag ein kostenloses Exemplar zur Verfügung gestellt bekommen.

The Zsh Pony

July 29th, 2011

I was giving a skills exchange session about Zsh at DebConf 11. I wasn’t expected to prepare the session, but since there was no video projector available in the meeting room I started to work on some notes.

Looks like I suffer from presentation driven development, so the notes turned out to become bigger than expected. If you’re interested in my Zsh pony then head over to

PS: I plan to provide the zsh pony at github, but my org-mode file still causes an error 500 at github. Github support is already aware of it. In the meantime I’m happy to receive feedback, patches and contributions via mail.

Creating 32bit Debian packages in 64bit environments

July 12th, 2011

i386 systems are dying off and therefore building 32bit Debian packages in 64bit environments is important if you still need packages for i386. For some recent projects I had to set up 64bit-only environments with the need to provide 32bit packages for i386 as well as according i386 Linux kernel packages.

1) Common Debian packages

Just prepend the “linux32” command to the build commands and use the “-a386” option of dpkg-buildpackage(1). So use “linux32 dpkg-buildpackage -ai386”, “linux32 git-buildpackage -ai386”, “linux32 debuild -ai386”,… or whatever build tool you prefer to work with. I personally like using “git-buildpackage … -S” together with cowbuilder. When using cowbuilder it’s easy to get i386 Debian packages:

# create initial cow base directory, needs to be executed just once:
cowbuilder --create --basepath /var/cache/pbuilder/wheezy32.cow \
   --architecture i386 --distribution wheezy --mirror

# the "debbuildopts -b" says I want a binary-only build, see dpkg-buildpackage(1):
linux32 cowbuilder --build --basepath /var/cache/pbuilder/wheezy32.cow \
   ~/foobar_0.42.dsc --debbuildopts "-b"

2) Debian Kernel packages

If you’re building your own kernel images you might be aware of setting ARCH for the common make targets, like:

ARCH=i386 make oldconfig

To build a linux-image Debian package you can use upstream’s deb-pkg target, like:

ARCH=i386 make deb-pkg

This should provide you according linux-headers, linux-firmware-image, linux-libc-dev and linux-image i386 Debian packages.

But if you need the according source and doc packages as well you might prefer make-kpkg of kernel-package instead, using options like:

DEB_HOST_ARCH=i386 setarch i386 make-kpkg --revision "$KERNELVERSION" \
  --cross-compile - --arch=i386 --us --uc --initrd \
  --rootcmd fakeroot kernel-image kernel-headers kernel-doc kernel-source

3) Debian linux-2.6 kernel packages

If you’re interested in building Debian kernel images the same way as the Debian kernel team does (AKA linux-2.6) make sure to check out the kernel-handbook.

After installing essential software packages I had to set up some symlinks for building:

apt-get install build-essential fakeroot devscripts fakeroot
apt-get build-dep linux-2.6
ln -s /usr/bin/gcc-4.4 /usr/bin/i486-linux-gnu-gcc-4.4
ln -s /usr/bin/ld /usr/bin/i486-linux-gnu-ld
ln -s /usr/bin/ar /usr/bin/i486-linux-gnu-ar
ln -s /usr/bin/objcopy /usr/bin/i486-linux-gnu-objcopy
ln -s /usr/bin/nm /usr/bin/i486-linux-gnu-nm
ln -s /usr/bin/objdump /usr/bin/i486-linux-gnu-objdump
ln -s /usr/bin/strip /usr/bin/i486-linux-gnu-strip

Then executing:

apt-get source linux-2.6
cd linux-2.6*
debuild -ai386 -us -uc

provided the according Debian packages (linux-doc, linux-headers, linux-image, linux-libc-dev, linux-manual, linux-patch-debian, linux-source, linux-support and linux-tools).

4) Out-of-tree kernel module packages

If you want to build external modules which are available as $MODULENAME-source in Debian (e.g. tp-smapi-source) using module-assistant then use the DEB_HOST_ARCH environment variable, like:

DEB_HOST_ARCH=i386 m-a -v --text-mode -k /home/mika/linux-$KERNELVERSION -l $KERNELVERSION build tp-smapi

If the external module is not available for use with module-assistant then compile the module running:

make -C /lib/modules/$KERNELVERSION/build M=$(pwd)

whereas /lib/modules/$KERNELVERSION/build is pointing to the build directory of your 32bit kernel.

Create virtual disk images using grml-debootstrap

May 31st, 2011


Lars Wirzenius was searching for a tool to create virtual disk images. Turned out I needed something similar to improve the automatic deployment process of a customer’s platform installation.

Being the author of the mentioned grml-debootstrap tool I started to work on deploying virtual disk images using grml-debootstrap. As a result I just uploaded grml-debootstrap version 0.46 which is the first release being capable of installing virtual disk images. Thanks to great help by Thorsten Glaser also proper Grub integration is working now.


Grab the most recent grml-debootstrap version (>=0.46) from the grml-testing repository and make sure to install its recommends (kpartx mksh parted qemu-utils). Then just use the vmfile option to activate deployment of a virtual disk image, combined with the target option as usual. To adjust the disk size use the vmsize option.

Usage example:

# IMAGE_FILE="/mnt/sda1/qemu.img"
# grml-debootstrap --vmfile --vmsize 3G --target $IMAGE_FILE

I tested it from inside a running Grml live system, which is running inside a KVM image running on a Proxmox VE cluster. I can even invoke KVM/Qemu inside Grml inside KVM to test the image (using remote access e.g. via “vncviewer $IP_OF_KVM_HOST:5901”) running:

# kvm -hda $IMAGE_FILE -m 256 -vnc :1

And the best about it: it just works. :)
As usual: testing and feedback highly welcome.

Grml 2011.05 – Codename Just Mari

May 30th, 2011

I’m proud to be able to announce a new stable release of Grml, the Debian based Live system for system administrators.

This release is a very special one for me. On the one hand of course because of the special release name “Just Mari”, being dedicated to my lovely wife.

But it’s also special because of the way the release management worked out. I’ve been the release manager for Grml since the very beginning, which turned out to be more than 6 years since the first stable release already. I developed grml-live as build framework based on FAI for generating a Grml and Debian based Linux Live system to streamline the build process. Anyway it was mainly me who managed the release chroots, doing the update management during release freeze, editing main web page etc.

As I want to make the project as independent from myself as much as possible and to keep the Bus factor in balance we started to improve our project infrastructure so it’s not just me who can do this kind of release management. As a result Grml core developer Christian Hofstaedtler became the release sergeant of this release. The release candidate version was even released without myself being available (the release happened behind my back during our marriage). Major work on the final stable release was also done by Grml core developers Ulrich Dangel, Christian Hofstaedtler, Frank Terbeck and Alexander Wirt and I’m very happy about that. Kudos guys for all your work and all the hidden efforts going on behind my back. :)

The details regarding the new Grml release are available in the official release announcement, get the ISOs from

I hope you enjoy the release as much as I do. Happy hacking!


May 29th, 2011


4489 days later we did it, on 21st of May Marianne and I got married.

Turned out it became a pretty geeky marriage, as Grml 2011.05-rc1 with codename “Just Mari” was released during the ceremony (thanks guys!), I had to solve a nice groom quiz and our event had its own hashtag on twitter.

Thanks to everyone making the day unforgettable for us.

I am going to DebConf11

May 5th, 2011


Just registered myself for DebConf11, see you in Banja Luka.

Report from FAI developer meeting 04/2011

April 21st, 2011

Last week a developer meeting of the FAI project took place in Cologne/Germany. Four core developers (project lead Thomas Lange and 3x Michael :)) met for two days to discuss and work on the FAI project.

The first day (2011-04-14) started at 11:45 and lasted until around 21:15, the second day (2011-04-15) started at 11:00 and lasted until 22:00. We made 134 svn commits in those two days. The developer meeting was great, we got tons of stuff done:

  • New release candidate version for stable release 3.4.8
  • Implemented support for CentOS 5
  • Website improvements:
  • Setup-storage improvements:
    • Backport from trunk/experimental of setup-storage into 3.4.8
    • Cleanup of setup-storage patches
    • Minor bugfixes
    • setup-storage in 3.4 got align-at and default to cylinder alignment if preserve is used
  • Worked on autotesting using Kantan:
  • Discussed Release management:
    • 3.4.x considered as long term stable release (includes tested bugfixes and tested features that have been backported from developer versions (4.x and experimental))
    • 4.x considered as developer version (inclusion of fast bugfixes, inclusion of big features which might break stable version,…)
  • Documentation:
  • Unsorted other stuff:
    • Removed obsolete branches in svn
    • Grub now being installed from inside the target instead of nfsroot
    • Changelog in trunk got entries from 3.4.X with fixed git commit ids; entries were merged to find exact diff of trunk to 3.4.X
    • Defined what needs to be done after the developer meeting.

Event: Grazer Linuxtage 2011

April 1st, 2011

Nicht vergessen – am Samstag, dem 9. April finden an der FH Joanneum wieder die Grazer Linuxtage (GLT11) statt.

Das Programm bietet von 09:30 bis 19:00 Uhr über 30 Vorträge, LPI- und BSD-Prüfungen, eine Keysigning-Party und viele Infostände von renommierten Projekten wie z.B. Debian, LibreOffice und OpenStreetMap.

Ich selbst bin neben der Tätigkeit als Organisator auch am Grml-Projektstand sowie als Vortragender von Gute Open-Source-Projekte bestehen aus mehr als nur Code anzutreffen.

Das Programm sowie alle weiteren Informationen gibt es unter

Grml User Survey 2011 – the results

March 17th, 2011

The results of the Grml User Survey 2011 are available. I strongly recommend any open source project to run such a survey. Besides gathering really interesting feedback it’s motivating for developers to read what people think about your product.

Interesting facts for Planet Debian readers: With a leading 86% our users are Debian users. Further quoting:

Also just a short overview but it seems that the most important reasons for using Grml are:
* Based on Debian
* Command-line interface
* Ships all necessary command-line tools
* Zsh

I personally consider the survey a big success for the Grml project. Thanks to all participants for your feedback.

Grazer Linuxtage 2011: Call for Lectures / Projects

January 28th, 2011

Am Samstag, dem 9. April 2011 finden an der FH Joanneum die Grazer Linuxtage 2011 (GLT11) statt. Die ganztägige Veranstaltung (9:00 bis 18:30 Uhr) richtet sich mit zahlreichen Vorträgen und Informationsständen nach den Interessen der Zielgruppen Anwender, Administratoren und Softwareentwickler.

Soeben sind Call for Lectures und Call for Projects online gegangen. Wer auf den GLT11 einen Vortrag halten oder ein Open-Source-Projekt mit einem Stand präsentieren möchte, kann das ab sofort über die Homepage einreichen.

Ich hoffe man sieht sich im schönen Graz!

Grml User Survey 2011

January 11th, 2011

Grml users out there: We are interested in getting your feedback so we can further improve Grml. We are also working on a webpage which lists happy Grml users and also some quotes and use cases. Now we need your help:

Please provide your feedback and take part in Grml’s user survey!

Booting ISO images from within GRUB2

January 7th, 2011

You might be aware of GRUB’s loopback option for booting an ISO, I wrote about it in Boot an ISO via Grub2 more than a year ago. A few months ago Goswin von Brederlow came up with this idea:

grml functions great as rescue system. So it would be nice to have a boot entry for it in grub instead of having to go look for the CD when needed. To make installing and updating simple it would be great if one could install this as a normal debian package which would register itself in grub (and maybe lilo too).

What a lovely idea: no need for a CD or USB stick as long as the bootloader and the harddisk are still working. Minimal manual intervention needed to keep it up2date and working – sounds like the perfect rescue system. 8-)

Now since end of 2010 a new stable version of sysadmin’s favorite live system (AKA Grml 2010.12) is available and the great news is that we came up with two independent solutions known as grml-rescueboot and grub-imageboot. Having shipped them to one of my customers already I’d like to write some words about it and why you should also consider using it on all your systems where GRUB2 is available.

grml-rescueboot uses GRUB2 and its loopback feature for booting. Grml as well as Ubuntu provide all what’s needed out-of-the-box. If you’re interested in the details check out Jordan Uggla’s excellent Loopback.cfg webpage in the supergrubdisk wiki. The best about it: you can provide custom bootoptions automatically when booting Grml. For example just set CUSTOM_BOOTOPTIONS=”ssh=grml2011″ in /etc/default/grml-rescueboot and the Grml rescue system will automatically start the OpenSSH server with the specified argument as password for user grml. Of course you can use all the other nifty bootoptions like scripts/netscript/… to further customize your Grml rescue system. [A note to other distributions like Ubuntu: I’d be interested to establish a mechanism to pass kernel options for loopback boot in a standardized way, drop me a note if you’re interested in this.]

grub-imageboot uses GRUB2 and syslinux’ memdisk to boot ISOs and floppy images. It doesn’t rely on the loopback feature but instead maps the ISO into the memory directly. This is great for Linux ISOs that can’t and won’t support the the loopback feature (and have everything inside their initrd so the ISO doesn’t have to find itself during booting), like BIOS or firmware updates. Also for example FreeDOS and Alpharev are known to work just fine. But sadly memdisk ISO emulation doesn’t work with all Linux systems, as documented in the syslinux wiki. The good news is that Grml supports the memdiskfind/phram/mtdblock approach out-of-the-box. As far as I know therefore Grml is the first Debian based live system supporting memdisk ISO boot, though my patches already went to the Debian-Live project so if you’re using live-boot >=2.0.14-1 or >=2.0.12-1+grml.04 your live system should be able to boot via memdisk ISO emulation as well.

Summary: If you want to boot a Linux system which supports loopback.cfg use grml-rescueboot as its a more powerful tool to boot Linux live systems like Grml and Ubuntu. If you want to boot non-Linux systems (BIOS-/Firmware-Updates/FreeDOS/….) use grub-imageboot.

Alright – how do you deploy this solution? Just grab and install grml-rescueboot and/or grub-imageboot.

To deploy grml-rescueboot (adjust $VERSION if you want to use another flavour):

# choose Grml version:

# create directory
mkdir -p /boot/grml

# download and verify ISO
cd /boot/grml
md5sum -c ${VERSION}.iso.md5

To deploy grub-imageboot:

# choose Grml version:

# create directory
mkdir -p /boot/images

# download and verify ISO
cd /boot/images
md5sum -c ${VERSION}.iso.md5

That’s it! Now when running update-grub you should get something like:

# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.36-grml64
Found initrd image: /boot/initrd.img-2.6.36-grml64
Found memtest86+ image: /boot/memtest86+.bin
Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
  No volume groups found
Found Grml ISO image: /boot/grml/grml64-medium_2010.12.iso
Found memdisk: /boot/memdisk
Found iso image: /boot/images/grml64-medium_2010.12.iso

Voilà, when rebooting your system you should see something like:

Screenshot: grml-rescueboot

The “Grml Rescue System” entry is what grml-rescueboot provides and “Bootable ISO Image” is what’s provided by grub-imageboot. Just select the entry you’d like to use, press enter and and you should get the bootsplash of the according ISO.

BTW: I’ve tested this with Ubuntu 10.10 too, grml-rescueboot works out-of-the-box with the Ubuntu ISO as well, it just doesn’t support the memdisk ISO boot by grub-imageboot (yet).

Tip: if you want to use grml-rescueboot and grub-imageboot with the same ISOs without having them twice on the disk just point the configuration option IMAGES in /etc/default/grub-imageboot to the according directory (like /boot/grml).

Note: if you’re using the ext{2,3,4} filesystem on the partition that’s being used for /boot please be aware that you need GRUB >=1.98+20100804-12 (newer version is already available in Debian/unstable and hopefully migrates to squeeze in time) or GRUB >=1.99~20101122-1 because of the INDIRECT_BLOCKS support, see #543924 for the details.

PS: We think about providing grml-rescueboot and grub-imageboot within official Debian. If you’re interested in seeing integration support for other distributions as well please help and drop us a note.