Grub bootable auf USB-Stick

Ich habe mir vor ein paar Tagen meinen Grub-Bootmanager zerschossen. Das geschah durch ein Update von “Rescue & Recovery”, einem Lenovo-Hilfstool. Offenbar bringt R&R einen eigenen Bootloader mit oder was auch immer. Auf jeden Fall zerschießt ein Update mal eben das System und nach dem Boot kommt nicht mehr der GRUB-Auswahlschirm, sondern eine Konsolenzeile in schwarz mit dem kurzen prägnanten Wort ‘GRUB’. Mehr kann passiert nicht. Keine Möglichkeit, irgendetwas einzugeben, noch irgendetwas anderes. Aber was soll man machen? Man will ja an sein System. Die übliche Googelei brachte mich zu der Erkenntnis, dass ich nicht der einzige mit durch R&R-Update zerschossenem System bin. Aber die anderen hatten einfach Linux neu installiert. Möglicherweise geht das auch, aber da auf meinem Rechner einige sehr wertvolle Daten lagen und ich zusätzlich kein CD-Rom-Laufwerk zur Hand hatte, mußte eine andere Lösung her: Das bestehende Linux auf der Platte mit einem Bootmanager auf dem USB-Stick booten und den Grub neu installieren.

Übersicht:

  1. USB-Stick mit Grub bespielen
  2. von USB booten
  3. die richtigen Partitionen auf der HD finden
  4. Grub neu installieren

Alle Beispiele beziehen sich auf meine Konfiguration: Lenovo ThinkPad T61p, Ubuntu 7.10 auf dritter Partition.

1. USB-Stick mit Grub versehen

Die Erstellung erfolgt unter Linux (z.B. von CD gestartet) folgendermaßen:

  1. USB-Stick löschen: cat /dev/zero > /dev/sda

    (Achtung! Natürlich kann man sich hier einiges kaputt machen. Es muss absolut sicher sein, dass man dass richtige Device /dev/xxx eingetragen hat. Der Vorgang kann einige Minuten in Anspruch nehmen.)

  2. Dann mit fdisk eine neue Partitionstabelle erstellen:

    fdisk /dev/sda -> o (create a new empty DOS partition table) -> n (add a new partition) -> FS-Type 83 (ext2) -> w (write to table and exit).

    Genauer:

    Command (m for help): n
    Command action
    e extended
    p primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-1009, default 1):
    Command (m for help): a
    Partition number (1-4): 1
    Command (m for help): w

  3. Rechner neu starten, damit das Linux den Stick mit der neuen Partition erkennt

  4. Dateisystem in die neue Partition schreiben: mkfs.ext2 /dev/sda1

  5. mounten:

    mkdir /media/stick
    mount /dev/sda /media/stick

  6. grub kopieren:
    linux:/media # mkdir -p /media/stick/boot/grub
    linux:/media # cp /boot/grub/*stage* /media/stick/boot/grub
    linux:/media # echo '(hd0)  /dev/sda' > /media/stick/boot/grub/device.map
    linux:/media # grub-install --root-directory=/media/stick /dev/sda
    linux:/media # umount /media/stick/
  7. mapping schreiben:

    linux:/media # echo '(hd0) /dev/sda' > /media/stick/boot/grub/device.map

    Das braucht der Grub um zu denken, der USB-Stick sei hd0,0. Warum auch immer.

So weit, so gut. All das ist nachzulesen unter [1].

2. Von USB booten

  • das BIOS auf usbboot stellen – hoffentlich vorhanden?!
  • den Rechner von USB booten. Es sollte die Grub-Console erscheinen

3. Richtige Partition finden

in der grub console folgendes eingeben:

  1. root (hd1,2)

    (hd0,0) ist der verdammte usbstick, bei mir war also auf Platte 2 in der dritten Partition das installierte Linux. Es sollte erkannt werden, dass es sich um eine ext2-Partition handelt

  2. kernel /vmlinuz root=/dev/sda3

    Die Information, was man als root= einträgt, kann man der Datei fstab entnehmen: cat /etc/fstab, bei SATA ist das /dev/sdaX

  3. initrd /initrd.img

  4. boot

  5. und die Kiste sollte starten!!! Jippie!

4. Grub neu installieren

Die Installation ist unter [2] beschrieben.

[1] Booten mit GRUB vom USB-Stick
[2] Grub neu installieren

Informative Links, die geholfen haben:

GNU GRUB – FAQ
Grub-Boot-Diskette – Gentoo Linux Wiki
grub boot root – Google-Suche
GRUB – LinuxWiki.org – Linux Wiki und Freie Software
LUG Krefeld: LinuxOhneBildschirm
Booten mit GRUB
grub broken – Google-Suche
“Kernel panic” beim booten Ubuntu->GRUB – Unixboard.de

Windows-Kontextmenü für alle Dateien erweitern

Habe soeben verzweifelt versucht über die Dateitypen-Verwaltung (Ordneroptionen -> Dateitypen) von Windows (XP) eine Aktion für alle Dateien hinzuzufügen. Mittels einer neuen Erweiterung “*” o.ä. hat es irgendwie nicht funktioniert. In der Registry ist jedoch ein Eintrag HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\ vorhanden. Dieser steht offensichtlich für alle Dateien. Dort habe ich die Aktion eingebaut:

Beispiel für GnuPG-Encrypt-Eintrag:

  1. Falls nicht vorhanden unter HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\ den Schlüssel “shell” anlegen und darin den Schlüssel “gpg“. Der Name des zweiten Schlüssels kann beliebig gewählt werden.
  2. Text des Eintrags im Kontextmenü setzen: Dazu den Wert der ersten Zeichenfolge (“(Standard)”) in HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\gpg\ auf “Encrypt with GnuPG” ändern.
  3. Unter HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\gpg\ den Schlüssel “command” erstellen
  4. Den Wert der Zeichenfolge “(Standard)” unter HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\gpg\command\ auf “c:\programme\gnupg\gpg.exe -e “%1”” ändern.

Das Ergebnis sollte ungefähr so aussehen (Registry-Export):

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\gpg]
@="Encrypt with GnuPG"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\gpg\command]
@="c:\\programme\\gnupg\\gpg.exe -e \"%1\""

Wohnst Du noch oder arbeitest Du schon – neues Büro in der Bonner Südstadt

Oder sollte ich in Anlehnung an Tobi besser fragen “Schläfst du noch oder arbeitest Du schon”? Nach chillen und schlafen kommt arbeiten!

Immobilienscout24 scheint wahrhaft die Instanz für Immobilienschiebereien im deutschsprachigen Internet zu sein: Auch meine 4 Partner und ich sind dort fündig geworden auf der Suche nach neuen Büroräumen. Ab 01.12. können wir unsere neue Residenz im Erdgeschoss eines Gründerzeithauses in der Schumannstrasse (Südstadt) beziehen.

  • Wintergarten
  • Cat7-Netzwerkverkabelung (vorteilhaft bei geplanter 1000Base-T-Infrastruktur)
  • 3 m Raumhöhe, Parkettboden, Stuckdecke
  • Gartenmitbenutzung

Fehlt noch:

  • Spülmaschine, Mikrowellenanlage
  • Vollautomat zur Heißgetränkeproduktion
  • Internetanbindung, TV-Access
  • Heizpilz (damit M. auch im Winter im Garten arbeiten kann)

Büro Impression 1 Büro Impression 2 Büro Impression 3 Büro Impression 4 Gartenimpression

Schöner coden – einige Grundregeln

Im Rahmen meiner Arbeit bin ich immer wieder mit Code konfrontiert, der zwar super funktioniert, aber schöner und einfacher gestaltet werden könnte. Ich will an dieser Stelle mal einige Dinge sammeln, die hier weiterhelfen können.

Vergleiche von Strings mit Konstanten

schlecht:

if (!string.equals(KONSTANTE){..

Problem: Nullpointer-Exception bei Null-String

medium:

if (string != null && !string.equals(KONSTANTE){ ...

schöner:

if (!KONSTANTE.equals(string){ ...

In dieser Schreibweise wird die Nullprüfung unnötig. "".equals(null) gibt false zurück und verursacht keine Nullpointer-Exception.

Vergleiche mit Leerstring

schlecht:

eingabe.equals("")

Problem: siehe oben

medium:

"".equals(eingabe)

Problem: Es wird nicht beachtet, dass eingabe auch ” ” sein kann.

medium/schlecht:

"".equals(eingabe.trim())

Problem: Hier rennt man wieder in eine Nullpointer, wenn eingabe null ist.

schön:

StringUtils.isEmpty(eingabe)

StringUtils ist eine Klasse aus den apache.commons und deckt alle Anforderungen in diesem Zusammenhang ab:

isEmpty (null) == true

isEmpty("") == true

isEmpty(" ") == true

isEmpty ("something") == false

Analog ist mit Booleans zu verfahren. Hier gibt einem BooleanUtils entsprechende Hilfestellung. Aber Achtung: BooleanUtils.isFalse(null) == false und BooleanUtils.isTrue(null) == false!

Chillst du noch oder schläfst du schon?

Das Wort “Chillen” hat seinen Höhepunkt als Epizentrum des krass-coolen Soziolekts des Lumpen-Proletariats im frühen 21. Jahrhundert im deutschen Sprachraum inzwischen hinter sich gelassen. Und das ist auch gut so.
Was aufgeschlossene, Handytelefonate in öffentlichen Verkehrsmitteln führende Teenager aufzücken lässt (“Wie,…du bist am Chillen….?”) und Möchtegern-Rap-Artisten in ihre müden Mehrzeiler einbauen, ist inzwischen zum Mainstream der jugendlich-urbanen bürgerlichen Mitte in Deutschland geworden und fasziniert nur noch einige wenige hinter dem Mond der Sprachevolution hervorlugende Elfenbeinturmbewohner an staatlich geförderten Sonderforschungsbereichen. Das “Chillen” als Aktivität der jungen Generation eines vereinigten Deutschlands hat das Konzept der German “Gemütlichkeit” inzwischen weitgehend abgelöst.
Was auch in Übersee als Inbegriff des Relaxens vor dem Hintergrund des Feierabends und der Heimeligkeit — also kollektive Zeitmunster implizierned und daher bürgerlich — in einige Pamphlete Einzug gehalten hat, ist nunmehr nur ein Surrogat des ‘denglischen’ Sprachkonvoluts, für das wir VIVA und MTV so dankbar sein sollten.
Diese beiden, Riesenmaschinen (vgl. Theodor W. Adorno) gleich arbeitenden Institutionen prägen die Pragmatik einer Umgangssprache mehr als es ihnen und der Gesellschaft für Deutsche Sprache lieb sein kann.
Ist in Frankreich eine “Académie Francaise” selbstverständlich, um das kulturelle Erbe der “Grande Nation” zu sichern und zu pflegen, wird hierzulande nicht im Entferntesten an die Installation einer ähnlichen Einrichtung gedacht, geschweige denn eine ähnliche Maßnahme wie die “exception culturelle” in Betracht gezogen.
Dieter Gorny, dem als Papst des zeitgenössischen privaten Musikfernsehens eine Prophetenrolle innerhalb dieser Branche zukommt, lässt nur allzu gerne den Markt über Angebot und Nachfrage der bunten Videoclips, die im Flow (vgl. Raymond Williams) auf seinem ehemaligen Sendernetzwerk ruf und runter trudeln, entscheiden.
Ein Hinweismehr, der beweist, dass es vom Sozialen Bundesstaat zum ‘Market State’ (vgl. Philip Bobbitt) nicht mehr weit ist.

Datatools-Plugin für Eclipse

Freundlicherweise liefert Eclipse Europa directement schon das DTP-Plugin mit. Versucht man, das Ding zu bedienen, wachsen einem aber massig graue Haare. Hier mal ein Schnelleinstieg.

– Perspective Database Development öffnen

– Im Datasource Explorer ein neuen Connection Profile anlegen (geht eigentlich recht einfach)

So, nun das erste Select…

Der Knopf für einen Abfrage-Editor ist bestens versteckt: Er befindet sich (wenn man in der DB-Perspektive ist) oben in der Toolbar links der run/debug Knöpfe und ist mit “open scrapbook to edit…” betitelt. Erstmal muß man nun die Connection auswählen und kann dann seine Statements schreiben, um dann – wen wundert’s- wieder rumzusuchen. Es gibt nämlich nicht einfach einen Startknopf oder ähnliches. Der Befehl zum Ausführen versteckt sich im Kontextmenü (“execute all”) oder kann über das Tastenkürzel Strg+Alt+X angesprochen werden.

Erster Eindruck: Ziemlich umständlich das Ding, aber für ein Umsonst-DB-Tool aushaltbar.

Wohnung am Start

Liebe Leserinnen und Leser!

Leh und ich haben heute endlich einen Mietvertrag unterschrieben. Ab November werden wir eine wunderschöne Maisonette-Wohnung in Poll unser (temporäres) Eigen nennen können. Die Wohnung verfügt über einen großen Südwest-Balkon, zwei Bäder (einmal mit Badewanne, einmal mit Dusche), ein großes helles Wohnzimmer mit offener Küche und einen Speicherraum, in dem Gäste untergebracht werden können. Der Boden ist mit Eichenparkett geedelt, die Küche mit schönen Terracotta-Fliesen. Die Wohnung ist super ruhig gelegen und trotzdem fährt man nur 12 Minuten zum Neumarkt.

Jetzt gehen die nächsten Suchen los. Vor allem suchen wir ab Dezember eine Mitbewohnerin. Voraussetzungen: Nett und Nicht-Informatikerin. Wer also jemanden kennt, der Interesse haben könnte, der möge sich bei mir melden. Unser Gecaste wird losgehen, sobald wir richtig eingezogen sind.

Desweiteren suchen wir noch ein paar lebensnotwendige Geräte. Konkret:

– Spülmaschine

– Trockner

– Kühlschrank

– Herd

– Waschmaschine

– Kicker

Wer also in dieser Richtung etwas los werden will oder jemanden kennt, für den das gilt, der schreibe ebenfalls eine Mail an mich.

Und nun noch als Teaser ein paar Bilder (mit freundlicher Genehmigung unseres Vermieters):


Noch für kurze Zeit dürfte unter der Scout-Id 42865085 bei Immobilienscout24.de noch etwas mehr zu sehen sein (inkl. kleinem Video).