Fork me on GitHub Fork me on GitHub

uninformativ.de

GNU, Linux, Shell und Co.

Arch Linux auf einem vServer bei Hetzner – Reloaded

Pingu-Avatar

02.01.2011, 20:23:30

Etwa bei Sternzeit -312175.882196 (oder so) postete encbladexp, wie man Arch Linux auf einem vServer bei Hetzner installieren kann. Tja, das klingt doch verlockend. Den Spaß ließ ich mir nicht nehmen. Mein Blogpost hier wäre aber eigentlich recht überflüssig – doch bei mir hat seine Vorgehensweise nicht ganz klappt. Daher beschreibe ich hier jetzt eine kleine Variante.

- Nachtrag 2012-09-12: Wie in den Kommentaren schon vor einiger Zeit angemerkt wurde, gibt es GRUB (Legacy) nicht mehr in Arch Linux. Sollte ich irgendwann mal in die Verlegenheit kommen, meinen Server neu aufsetzen zu müssen, werde ich diese Anleitung hier aktualisieren und (höchstwahrscheinlich) Syslinux verwenden. Ich hoffe, der folgende Text ist dennoch ein bisschen hilfreich und liefert Ideen.

Damit ich auch einen echten Ansporn hatte, das tatsächlich zum Laufen zu bringen, habe ich meinen Server gleich ohne Betriebssystem bestellt. Dann kann ich auch nicht auf die Idee kommen, für den Notfall ein Image des vorinstallierten Systems zu machen. wink Als ich die Mail erhielt, dass der Server fertig sei, konnte ich zwar per SSH drauf, aber dort lief wie bestellt nur das „Rescue System“.

Damit man sich davon ein besseres Bild machen kann: Der Provider stellt einem vorallem zwei wichtige Tools zur Verfügung, das ist zum einen das Rescue System und zum anderen VNC-Zugriff (zumindest bei vServern – wie das bei echten Root-Servern heute ist, weiß ich nicht). Das Rescue System ist ein kleines GNU/Linux, was auf dem Server über das Netzwerk gebootet wird (PXE und so). Egal, was man mit seiner Kiste anstellt, man kann somit immer den Reset-Knopf drücken (das geht über das zentrale Webinterface „Robot“) und hat dann ein laufendes System, mit dem man das installierte System reparieren oder sonstwie bearbeiten kann. In der Regel greift man also über SSH auf das Rescue System zu.

Über VNC sitzt man dann quasi direkt vor der Kiste. Man kann ihr beim Booten zusehen und so weiter und so fort. Dadurch unterscheidet sich die Installation eigentlich kaum von einer „normalen“ Installation. Bis auf die Tatsache, dass man kein CD-Laufwerk hat. Und das ist auch die primäre Hürde, die man überwinden muss.

Ich begann also genau wie encbladexp im Rescue System. Meine „Festplatte“ war komplett leer, also erst einmal ein paar Partitionen angelegt:
1
2
3
4
/dev/sda1: 4GB Swap
/dev/sda2: 256MB für netinstall-Image von Arch
/dev/sda3: 128MB für /boot während des Setups
/dev/sda4: Rest für / des späteren Systems
Das Installationsimage habe ich dann auch direkt in die Partition geladen:
1
# wget -O /dev/sda2 http://www.../archlinux-2010.05-netinstall-...iso
(An dieser Stelle ein kleiner Stop.)

Danach habe ich „nach Anleitung“ weitergemacht. Ergebnis: Grub wollte nicht von diesem Image booten. Den genauen Grund habe ich nicht rausgefunden, aber ich vermute, dass es am UDF-Dateisystem im Image liegt – das scheint Grub nicht zu mögen. Außerdem gibt es für UDF keinen Partitionstyp, was nochmal eine Hürde für Grub ist. Also, kurzum, Grub wollte das nicht.

Okay, was kann man da machen? Meine Lösung war letztendlich, Kernelimage und initrd aus dem Installationsimage herauszuholen und direkt auf die Platte zu legen. Zum Beispiel in die /boot-Partition. Diese Partition kann Grub dann problemlos lesen und den Kernel starten, da es eine normale ext2-Partition ist. Wenn der Kernel mit dem Booten fertig ist, muss das System aber irgendwie zum Installationsmedium finden. Der „Trick“ ist nun, das System direkt von /dev/sda2 lesen zu lassen – fast so, als wäre es die CD.

Also, weiter geht’s: Wie oben beschrieben das Image mit wget nach /dev/sda2 laden. Dann die Bootpartition mit einem Dateisystem versehen, mounten, die beiden Dateien kopieren, Grub installieren und so weiter:
1
2
3
4
5
6
7
8
9
10
11
# mke2fs -L Boot /dev/sda3
# mount /dev/sda3 /boot
# mkdir /boot/setup
# cp vmlinuz26 archiso.img /boot/setup # siehe Bemerkung unten
# grub-install /dev/sda
# cat > /boot/grub/menu.lst <<EOF
title Arch Setup
root (hd0,2)
kernel /setup/vmlinuz26 archisolabel=ARCH_201005
initrd /setup/archiso.img
EOF
Was muss man beachten:
  • Die Dateien vmlinuz26 und archiso.img muss man vorher aus dem Image holen. Das könnte man zwar auch direkt auf dem Server machen, aber ich hab das der Faulheit wegen auf meinem eigenen Rechner gemacht:
    1
    2
    # mount -o loop archlinux-2010.05-netinstall-...iso /mnt
    $ cp /mnt/boot/{vmlinuz26,archiso.img} /media/webspace
    Also die beiden Dateien irgendwo ins Internet stellen und per wget auf den Server laden.
  • Dass /boot im Grub-Menü fehlt, ist kein Fehler. Die Boot-Partition mountet Grub direkt, also gibt es kein /boot. Wollt’s nur gesagt haben. wink
Hiernach alles unmounten und schonmal die VNC-Konsole vom Provider starten. Nicht mit der „VNC-Installation“ verwechseln (mir zuerst passiert) – darüber kann man nur andere fertige Images installieren (CentOS, Fedora, …). Wenn die VNC-Konsole läuft, dann im Rescue System ein beherztes „reboot“. Man kann dann dem Server beim Booten zusehen. Wenn alles gut geht, landet man im soeben installierten Grub – und das dortige „Arch Setup“ sollte starten.

Wenn der Kernel durchgebootet ist, möchte er /dev/disk/by-label/ARCH_201005 als Root-Dateisystem mounten. Und ein Device mit diesem Label findet er unter /dev/sda2. Im Endeffekt habe ich also nur diesen Mount-Vorgang nach hinten verlagert, sodass nicht mehr Grub das machen muss sondern nur noch Linux. Scheint wohl besser zu funktionieren.

So, der Rest ist kalter Kaffee. Arch wird dann in der VNC-Konsole ganz wie gewohnt installiert.

Kommentare

#5 von: vain

17.12.2012, 22:01:59

You’re welcome – although my description is likely to be horribly outdated by now. smile

Cheers!

#4 von: slava

16.12.2012, 15:33:50

Спасибо большое, все стало понятно!

#3 von: Anonym

08.06.2012, 17:56:07

Danke, das war sehr hilfreich.
Einziger Unterschied war, dass das Rescue-System von Hetzner kein GRUB mehr hatte, sondern GRUB2. Aber da man im Rescue System Pakete installieren kann, stellt das kein Problem dar.

#2 von: Betz Stefan

28.01.2011, 17:43:33

Ich hab meine Anleitung heute übrigens gefixt, irgendwie war es ne blöde Idee sowas nachträglich zu Dokumentieren ;-)

mfg Betz Stefan

#1 von: Anonym

06.01.2011, 02:41:05

Danke für den Bericht, hab mir daraufhin auch eine Server bei Hetzner bestellt.
Ich hab die Installation allerdings mit dem archbootstrap Skript aus der Wiki gemacht. Ist meiner Ansicht nach einfacher.

Was dabei allerdings schon zwei nicht funktioniert hat, ist die Installation von grub. Die stage-Dateien werden nicht ins /boot/grub Verzeichnis kopiert. Muss man manuell nachholen.

Kommentar hinterlassen

Name (optional):
E-Mail (optional):
Webpage (optional):
Follow-Up-Benachrichtigung: Aktivieren
Code bestätigen: 4237 →

Captcha:

Hinweise: