Damn Small Linux/Installation 2009.04.07 usbstick

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Installation von Damn Small Linux auf einem USB-Stick.

  • Der verwendete USB-Stick sollte mindestens 64 MB gross sein und nach Möglichkeit USB 2.0 unterstützen.
  • Booten der Live-CD
  • Start des Assistenten für die USB-Installation im Menü "Apps > Tools > Install to USBPendrive".
  • Die Wahl der Methode ("USB-ZIP" oder "USB-HDD") hängt davon ab, welche der zu bootende Rechner unterstützt.
  • DSL partitioniert den USB-Speicher selbständig in zwei Partitionen und kopiert alle erforderlichen Dateien.

Detailliert:

1. Der USB-Stick wird partitioniert und darauf ein Dateisystem erstellt. Dazu wird ein bestehendes Linux gestartet, ein Terminalfenster geöffnet und als Benutzer "root" folgendes eingegeben.

# tail -f /var/log/messages

2. Jetzt wird der USB-Stick eingesteckt, verschiedene Meldungen am Bildschirm zeigen nun unter anderem die Gerätedatei für den USB-Stick (hier in der Zeile "Mar 3 14:41:15 emu kernel: [ 1526.913067] sdb: sdb1" - der Gerätename lautet also "sdb1").

Mar  3 14:41:09 emu kernel: [ 1526.199265] usb 5-6: new high speed USB device using ehci_hcd and address 2
Mar  3 14:41:09 emu kernel: [ 1526.228397] usb 5-6: configuration #1 chosen from 1 choice
Mar  3 14:41:10 emu kernel: [ 1526.446805] usbcore: registered new interface driver libusual
Mar  3 14:41:10 emu kernel: [ 1526.485155] Initializing USB Mass Storage driver...
Mar  3 14:41:10 emu kernel: [ 1526.486892] scsi2 : SCSI emulation for USB Mass Storage devices
Mar  3 14:41:10 emu kernel: [ 1526.488426] usbcore: registered new interface driver usb-storage
Mar  3 14:41:10 emu kernel: [ 1526.488436] USB Mass Storage support registered.
Mar  3 14:41:15 emu kernel: [ 1526.895062] scsi 2:0:0:0: Direct-Access     SanDisk  Cruzer           8.02 PQ: 0 ANSI: 0 CCS
Mar  3 14:41:15 emu kernel: [ 1526.895595] scsi 2:0:0:1: CD-ROM            SanDisk  Cruzer           8.02 PQ: 0 ANSI: 0
Mar  3 14:41:15 emu kernel: [ 1526.905896] sd 2:0:0:0: [sdb] 15704063 512-byte hardware sectors (8040 MB)
Mar  3 14:41:15 emu kernel: [ 1526.910052] sd 2:0:0:0: [sdb] Write Protect is off
Mar  3 14:41:15 emu kernel: [ 1526.912420] sd 2:0:0:0: [sdb] 15704063 512-byte hardware sectors (8040 MB)
Mar  3 14:41:15 emu kernel: [ 1526.913048] sd 2:0:0:0: [sdb] Write Protect is off
Mar  3 14:41:15 emu kernel: [ 1526.913067]  sdb: sdb1
Mar  3 14:41:15 emu kernel: [ 1526.914367] sd 2:0:0:0: [sdb] Attached SCSI removable disk
Mar  3 14:41:15 emu kernel: [ 1526.914448] sd 2:0:0:0: Attached scsi generic sg2 type 0
Mar  3 14:41:15 emu kernel: [ 1526.921672] sr1: scsi3-mmc drive: 48x/48x tray
Mar  3 14:41:15 emu kernel: [ 1526.921848] sr 2:0:0:1: Attached scsi generic sg3 type 5

3. Der USB-Stick wird dabei üblicherweise automatisch unter "/media" ins bestehende Dateisystem eingehängt und die Dateien im lokalen Dateimanager angezeigt. Sollte das nicht der Fall sein, so kann der USB-Stick als Benutzer "root" wie folgt eingehängt werden, .

# sudo mkdir -p /media/disk
# sudo mount -t auto /dev/sdb1 /media/disk

4. Durch Eingabe des Shell-Befehls mount erfährt man gewöhnlich, wo Linux den USB-Stick einhängt (hier "/media/disk").

# mount
/dev/sdb1 on /media/disk type vfat
  (rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1000,utf8,umask=077,flush)

5. Auf Grundlage dieser Information werden die Daten auf dem eingehängten USB-Stick als Benutzer "root" überschrieben (hier muss die Nummer hinter "sdb" weggelassen werden). Zurück bleibt eine leere, nicht partitionierte "Festplatte". Die Ausgabe "cat: Schreibfehler: No space left on device" zeigt an, dass der Shell-Befehl cat fertig ist. Bei meinem 8 GB grossen USB-Stick dauerte dieser Schreibvorgang mindestens eine halbe Stunde.

# cat /dev/zero > /dev/sdb

6. Nun wird der USB-Stick aus dem Dateisystem ausgehängt und herausgezogen.

# umount /dev/sdb1

7. Der USB-Stick wird erneut am USB-Anschluss eingesteckt und mit dem Shell-Befehl cfdisk formatiert. Mit Hilfe der Pfeiltasten wird das Menü "New > Primary > Grösse in MByte" angewählt, um den gesamten USB-Stick mit einer Partition auszustatten. Bei Bedarf können wie auf einer Festplatte auch hier mehrere Partitionen eingerichtet werden. Das muss bei der Installation von Linux auf dem USB-Stick dann allerdings berücksichtigt und stets die richtige Partition angegeben werden.

# cfdisk /dev/sdb

So wird eine primäre Partition auf dem USB-Stick angelegt, die entweder den ganzen Platz oder nur einen Teil davon umfasst. Über den Menüpunkt "Bootable" wird die Partition bootfähig gemacht.

Um eine FAT32-Partition zu erstellen, um ein FAT32-Dateisystem zu nutzen, wird das Menü "Type" angewählt und "0B" eingegeben. Abschliessend werden die Einstellungen über das Menü "Write" geschrieben.

Meist muss der USB-Stick danach ausgesteckt und erneut eingesteckt werden, damit das System die neue Partitionstabelle einliest.

8. Nun wird das FAT32-Dateisystem auf den partitionierten, leeren USB-Stick gespielt.

# mkfs.vfat /dev/sdb1

Zur Nutzung anderer Dateisysteme funktionieren auch die Shell-Befehle mkfs.ext2, mkfs.ext3 und mkfs.reiserfs. In diesem Fall muss mit cfdisk allerdings als "Type" die Zahl "83" eingegeben worden sein, die für Linux steht.

9. Jetzt wird der Bootloader GRUB eingespielt. Dazu wird der USB-Stick erneut eingesteckt - Linux sollte ihn nun automatisch ins Verzeichnis "/media/disk" einhängen, was mit dem Shell-Befehl mount überprüft werden kann. Dann wird werden mit folgendem Befehl zwei Verzeichnisse für den Bootlader auf dem USB-Stick angelegt.

# mkdir -p /media/disk/boot/grub

10. Verwendet das aktuelle Linux-System ebenfalls GRUB als Bootlader (was bei Opensuse 10.2, SUSE Linux 10.1 und Ubuntu zutrifft), so können die benötigten Dateien von hier auf den USB-Stick kopiert werden.

# cp /boot/grub/*stage* /media/disk/boot/grub

11. Nun wird über die Datei "device.map" dafür gesorgt, dass GRUB den USB-Stick als Bootmedium erkennt. Die im BIOS festgelegte Startreihenfolge kann der Bootloader nämlich nicht erkennen. Hier darf nicht "sdb1" oder "sdb2", sondern wirklich nur "sdb" als Gerätedatei angegeben werden.

# echo '(hd0) /dev/sdb' > /media/disk/boot/grub/device.map

12. Jetzt folgt die eigentliche Installation von GRUB in den Master Boot Record des USB-Sticks. Dabei wird dem Bootloader mitgeteilt, er solle die GRUB-Abbilddateien im Ordner "/media/disk") suchen und dann in den MBR des UBS-Sticks installieren. Sollte dabei die Fehlermeldung "stage1 not read correctly" erscheinen, so wird vermutlich versucht, ein FAT32-Dateisystem auf eine Partition vom Typ "Linux" zu spielen - in diesem Fall muss zuvor der Partitionstyp geändert werden.

#  grub-install --root-directory=/media/disk /dev/sdb

13. Gewöhnlich startet nun die GRUB-Shell und fragt die Boot-Parameter ab. Auf dem USB-Stick wird die Datei "/boot/grub/menu.lst" angelegt und folgende Zeilen eingetragen:

title   Damn Small Linux
root    (hd0,0)
kernel  /linux24 root=/dev/sdb1 ro lang=de toram noeject frugal
initrd  /minirt24.gz
boot

Würde der USB-Stick neu gestartet werden, so würde das Bootmenü anbieten, Damn Small Linux zu laden - das würde dann aber vorerst daran scheitern, dass die DSL-Abbilddateien nicht gefunden werden.

14. Die Dateien werden auf dem erneut unter "/media/disk" eingehängten USB-Stick entpackt.

$ unzip -d /media/disk dsl-3.4.4-embedded.zip

15. Folgender Shell-Befehl sollte nun zeigen, dass sich die Dateien auf dem USB-Stick befinden.

$ ls /media/disk

16. Nun muss der USB-Stick unbedingt über den Shell-Befehl umount ausgehängt werden, damit er die Daten schreiben kann, und anschliessend der Rechner neu gestartet werden. Dabei sollte nicht vergessen werden, im BIOS die Bootreihenfolge anzupassen. Damn Small Linux bootet nun wie ein ganz gewöhnliches Linux - nur eben von USB-Stick statt von Festplatte.