BenBE's humble thoughts Thoughts the world doesn't need yet …

08.08.2009

Debian from the Stick

Filed under: Server — Schlagwörter: , , , , — BenBE @ 15:06:05

Eigentlich ist die Installation von Debian auf einem System ganz einfach und auch bei Nutzung eines USB-Sticks, sollte es eigentlich KEINE wirklichen Probleme geben – könnte man meinen. Und auch in Bezug auf die Auswahl der zu installierenden Software stimmt das, wenn man danach aber versucht, sein System zu booten, kann es durchaus etwas seltsam werden.

So bietet das Debian-Setup durchaus ein paar richtig fiese Stolper-Steine, sollte man den Bootloader falsch konfiguriert haben, bzw. nicht wissen, wie das Setup die Festplatten im System relativ zum USB-Stick eingehangen hat.

Aber gut: Vielleicht sollte man erst einmal die System-Konfiguration erklären: Mein neuer Rechner beinhaltet 6 Festplatten, die über SATA angeschlossen sind und zusammen als RAID6 als Datenspeicher verwendet werden. Das eigentliche Betriebssystem des Rechners befindet sich auf einem extern angeschlossenen USB-Stick, von dem auch gebootet werden soll.

Das Konfigurieren dieses Setups ist durchaus nicht trivial, lässt sich aber bei Befolgung der Anweisungen der manuellen Partitionierung durchaus ohne allzu große Probleme leicht einstellen. Vergisst man auch nicht, auf dem Stick für das Root-Dateisystem ein Bootflag zu setzen, ist man eigentlich schon fast am Ziel – aber eben nur fast.

Nach der Übernahme der Partitionierung und dem – zumeist erfolgreichen – Aufspielen des Systems, fragt Debian irgendwann einmal ob man denn nun einen Bootloader installieren möchte. Da man sein frisch installiertes System gerne bewundern möchte, sollte ma diese Option wählen. Bis hierhin alles kein Problem; ohne einen wirklichen Unterschied zu einer Install auf Festplatte.

Doch nun fangen auch schon die Unterschiede an: Wer nun reflexartig auf „in den Masterboot-Record installieren“ anklickt (oder in der wunderbaren alten Text-Installation betätigt), wird von sein System im Höchstfall die Meldung „No system disk. Press any key to reboot …“ oder analoge Aussagen bestaunen können. Also geben wir GRUB bescheid, er möge doch bitte nach /dev/sdk installieren – was zwar auch nicht stimmt, aber schon mal den Bootcode in den korrekten Bootsektor verfrachtet. Booten können wir so aber trotzdem noch nicht sauber: GRUB installiert zwar daraufhin den Bootsektor und seine Konfiguration, da in dieser jedoch ein falsches Root-Device stehen wird, wird das mit dem Starten so nix werden.

Nimmt man wieder die oben beschriebene Konfiguration als Grundlage, so entsteht etwa folgende Zuordnung der Laufwerke, während des Setups:
(hd0): sda (sda1) # SCSI:1:0:0:0
(hd1): sdb (sdb1) # SCSI:2:0:0:0
(hd2): sdc (sdc1) # SCSI:3:0:0:0
(hd3): sdd (sdd1) # SCSI:4:0:0:0
(hd4): sde (sde1) # SCSI:5:0:0:0
(hd5): sdf (sdf1) # SCSI:6:0:0:0
(hd6): sdk (sdk1 sdk2) # USB/SCSI:7:0:0:0*
md0 (sda1 sdb1 sdc1 sdd1 sde1 sdf1) #RAID6 mit mdadm

*Nein, ich weiß auch nicht, warum der Installer das auf sdk statt sdg gelegt hat …

Wie oben erwähnt, lässt man GRUB seinen Bootsektor nach sdk in den MBR schreiben. GRUB erkennt daraufhin mehr oder weniger aus Gewohnheit, dass das Boot-Dateisystem somit in hd6 liegen müsste (laut obiger Tabelle). Soweit korrekt erkannt; nur leider in der Praxis wieder GANZ anders.

Bootet man nämlich nun sein System, so legt das BIOS plötzlich bei einem Bootvorgang von USB die Devices ganz anders:
(hd1): sda (sda1) # SCSI:1:0:0:0
(hd2): sdb (sdb1) # SCSI:2:0:0:0
(hd3): sdc (sdc1) # SCSI:3:0:0:0
(hd4): sdd (sdd1) # SCSI:4:0:0:0
(hd5): sde (sde1) # SCSI:5:0:0:0
(hd6): sdf (sdf1) # SCSI:6:0:0:0
(hd0): sdg (sdg1 sdg2) # USB/SCSI:7:0:0:0**
md0 (sda1 sdb1 sdc1 sdd1 sde1 sdf1) #RAID6 mit mdadm

**Und ja, hier steht jetzt wirklich das zu erwartende sdg; dafür ist die hd-Angabe komplett unerwartet 😉

Aber zumindest kommt man, sollte man das richtige Device erwischt haben, zumindest bis ins Grub-Menü. Die Auswahl der gewünschten Boot-Option liefert aber lediglich einen „Error 2: Bad file or directory type“, die an Aussagekraft kaum zu überbieten ist.

Gebootet bekommt man sein System dennoch mit einem kleinen Trick: Als erstes wählt man den zu startenden Menüeintrag aus und bestätigt dieen mit e. Anschließend wiederholt man das e für die root-Zeile und ändert dort (hd6,0) in (hd0,0). Das Bestätigen mit ENTER speichert diese Änderung vorerst. Zusätzlich benötigt nun auch der zweite Eintrag eine kurze Anpassung: Durch einen Druck auf e kommt man auch hier in den Editor, um den unter root= angegebenen Device-Namen von /dev/sdk1 nach /dev/sdg1 zu ändern. Nach dem Speichern auch dieser Änderung, sollte das System mit einem beherzten Betätigen des Bs starten – wenn nicht, sollte man mit der Setup-CD und einer von dortaus gestarteten Shell nochmals die Device-Kennungen für das Root-Dateisystem prüfen. Für das Root-Device in GRUB gilt scheinbar für USB-Sticks IMMER (hd0).

Sobald unser frisch installiertes Linux nun gebootet hat und sich mit der Frage nach einem Login meldet, sollte man diese Änderungen noch Fest in Grub einrichten. im einfachsten Fall sollte dies eine Anpassung in /boot/grub/menu.lst tun. Empfehlenswert ist hierbei, den Eintrag gleich für alle Konfigurationen anzupassen.

Wenn nun alles korrekt angepasst wurde, sollte man noch einen Test machen, ob es nun wirklich korrekt bootet, um sich anschließend über sein funktionierendes Linux from a Stick zu freuen.

Flattr this!

3 Comments »

  1. Wozu startest du dein System von USB-Stick?
    Gibt es dafür einen entsprechenden Grund?

    Kommentar by neo — 10.08.2009 @ 13:24:42

  2. Jap: Weil ich keine entsprechend leise IDE-Platte für’s System mehr rumliegen hatte und die SATA-Anschlüsse alle belegt sind. Neue Platten, gibt’s ab 300 GB aufwärts (zu akzeptablen Preisen), was aber für eine reine Systemplatte übertrieben gewesen wäre. Und würd ich die Bootpartition auf die RAID-Platten legen, würd ich Speicherplatz verschenken.

    Kommentar by BenBE — 11.08.2009 @ 10:54:47

  3. Hmm, aufregend! :-> Ermitteln der UUID der jeweiligen Partitionen mit blkid.

    Kommentar by Peter Großöhme — 07.09.2009 @ 14:18:42

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress