Um eine laute Festplatte zu eliminieren, habe ich mal den Versuch gewagt, Linux auf einem USB-Stick zu installieren. An sich erwies sich das als einfacher als befürchtet.
Die Hardware ist mein uralter VIA-C3 1Ghz mit 512MB RAM (abzüglich 16MB für die Grafikkarte), IDE-CD-Brenner und Laptop-Netzteil. Ehemals war da eine superlaute 60GB Platte drin, die vorherige Installation belegte etwas über 2GB also habe ich einen 4GB Stick gekauft. Dabei habe ich auf Performance geachtet, der Stick schafft gemäss Verpackung 25MB/s lesend und 18MB/s schreibend und ist Enhanced-Ready-Boost zertifiziert. Letzteres weist darauf hin, dass er zumindest minimale Performance-Anforderungen erfüllt.
Als Distribution habe ich Xubuntu gewählt, aus zwei Gründen: Erstens braucht es wenig Ressourcen, zweitens ist es blitzschnell installiert. Für eine blanke Xubuntu-Installation ohne weitere Extras würde auch ein 2GB-Stick reichen.
Das Vorgehen war recht einfach: Xubuntu starten, Stick partitionieren (wurde als /dev/sda erkannt und konnte wie eine SATA-Platte genutzt werden) und mit ext3 formatieren (der Installer bietet leider noch keine spezielle USB-Stick-Dateiformate), installieren, gut ist. Nicht vergessen, den Bootloader Grub in den Master-Boot-Record des Sticks zu schreiben
Na ja, nicht ganz. Beim Booten wird sich Grub vermutlich mit "Error 18" verabschieden. Dieser Fehler bedeutet, dass das Kernel-Image auf einem Plattenbereich liegt, der vom BIOS nicht angesprochen werden kann. Also habe ich die Installation nochmals durchgeführt und dabei zum ersten Mal bei einer Linux-Installation eine eigene Partition für /boot von 64MB Grösse eingerichtet. Und siehe, damit bootet der Rechner tatsächlich.
Da Sticks nur eine begrenzte Lebensdauer haben, da sie nur eine begrenzte Anzahl Schreibzyklen unterstützen, sollten Schreibzugriffe möglichst reduziert werden. Als erste Massnahme sollte deshalb bei der Installation auf eine Swap-Partition verzichtet werden. Der Ubuntu-Installer wird zwar meckern, aber ich weiss ja, was ich da tue. Als nächstes sollte /tmp und /var/run in eine RAMDisk gelegt werden. Dazu muss die /etc/fstab um zwei Zeilen erweitert werden:
none /tmp tmpfs auto,mode=1777 0 0
none /var/run tmpfs auto,mode=0755 0 0
Update: Ganz vergessen zu erwähnen habe ich noch eine wichtige Einstellung! Die restlichen Partitionen sollten alle mit der Option "noatime" gemountet werden. Dies verhindert, dass bei jedem Lesezugriff der Lesezeitstempel der Dateien aktualisiert und auf den Stick geschrieben wird. (Ende vom Update)
Das wär's dann schon. Jetzt muss man nur hoffen, dass der Stick bei jedem Einschalten erkannt wird (kommt sporadisch vor, dass es nicht klappt).
Die Performance ist hingegen zweischneidig: Wenn das System erstmals gebootet hat, dann rennt es ganz ordentlich (zumindest soweit es bei dieser lahmen CPU geht). Allerdings bis Grub und das Kernel-Image geladen sind, kann es sehr lange dauern. Vermutlich wird der Stick da über irgend ein langsames Low-Level-Protokoll angesprochen.