BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanneKontakt

FreeBSD auf ZFS installieren

Möchte man FreeBSD auf ZFS installieren, so ist das noch nicht über die Installationsroutine möglich. Unter http://www.ish.com.au/solutions/articles/freebsdzfs findet man ein Anleitung wie man FreeBSD trotzdem auf ZFS installieren kann. Hier eine kleine Zusammenfassung: Um FreeBSD auf ZFS zu installieren, muss man mindestens FreeBSD 7 einsetzen. Man erstellt zuerst mit sysinstall einen Slice über die ganze Festplatte und anschliessend ein Label so, dass die Partition a 512 MB gross ist, und als / gemountet wird. Auch die Swappartition wird bereits erstellt. Im Rest des Slices wird eine Partition gelabelt, welche nicht formatiert und gemountet wird. In / wird dann ein minimal FreeBSD installiert.

Danach wird das installierte System im Single User Mode gestartet und die / Partition schreibend gemountet:

# mount -w / 
Nun kann auf dem freien Speicherplatz ein ZFS-Pool erstellt werden:

# zpool create tank /dev/ad0s1d
WARNING: ZFS is considered to be an experimental feature in FreeBSD.
ZFS filesystem version 6
ZFS storage pool version 6

Danach können die Dateisysteme für /usr, /var und /tmp erstellt werden:

# zfs create tank/usr
# zfs create tank/var
# zfs create tank/tmp

Mit folgendem Eintrag in der /etc/rc.conf wird das ZFS Kernelmodul beim Booten geladen:

# echo 'zfs_enable="YES"' >> /etc/rc.conf

Nun kann der Inhalt der root-Partition auf das ZFS-Dateisystem verschoben werden:

# find -x / | cpio -pmd /tank
471416 blocks

Da FreeBSD noch nicht von ZFS booten kann, muss die bestehende UFS-Partition als boot-Partition verwendet werden:

# rm -rf /tank/boot
# mkdir /tank/bootdir
# cd /tank
# ln -s bootdir/boot boot

In der /tank/etc/fstab muss nun der Eintrag für die UFS boot-Partition geändert werden:

/dev/ad4s1a  /bootdir        ufs     rw      1       1 

Nun muss in der /boot/loader.conf eingetragen werden, dass das ZFS root-Dateisystem beim Booten geladen werden soll:

# echo 'zfs_load="YES"' >>  /boot/loader.conf
# echo 'vfs.root.mountfrom="zfs:tank"' >> /boot/loader.conf

Zum Schluss müssen noch die ZFS-Mountpoints für /usr, /var und /tmp konfiguriert werden und dabei sichergestellt werden, dass /tank nicht gemountet wird, da dies nun das root-Dateisystem ist:

# zfs set mountpoint=/tmp tank/tmp
# zfs set mountpoint=/usr tank/usr
# zfs set mountpoint=/var tank/var
# zfs set mountpoint=legacy tank

Jetzt sind alle Einstellungen gemacht und FreeBSD kann neu gestartet werden:

# shutdown -r now

Falls man möchte, können nun nicht gebrauchte Dateien aus der UFS boot-Partition gelöscht werden:

# cd /bootdir
# chflags noschg var/empty
# rm -rf usr var tmp COPYRIGHT home compat media mnt proc bin cdrom dev dist etc lib libexec root sbin sys

Mehr Informationen dazu findet man im FreeBSD wiki: http://wiki.freebsd.org/ZFSOnRoot

Eine kleine Einführung in ZFS auf FreeBSD findet man hier: http://www.chruetertee.ch/blog/archive/2007/05/26/zfs-auf-freebsd.html

Related Entries:
ZFS-Installation mit Hilfe von mfsBSD
FreeBSD nur auf ZFS installieren
Alle Änderungen eines ZFS-Pools anzeigen
Automatisch ZFS Snapshots erstellen
ZFS Dateisystemoptionen verwenden
Comments (4)  Permalink

Comments

hoschi @ 12.02.2008 23:00 CEST
Danke für diesen tollen Eintrag! Hat mir sehr geholfen.
grUNIX @ 30.09.2008 15:25 CEST (Trackback)
In diesem Blog wurde schon oftmals über ZFS berichtet, geschrieben und diskutiert. Aber auch andere Blogs beschäftigen sich ausgiebig mit ZFS unter FreeBSD und bieten dazu gleich noch Beispiele an wie sich was umsetzen lässt. Daher soll das Wort Bea
pagan @ 13.05.2009 14:29 CEST
Erst mal vielen Dank fuer diesen tollen Beitrag.
Weare es ach moeglich einen solchen Beitrag zfs only Systeme zu machen.
Beat @ 14.05.2009 09:22 CEST
Ich bin zur Zeit gerade an einem Artikel über ein reines ZFS System ohne UFS-Hilfspartition am schreiben. Ich hoffe, dass ich diesen am Wochenende fertig habe.

add a comment

The Trackback URL to this post is:
http://www.chruetertee.ch/blog/plugin=trackback(942).xml
Trackbacks are moderated.

This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!

Name*
E-Mail
For Spammers Only
URL
Comment*
Notify me via E-Mail when new comments are made to this entry
Remember me (needs cookies)