Ubuntu 12.04 auf GPT “debootstrappen”

Ein neuer Hetzner-Server – der wieder dank Xen fast 30 Linux-Instanzen aufnehmen wird – machte es erstmalig erforderlich, ein Linux remote auf einer großen Platte (größer als 2TB) zu installieren. Statt dem im Büronetz eingesetzten PXE-Netinstaller musste hier “debootstrap” zum Einsatz kommen – und es klappte fast auf Anhieb. Grund für die Neuinstallation war – mal wieder – der Wunsch, ein eigenes Partitionslayout vergeben zu können, eine Flexbilität, die Hetzner natürlich für das Standardimage nicht bieten kann. Ich entschied mich daher dafür, den Server mit aktiviertem Rettungssystem zu übernehmen. Das ist bei Hetzner Debian basiert, so dass “debootstrap” in Ubuntus Version mit wenigen Handgriffen installiert werden kann. Der einzige Haken: Festplatten über zwei Terabyte erfordern entweder eine GUID Partition Table (“GPT”) oder eben, dass man damit lebt, dass rund ein Drittel der Plattenkapazität nicht erhältlich ist. Ich entschied mich für ersteres.

Partitionierung

Ungewohnt ist die Partitionierung: GPT kennt keine primären, erweiterten und logischen Partitionen, sondern nur … Partitionen. Maximal 128 derer. Die Partitionstabelle muss daher auch nicht innerhalb der ersten 512 Bytes der Platte residieren, sondern darf etwas mehr Platz beanspruchen, eine Backup-Partitionstabelle wird am Ende der Platte untergebracht, worauf ich im Detail aber erst in einem separaten Beitrag eingehen möchte.

Die Partitionierung erfordert zwingend eine kleine Partition vom Typ ef02, wenn der Rechner ein klassisches BIOS nutzt oder eine Partitition vom Typ ef01 für einen EFI-Rechner. Dahinter werden System- und Swap-Partition angelegt. Zum Einsatz kommt gdisk, welches sich verhält wie das altbekannte fdisk:

gdisk /dev/sda

Das Ergebnis sieht so aus:

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          133119   64.0 MiB    EF02  BIOS boot partition
   2          133120        16910335   8.0 GiB     8200  Linux swap
   3        16910336       226625535   100.0 GiB   0700  Linux/Windows data

Installation des Grundsystems

Die Systempartition wird jetzt formatiert und gemountet:

mkdir -p /tmp/minibuntu
mkfs.ext4 /dev/sda3
mount /dev/sda3 /tmp/minibuntu

Auf Hetzners Rettungssystem war ein Debain-Debootstrap installiert. Ich muss es vom Ubuntu-Mirror herunterladen und mit dpkg installieren:

dpkg -i debootstrap_1.0.41ubuntu1_all.deb

Die Installation des Grundsystems geht dann recht flink mit:

debootstrap --arch amd64 precise /tmp/minibuntu http://archive.ubuntu.com/ubuntu

Nachbereitung des Systems

Nun sind einige Anpassungen vorzunehmen. Zunächst editieren Sie die /etc/hostname, die /etc/default/locale, die /etc/network/interfaces, die /etc/fstab und gegebenenfalls die /etc/apt/sources.list des frisch installierten Systemes. Mounten Sie dann einige spezielle Dateisysteme:

mount -t proc none /tmp/minibuntu/proc
mount --bind /sys /tmp/minibuntu/sys
mount --bind /dev /tmp/minibuntu/dev
mount -t devpts none /tmp/minibuntu/dev/pts

Nun fehlen noch Kernel, Rootpasswort und eine Möglichkeit zur Fernwartung, wechseln Sie per Chroot in das frisch installierte System und nehkmen Sie die notwendigen Änderungen vor:

chroot /tmp/minibuntu
shadowconfig on
passwd
apt-get update
apt-get install linux-image-generic ssh

Mit dem Linux-Kernel wird als Abhängigkeit GRUB installiert. Dieser fragt nach dem Installationsort für den Bootloader, an dieser Stelle ist /dev/sda anzugeben. GRUB schreibt nun einen Kompatibilitäts-MBR, packt seine Binärdateien aber auf die BIOS-Boot-Partition. Jetzt noch einmal die /etc/network/interfaces und /etc/fstab prüfen, dann den Chroot verlassen und rebooten:

exit
reboot

Viel Spaß damit auf dem eigenen Server!

6 thoughts on “Ubuntu 12.04 auf GPT “debootstrappen”

  1. madmaxx

    Ich glaube wenn der Startsektor der letzten Partition vor der 2TB Grenze liegt, sollte Linux trotdem keine Probleme damit haben.

  2. Administrator Post author

    Mit “fdisk” kann man nur bis zur 2TB-Grenze partitionieren. Das müsste eine Einschränkung durch die maximal mögliche Adressierung des PC-Partitionsschemas sein. Durchaus möglich, dass es Tricks gibt, eine größere Festplatte doch irgendwie mit PC-Partitionen nutzen zu können (wichtig im Dual Boot mit einem älteren Windows), auf einem neuen Server wollte ich aber gleich den sauberen Weg gehen.

  3. tomx3

    Es ist nicht notwendig, debootstrap aus den Ubuntu-Quellen zu nutzen. Das Paket aus debian-testing kann das auch (die Version aus stable kennt nur Ubuntu-Versionen bis Natty).

    Alternativ kann man auch das Skript in /usr/share/debootstrap/scripts/natty händisch auf Precise anpassen. 😛

  4. Pingback: dysternis » Ubuntu auf einem Rootserver mit ZFS

  5. royalessays.co.uk

    Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me.It’s always nice when you can not only be informed, but also entertained! I’m sure you had fun writing this article.

Comments are closed.