aaron-spettl.de

Debian Etch auf USB-Festplatte

Datum: 5. Dezember 2006 - Kategorie Ubuntu/Debian

Ziel:

Zu Testzwecken oder einfach wegen mangelndem internen Speicherplatz soll Debian Etch auf einer externen USB-Festplatte installiert werden. Diese wird nur an einem Computer verwendet, zum Booten wird GRUB des bereits lokal installierten Systems verwendet.

Vorgehen:

Wir installieren Etch mit debootstrap, konfigurieren das nötigste und passen die initrd so an, dass die benötigten USB-Module geladen werden. Der Debian-Kernel wird dann noch im GRUB auf der integrierten Festplatte eingebunden.

Achtung:

Alle Angaben auf eigene Gefahr. Datensicherung!
Diese Anleitung habe ich nachträglich erstellt und muss somit nicht notwendigerweise fehlerfrei sein.

1. Vorbereitung: Formatieren, mount

Die Partition /dev/sdb1 soll die Boot-Partition werden, /dev/sdb5 das Root-Laufwerk. Beide sind bereits mit ext3 formatiert und leer. Ich habe diese nach /media/usb-sys1 eingebunden:

root@aaron:/home/aaron# mount /dev/sdb5 /media/usb-sys1
root@aaron:/home/aaron# mkdir /media/usb-sys1/boot
root@aaron:/home/aaron# mount /dev/sdb1 /media/usb-sys1/boot/

2. Grundsystem installieren mit debootstrap und chroot

Ganz "normal" benutzen wir nun debootstrap, um das Grundsystem einzurichten:

root@aaron:/home/aaron# debootstrap etch /media/usb-sys1/ ftp://ftp.de.debian.org/debian/

Nun benötigen wir noch /proc und /dev, bei /sys bin ich mir nicht sicher (deshalb das vorsichtshalber auch):

root@aaron:/home/aaron# mount -t proc none /media/usb-sys1/proc
root@aaron:/home/aaron# mount --bind /dev /media/usb-sys1/dev
root@aaron:/home/aaron# mount --bind /sys /media/usb-sys1/sys

In das neue System wechseln:

chroot /media/usb-sys1

3. Wichtige Pakete installieren, wichtige Konfigurationen

Zuerst die /etc/apt/sources.list anpassen (schneller Mirror), dann ein:

aptitude update

(Die /etc/resolv.conf wurde bei mir soweit ich weiß korrekt von debootstrap übernommen, sodass dies gehen sollte. Statt aptitude kann auch apt-get verwendet werden - wie auch im Folgenden.)

Danach noch die anderen wichtigen Konfigurationsdateien:

vi /etc/hosts
vi /etc/hostname
vi /etc/network/interfaces
vi /etc/fstab

(Das Format dieser Dateien dürfte hinlänglich bekannt sein. Die Partitionen in der fstab werden später die gleichen Devicenodes haben wie momentan.)

Nun Konsole und LANG-Umgebungsvariablen konfigurieren:

aptitude install locales console-data console-tools
dpkg-reconfigure locales console-data console-tools

Zeitzone setzen:

tzconfig

Für den Benutzer root das Kennwort setzen:

passwd

Den Kernel und initramfs-Tools installieren:

aptitude install linux-headers-686 linux-image-686 initramfs-tools

(Man kann auch initrd-tools statt initramfs-tools verwenden, siehe weiter unten.)

Nun fehlen noch einige wichtige Dinge:

aptitude install alsa-base alsa-utils usbutils pciutils bzip2 sysfsutils wireless-tools dhcp3-client resolvconf cpufreqd cpufrequtils acpid acpi

4. System für Start von USB vorbereiten

GRUB wird später den Kernel und die initrd laden, d.h. in die initrd müssen nun die Module für USB-Controller und USB-Festplatten integriert werden:

vi /etc/initramfs-tools/modules

Bei mir sind dies (interne Festplatte per AHCI, USB-Controller von Intel (ehci-hcd, uhci-hcd) sowie Unterstützung für USB-Laufwerke):

sd_mod
scsi_mod
ohci
ehci-hcd
uhci-hcd
usb-storage

(Im Falle von initrd-tools wäre es die Datei /etc/mkinitrd/modules. In der /etc/mkinitrd/mkinitrd.conf kann dort auch DELAY=10 gesetzt werden, um eine Pause beim Booten zu erzwingen. So hat das ganze USB-System mehr Zeit sich zu initialisieren, bei mir war das aber nicht notwendig. Bei initramfs kann eine Wartezeit über den Bootparameter rootdelay=10 erzwungen werden.)

Nun muss die initrd noch neu erstellt werden:

update-initramfs -u

(Bei initrd-tools: z.B. mkinintrd -o /boot/initrd.img-2.6.18-4-686)

Das chroot-System kann nun wieder verlassen werden:

aaron:/# exit
root@aaron:/home/aaron# umount /media/usb-sys1/dev
root@aaron:/home/aaron# umount /media/usb-sys1/sys
root@aaron:/home/aaron# umount /media/usb-sys1/proc
root@aaron:/home/aaron# umount /media/usb-sys1/boot
root@aaron:/home/aaron# umount /media/usb-sys1

5. GRUB auf der eingebauten Festplatte anpassen

Damit GRUB die USB-Festplatte kennt, sollte im BIOS die entsprechende Option aktiviert werden.
In der /boot/grub/menu.lst muss ein neuer Eintrag eingefügt werden:

title           Debian Etch, kernel 2.6.18-4-686 (USB)
root            (hd1,0)
kernel          /vmlinuz-2.6.18-4-686 root=/dev/sdb5 ro quiet
initrd          /initrd.img-2.6.18-4-686
boot

(Ggf. die Versionsnummern anpassen! (hd1,0) ist die erste Partition auf der zweiten Festplatte. Der Kernel-Parameter root muss auch korrekt sein!)

6. Neues System starten und X installieren

Wenn alles geklappt hat, kann man nun Debian Etch bei eingeschalteter USB-Festplatte booten. Dies ist momentan nur ein Grundsystem, aber nun lässt sich normal ein X-Server aufsetzen und Gnome bzw. KDE installieren. Ein normaler User sollte auch noch angelegt werden:

addgroup --gid 1000 user
adduser --uid 1000 --gid 1000 user

(Dieser muss dann noch in entsprechende Gruppen aufgenommen werden, damit z.B. unter X Soundausgabe möglich ist.)

Installation von Xorg:

aptitude install xserver-xorg x-window-system-core x-window-system

Installation eines Minimal-Gnome mit GDM:

aptitude install gdm gnome-session

Quellen

Folgende Quellen waren sehr hilfreich:
» How To: Installing Debian Etch From a running Debian based system
» USB-Anpassung für mkinitrd

hängende Brust Hilfe gegen hängende Brüste!
Festplatte Die besten Platten im Härtetest
Digitalkameras Die neuesten, schönsten und besten Digicams
Handys Die neusten Handys bei uns!
Gewinnspielclub Die Rundum-Versorgung zu diesem Thema.