BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

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 (2)  Permalink

Comments

Christoph Schug @ 21.01.2009 08:55 UTC
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
Zara Kanaeva @ 25.05.2010 13:02 UTC
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.
No new comments allowed (anymore) on this post.