:Verlagerung der „/boot“-Partition auf einen USB-Stick:

Selbst auf einem vollverschlüsselten System muss die „/boot“-Partition unverschlüsselt bleiben. Um Manipulationen des Kernels durch ungebetene „SchnüffelNSAen“ zu verhindern, kann man die saubere „/boot“-Partition auf einen USB-Stick verlegen, den man stets in der Hosentasche bei sich trägt.

Damit das ganze dem unberechtigt Zugreifenden nicht auffällt, empfiehlt es sich, die „/boot“-Partition auf der Festplatte zu belassen, diese aber trotzdem nicht mehr zu benutzen. Denkt aber daran, nach Kernel-Aktualisierungen die beiden „/boot“-Partitionen manuell zu synchronisieren um dem aufmerksamen Schlimmfinger keinen Hinweis zu geben. Da USB-Sticks/SD-Karten aufgrund der minderwertigen Qualität der Speicherzellen „gerne“ spontan kaputt gehen[1], empfiehlt es sich, entweder zwei identische Datenträger einzusetzen, und/oder ein Abbild des Boot-Mediums an einem sicheren (verschlüsselten) Ort vorrätig zu haben. So könnt ihr euch bei Bedarf via LiveCD[2] schnell einen neuen Stick von diesem Abbild erzeugen. Wie man eine Partition bzw. einen Datenträger sichert, habe ich im Text Spieglein, Spieglein in der Schublade beschrieben. Das dort gesagte gilt selbstverständlich ebenso für die Sicherung eines USB-Sticks.

Denkt zu Beginn darüber nach, ob ihr das Dateisystem auf dem USB-Stick, was ja in der Regel ein ziemlich wackeliges vFAT-System[3, 4] sein dürfte, umstellen wollt. Ich persönlich favorisiere ext2[5], da ich auf der „/boot“-Partition kein Journal[6] brauche (und so im Falle eines Systemabsturz auf dieser Partition nicht zwangsläufig einen Dateisystemcheck[7] durchführen muss), dennoch aber mehr Zuverlässigkeit als bei FAT haben will. Falls ihr dem zustimmt, könnt ihr in der root-Shell[8] z.B. per mkfs.ext2 /dev/sdb1 euren natürlich ungemounteten Stick neu formatieren. (Wenn ihr unsicher seid wie euer Stick heisst, könnt ihr euch als root via fdisk -l die Partitionsbezeichnungen der erkannten Datenträger anzeigen lassen.)

Um den Bootmanager GRUB[9, 10, 11, 12] zu installieren, geht ihr wie folgt in der root-Shell vor:

1. Legt zunächst einen Mountpunkt[13] für den USB-Stick an: mkdir /media/boot

2. Mountet den USB-Stick dorthin: mount /dev/sdb1 /media/boot

3. Installiert den Bootloader GRUB:

3a: GRUB 1: grub-install --root-directory=/media /dev/sdb1

3b: GRUB 2: grub-install --no-floppy --root-directory=/media/sdb1 /dev/sdb (Achtung: Beachtet den Unterschied zwischen der Partition „/dev/sdb1“ und dem Datenträgerbezeichner „/dev/sdb“!)

4. Synchronisiert die beiden „/boot“-Verzeichnisse, d.h. übertragt alle relevanten Dateien, wie z.B. „menu.lst“ von GRUB 1 bzw. „grub.cfg“ von GRUB 2, aber ebenfalls Zusatzpakete wie z.B. das Abbild von memtest86+[14, 15], welches bei einigen Distributionen mit installiert wird. Kontrolliert ebenfalls die Laufwerks-/Partitionsbezeichner, die bei Festplatte und USB-Stick voneinander abweichen können, was zur Folge hat, dass das System nicht vom Stick bootet!

5. Abschliessend hängt den BootStick per umount /media/boot aus.

Nach dem booten könnt ihr den Stick selbstverständlich aushängen um den USB-Port frei zu bekommen. Hängt ihn bei Bedarf (z.B. bei Kernel-Updates) wieder ein.

Denkt ggfs. über die Möglichkeit nach, euren Bootmanager zusätzlich durch ein Passwort zu schützen. Dies stellt zwar keinen wirklich sicheren Schutz dar, kostet den unberechtigten Zugreifer aber Zeit und Nerven!

Status: testing