FreeBSD mit einer GUID Partitionstabelle installieren
Ab dem FreeBSD 7.1-Release lässt sich FreeBSD mit Hilfe einer GUID Partitionstabelle anstatt des MBR starten. Damit lassen sich bis zu 128 Partitionen erstellen. Auch lassen sich Partitionen erstellen, welche grösser als 2TB sind.
Um FreeBSD mit einer GUID Partitionstabelle zu installieren, kann man zum Beispiel die FreeBSD-Installations DVD booten und dann den Fixit-Modus und das Live-Dateisystem der CDROM/DVD wählen. Im folgenden Beispiel wird die FreeBSD Installation mit einer GUID Partitionstabelle auf der Disk /dev/ad0 vorgenommen.
# ls /dev/ad0 /dev/ad0
Nun wird als erstes eine GUID Partitionstabelle auf die Disk geschrieben. Mit der -f Option wird ein allfällig vorhandenes Master Boot Record überschrieben:
# gpt create -f ad0
Danach wird das Booten von einer GUID Partitionstabelle ermöglicht. Dabei werden die Bootloader von der Installations-DVD installiert:
# gpt boot -b /dist/boot/pmbr -g /dist/boot/gptboot ad0
Jetzt können die verschiedenen Partitionen erstellt werden. Die Grösse, welche mit der -s Option angegeben wird, wird dabei in Anzahl Blocks (standardmässig 512B) angegeben. Im folgenden Beispiel wird eine 1GB grosse Root-Partition erstellt. Danach wird eine 1GB grosse Swap Partition, eine 1GB grosse Partition für /tmp und eine 2GB grosse Partition für /var erstellt. Mit dem restlichen Speicherplatz wird eine Partition erstellt, auf welcher /usr gemountet wird:
# gpt add -t ufs -s 2097152 ad0 # gpt add -t swap -s 2097152 ad0 # gpt add -t ufs -s 2097152 ad0 # gpt add -t ufs -s 4194304 ad0 # gpt add -t ufs ad0
Nun kann die Partitionstabelle mit dem show Kommando verifiziert werden:
# gpt show ad0 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 128 1 GPT part - FreeBSD boot 162 2097152 2 GPT part - FreeBSD UFS/UFS2 2097314 2097152 3 GPT part - FreeBSD swap 4194466 2097152 4 GPT part - FreeBSD UFS/UFS2 6291618 4194304 5 GPT part - FreeBSD UFS/UFS2 10485922 6291261 6 GPT part - FreeBSD UFS/UFS2 16777183 32 Sec GPT table 16777215 1 Sec GPT header
Einzelne Partitionen können, falls nötig, wieder entfernt werden. Dabei wird der Index der zu entfernenden Partition mit der -i Option angegeben:
# gpt remove -i 3 ad0
Die ganze Partitionstabelle kann, falls gewünscht, mit dem destroy Kommando wieder entfernt werden:
# gpt destroy ad0
Nun kann auf allen Partitionen ein Dateisystem erstellt werden:
# newfs -U /dev/ad0p2 # newfs -U /dev/ad0p4 # newfs -U /dev/ad0p5 # newfs -U /dev/ad0p6
Danach wird die Root-Partition nach /mnt gemountet. Ausserdem werden die Verzeichnisse für die restlichen Partitionen erstellt und entsprechend gemountet:
# mount /dev/ad0p2 /mnt # mkdir /mnt/tmp # mkdir /mnt/var # mkdir /mnt/usr # mount /dev/ad0p4 /mnt/tmp # mount /dev/ad0p5 /mnt/var # mount /dev/ad0p6 /mnt/usr
Nun wechselt man ins base Verzeichnis der Installations-DVD und setzt die DESTDIR Variable auf die gemountete Festplatte:
# cd /mnt2/7.1-RELEASE/base # DESTDIR=/mnt # export DESTDIR
Jetzt kann das Basissystem und der GENERIC -Kernel installiert werden:
# ./install.sh You are about to extract the base distribution into /mnt/ - are you SURE you want to do this over your installed system (y/n) y # cd ../kernels # ./install.sh GENERIC # cd /mnt/boot # mv GENERIC kernel
Nachdem die Installation abgeschlossen wurde, wird eine entsprechende fstab erstellt:
# cd /mnt/etc # vi fstab /dev/ad0p3 none swap sw 0 0 /dev/ad0p2 / ufs rw 1 1 /dev/ad0p4 /tmp ufs rw 2 2 /dev/ad0p6 /usr ufs rw 2 2 /dev/ad0p5 /var ufs rw 2 2
Zu guter Letzt werden die gemounteten Partitionen geunmountet und der Fixit-Modus verlassen:
# umount /mnt/usr # umount /mnt/var # umount /mnt/tmp # cd && umount /mnt # exit
Nachdem der Rechner neu gebootet wurde, startet das installierte FreeBSD und kann nun konfiguriert werden. Mehr Informationen zur GUID Partitionstabelle und zu gpt findet man in der Manpage gpt(8).
Comments
Es sollte evtl. nicht unerwaehnt bleiben, dass gpt(8) deprecated [1] ist und auch nicht mehr Bestandteil von FreeBSD 8 sein wird und statt dessen gpart(8) [2] zu verwenden ist.
[1] http://svn.freebsd.org/viewvc/base/head/UPDATING?r1=179524&r2=179691
[2] http://www.freebsd.org/cgi/man.cgi?query=gpart&sektion=8&manpath=FreeBSD+7.1-RELEASE
Danke für den Artikel. Ich war ziemlich ratlos, als ich einen Server mit einem 6TB RAID5 Array erweitern wollte. Mit fdisk und freebsd-labeling bekam ich Partitionen, die 1,4TB gross waren.