Debian auf USB-Stick installieren

Manchmal ist es sinnvoll eine vollwertige Debian-Installation auf einem USB-Stick zur Verfügung zu haben. Heutige Rechner und Server sind in der Lage über USB-Laufwerke zu booten und können damit ein Wartungs- oder Supportsystem vom USB-Stick starten. Auch für Schulungen und Seminare lässt sich ein Betriebssystem vom USB-Stick gut einsetzten, ist die Neuinstallation von Betriebssystem in Bildungseinrichtungen doch eher ungern gesehen. Nebenbei kann das Betriebssystem auf den Seminarinhalt abgestimmt und vorbereitet werden.

Voraussetzungen

Der USB-Stick sollte leer sein und komplett für die Installation des Betriebssystems zur Verfügung stehen. Für einfache Systeme und Netzwerkschulungen reichen 2GB in der Regel aus. Bei Desktopanwendungen und Spezialfällen dürfen es gerne auch 4GB oder mehr sein. Die Geschwindigkeit des USB-Sticks sollte beim Lesen 20MB/Sec. und beim Schreiben mindestens 10MB/Sec erreichen.

Vorbereitung

Der USB-Stick muss für den Einsatz partitioniert werden. Hierbei ist im vorderen Bereich eine Partition mit ca. 128MB im FAT16-Format und im hinteren Bereich eine Linux Partition im ext3-Format vorzusehen. Diese Partitionierung kann mit Hilfe des Debian-Installers während der Installation durchgeführt werden. Es wird für die Installation ein Rechner benötigt, der den USB-Stick beim Booten erkennt, und ggf. auch von diesem booten kann.

Installation

Der Stick muss in den Rechner eingesteckt und der Debian-Installer von einem Bootmedium gestartet werden. Während der Konfiguration mit dem Debian-Installer ist der USB-Stick zu partitionieren und zu formatieren. Als Erstes wird ein 128MB FAT16-Partition benötigt, der kein Mountpoint zugewiesen wird. Diese Partition nimmt später den Bootloader auf und dient als Transferpartition zu Windows. Hierbei machen wir uns den Umstand zunutze, dass das Microsoft-Betriebssystem bei Wechseldatenträgern immer nur die erste Partition verfügbar macht. Die zweite Partition nimmt das Wurzelsystem auf und sollte mit ext2 oder ext3 formatiert werden. Ist eine SWAP-Partition notwendig, ist diese als dritte Partition zu erstellen. Die Installation des restlichen Systems erfolgt nach Art des Debian-Installers. Die Installation eines Bootloaders (Grub oder Lilo) ist abzubrechen, da zum Booten das Syslinux-System zum Einsatz kommt.

Zum Ende der Installation fordert der Debian-Installer dazu auf, den Rechner neu zu starten und das Bootmedium zu entfernen. Jetzt ist der richtige Zeitpunkt, mit der Tastenkombination ALT-F2 auf die zweite Konsole zu wechseln und mit ENTER den Eingabeprompt zu starten. Das System des Installers dient jetzt als einfaches Notfallsystem und wir können die Arbeiten am USB-Stick abschließen.

Im nächsten Schritt ist die installierte Zielpartition mittels chroot zu betreten. Vorher sind die wichtigen Systemverzeichnisse für die Chroot-Umgebung vorzubereiten.

~ # mount -t proc /proc /target/proc
~ # mount --bind  /dev  /target/dev
~ # mount --bind  /sys  /target/sys
~ # chroot /dev/target

Jetzt kann in der Konfigurationsdatei /dev/apt/sources eine eventuell eingebundene CD-Quelle entfernt und die Apt-Paketdatenbank aktualisiert werden. Die Pakete syslinux und mbr werden für das weitere Vorgehen benötigt und jetzt über das Netzwerk installiert.

~ # apt-get update
~ # apt-get install syslinux mbr

Zum Booten des USB-Sticks wird ein Bootloader benötigt. Diese Aufgabe übernimmt syslinx, das auf die formatierte FAT16-Partition installiert wird. Danach wird die erste Partition nach /mnt/ montiert und der Kernel mit zugehöriger Initialisierungs-Ramdisk (initrd) auf diese kopiert. Damit das Booten des Datenträgers funktioniert, muss die Konfigurationsdatei des syslinux-Systems angepasst werde.

~ # syslinux -sf /dev/sdb1
~ # mount /dev/sdb1 /mnt
~ # cp /boot/vmlinuz-2.6.26-2-686     /mnt/vmlinuz
~ # cp /boot/initrd.img-2.6.26.2-686  /mnt/initrd.gz

Da der spätere Gerätename der Root-Partition nicht vorhergesagt werden kann, wird die Partition für das Wurzelverzeichnis in der Datei /etc/fstab über die UUID der Partition referenziert. Hierfür muss die UUID der betreffenden Partition ausgelesen und in die Datei /etc/fstab für das Wurzellaufwerk eingetragen werden. Die UUID wird mit dem Werkzeug blkid ausgelesen und benötigt als Angabe den aktuellen Gerätenamen der betreffenden Partition.

~ # blkid /dev/sdb2
/dev/sdb2: LABEL="root" UUID="10980fe3-b3a8-4888-b0d3-8faaa8b46ed5" TYPE="ext3"
~ # vi /etc/fstab

/etc/fstab

1: # /etc/fstab: static file system information.
2: #
3: # <file system>                       <mount point> <type> <options>       <dump>  <pass>
4: proc                                       /proc     proc   defaults          0       0
5: UUID=10980fe3-b3a8-4888-b0d3-8faaa8b46ed5  /         ext3   errors=remount-ro 0       1

Damit syslinux später das System starten kann, muss seine Konfigurationsdatei syslinux.cfg angepasst werden. Hier wird ein Auswahlmenü vorbereitet, da es auch möglich ist, in verschiedenen Partitionen verschiedene Linux-Systeme zu installieren. Dem Debian-System sind über den APPEND Eintrag die Kernelparameter zu übergeben, wobei das zu bootende System wieder über seine UUID referenziert wird. Der Eintrag UI lädt ein Modul für ein ansprechendes Benutzermenü nach. Das Modul muss sich im gleichen Verzeichnis wie die Konfigurationsdatei befinden, was die ersten mit FAT32 formatierte Partition ist.

~ # vi /mnt/syslinux.cfg

/mnt/syslinux.cfg

 1: UI vesamenu.c32
 2: MENU TITLE Linux Boot System
 3:
 4: DEFAULT debian
 5: TIMEOUT 30
 6:
 7: LABEL debian
 8:   MENU LABEL Debian Lenny - FISI-Seminar
 9:   KERNEL vmlinuz
10:   INITRD initrd.img
11:   APPEND BOOT_IMAGE=linux root=UUID=10980fe3-b3a8-4888-b0d3-8faaa8b46ed5 vga=788 initrd=initrd.gz

Zum Abschluss wir auf dem USB-Stick ein Bootloader im Master-Boot-Record installiert, der den syslinux Bootloader nach lädt. Als Option wird ihm die erste Partition als Standard-Boot-Partition übergeben, in der sich das syslinux System befindet. Danach kann die montierte Bootpartition wieder ausgehängt, die Chroot-Umgebung verlassen und das System zum Test neu gestartet werden.

~ # install-mbr /dev/sdb -p 1
~ # umount /mnt
~ # exit
~ # shutdown -r now

Testen und Anpassen der Installation

Nach der Installation kann das System vom USB-Stick gebootet werden. Hierbei ist darauf zu achten, dass der Rechner zum Booten von USB-Geräten geeignet ist und diese Funktion im BIOS aktiviert wurde. Gegebenenfalls ist beim BIOS-Startup die Tastenkombination für die Boot-Geräteauswahl zu drücken und der USB-Stick als Bootmedium auszuwählen. Bei Problemen mit dem MBR-Bootloader zeigt dieser die drückbaren Tastenkombinationen „FA1234“ an. Ist das der Fall, wird mit der Taste „A“ der erweiterte Modus und danach mit der Taste „1“ die erste Partition als Bootpartition ausgewählt.

Nach dem Starten des Systems können weitere Softwarepakete installiert, Benutzer eingerichtet und Einstellungen vorgenommen werden. Als einfaches Konsolensystem sollte die Installation jetzt problemlos arbeiten. Einzige Ausnahme bildet hier die Netzwerkschnittstelle in Verbindung mit dem UDEV-System zum Nachladen von Gerätetreibern. Dieses hat die nette Eigenschaft, gefundene Netzwerkkarten eine feste Geräteschnittstelle über seine MAC-Adresse zu zuweisen. Was hat zur Folge hat, das mit jedem Rechnerwechsel eine andere Netzwerkschnittstelle erkannt wird und diese immer weiter hoch gezählt werden. Gegebenenfalls ist hier das Verhalten von UDEV anzupassen.

Interne Ressourcen

Externe Ressourcen

wiki/administration/linux/kurztipps/t2011112001/index.txt · Zuletzt geändert: 2010-11-20 23:20 von Marek Walther