BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

ZFS-Installation mit Hilfe von mfsBSD

Mit Hilfe von mfsBSD lässt sich einfach ein FreeBSD 8.0 installieren, welches nur ZFS als Dateisystem verwendet. Dazu findet man auf der mfsBSD-Webseite eine "8.0-RELEASE-amd64 special edition"-ISO-Datei. Startet man einen Rechner von dieser CD, so wird allen Netzwerkschnittstellen, falls ein DHCP-Server verfügbar ist, automatisch eine IP-Adresse zugewiesen. Nun kann man sich mit dem Rechner via SSH verbinden:

# ssh root@<rechner>
Password: mfsroot
Last login: Mon Nov 30 20:23:43 2009
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
        The Regents of the University of California.  All rights reserved.

FreeBSD 8.0-RELEASE (GENERIC) #1: Thu Nov 26 00:38:45 CET 2009

Welcome to mfsBSD SE, the memory based FreeBSD distribution.
This is a special version intended for full-ZFS install of FreeBSD

To make a full-ZFS FreeBSD install from this ISO:

1. Mount the CD device 
( e.g. mount_cd9660 /dev/acd0 /cdrom )
2. Run "zfsinstall" with path to to the distribution bzip file and your drive
( e.g. zfsinstall -d /dev/ad0 -t /cdrom/8.0-amd64.tbz )

Run zfsinstall without any option for the options list.
I recommend creating a GPT swap partition (e.g. -s 2G for a 2GB swap).

Feel free to email me with any bug requests or feature suggestions.
Martin Matuska <mm(AT)FreeBSD.org>
http://mfsbsd.vx.sk/

Zuerst muss nun das CD-ROM-Laufwerk gemountet werden:

mfsbsd# mount_cd9660 /dev/acd0 /cdrom
mfsbsd# mount
/dev/md0 on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
/dev/md1 on /tmp (ufs, local, soft-updates)
/dev/md2.uzip on /usr (ufs, local, read-only)
/dev/md3 on /var (ufs, local)
/dev/md4 on /usr/local (ufs, local, soft-updates)
/dev/acd0 on /cdrom (cd9660, local, read-only)

Nun kann mit Hilfe von zfsinstall die Installation vorgenommen werden. Mit der -d Option wird die Festplatte festgelegt, auf welcher die Installation vorgenommen werden soll. Alle auf der Festplatte liegenden Dateien werden dabei gelöscht. Mit der -p Option kann falls gewünscht einen alternativen Pool-Namen gesetzt werden. Mit der -s Option kann die Grösse des Swap-Bereiches festgelegt werden:

mfsbsd# zfsinstall -d /dev/da0 -t /cdrom/8.0-amd64.tbz -p rpool -s 2G
Creating GUID partitions on /dev/da0 ... done
Configuring ZFS bootcode on /dev/da0 ... done
=>      34  16777149  da0  GPT  (8.0G)
        34       128    1  freebsd-boot  (64K)
       162   4194304    2  freebsd-swap  (2.0G)
   4194466  12582717    3  freebsd-zfs  (6.0G)

Creating ZFS pool rpool on /dev/da0p3 ... done
Creating rpool partitions: root usr var tmp ... done
Setting bootfs for rpool to rpool/root ... done
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool        218K  5.88G    18K  none
rpool/root    18K  5.88G    18K  legacy
rpool/tmp     18K  5.88G    18K  legacy
rpool/usr     18K  5.88G    18K  legacy
rpool/var     18K  5.88G    18K  legacy
Mounting rpool on /mnt ... done
Extracting FreeBSD distribution ... done
Writing /boot/loader.conf... done
Writing /etc/fstab... done
Copying /boot/zfs/zpool.cache ... done

Installation complete.
The system will boot from ZFS with clean install on next reboot

You may type "chroot /mnt" and make any adjustments you need.
For example, change the root password or edit/create /etc/rc.conf for
for system services. 

Die Partitionstabelle, der ZFS-Pool und die ZFS-Dateisysteme wurden dabei automatisch angelegt:

mfsbsd# gpart show
=>      34  16777149  da0  GPT  (8.0G)
        34       128    1  freebsd-boot  (64K)
       162   4194304    2  freebsd-swap  (2.0G)
   4194466  12582717    3  freebsd-zfs  (6.0G)
mfsbsd# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  5.97G   317M  5.66G     5%  ONLINE  -
mfsbsd# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
rpool        317M  5.57G    18K  none
rpool/root  66.4M  5.57G  66.4M  legacy
rpool/tmp     18K  5.57G    18K  legacy
rpool/usr    250M  5.57G   250M  legacy
rpool/var    121K  5.57G   121K  legacy

Nun kann mit Hilfe von chroot in das neu installierte System gewechselt werden. Dort kann das System konfiguriert, Benutzer angelegt, sowie das root-Passwort gesetzt werden:

mfsbsd# chroot /mnt

Startet man den Rechner, nachdem man die CD-ROM entfernt hat, neu wird das installierte System, welches nur ZFS als Dateisystem verwendet, gestartet.

Related Entries:
ZFS-Statistiken anzeigen
FreeBSD nur auf ZFS installieren
Alle Änderungen eines ZFS-Pools anzeigen
Automatisch ZFS Snapshots erstellen
ZFS Dateisystemoptionen verwenden
Comments (18)  Permalink

Comments

olhe @ 30.11.2009 20:36 UTC (Trackback)
ZFS-Installation mit Hilfe von mfsBSD http://www.chruetertee.ch/blog/archive/2009/11/30/zfs-installation-mit-hilfe-von-mfsbsd.html !freebsd
cryx @ 01.12.2009 00:51 UTC
Schön zu sehen das zfsinstall beinahe das gleiche tut wie http://anonsvn.h3q.com/projects/freebsd-patches/browser/manageBE/create-zfsboot-gpt_livecd.sh :-)

Letzteres hat aber support für booten von raidz!

Hoffentlich findet irgendwas davon mal einzug in sysinstall!
Oliver @ 01.12.2009 20:47 UTC
Einzug ins sysinstall wird zfs nie finden, weil sysinstall einfach hoffnungslos ist für jegliche Weiterentwicklung.

Anderes Problem, kann es sein, daß nach einem Neubau der Welt kein entsprechend fähiger Bootloader gebaut wird oder übersehe ich einfach ein Detail?

Ich habe dies hier mal ausprobiert und danach ein Upgrade auf stable gemacht. can't load kernel ist das Ergebnis.

Ich habe eine andere Maschine mit der vorherigen Anleitung zu Fuß auf zfs aufgesetzt und diese überstand mehrere Updates bei stable ohne weiteres.
cryx @ 01.12.2009 20:52 UTC
Ich rate mal ins blaue: LOADER_ZFS_SUPPORT="yes" in make.conf vergessen?
Oliver @ 01.12.2009 21:00 UTC
Nope, leider nicht. Ich habe mir das mal im fixit modus angeschaut und das zumindest paßt alles.
cryx @ 01.12.2009 21:02 UTC
Funktioniert das booten schon nach dem kernel upgrade nicht mehr?
Oliver @ 01.12.2009 21:05 UTC
Nein, ich ging ja die regulären Schritt. Singleuser Modus und dann mergemaster, installworld, mergemaster. Erst danach bleibt er im Loader stehen.
cryx @ 01.12.2009 21:18 UTC
Mal mit loader.old probiert? Wenn du sonst nix angefasst hast, muss es ja am loader liegen.
Oliver @ 01.12.2009 21:40 UTC
Bingo, der alte loader funktioniert. Obiges Script vergißt also in src.conf den nötigen Eintrag.
cryx @ 01.12.2009 22:03 UTC
In current gibt es schon einen commit der _immer_ einen zfs fähigen bootloader mitbaut. Dann sollte das Problem der Vergangenheit angehören. Momentan ist es auch so das man sich mit einem freebsd-update immer einen nicht ZFS fähigen bootloader installiert und dann dumm dasteht.
Oliver @ 01.12.2009 22:48 UTC
Tja dumm gelaufen :D ich dachte das wäre jetzt default beim Release.
Ivo @ 02.12.2009 14:38 UTC
Rückkehr zu UFS:
Ich habe ein FreeBSD-System jetzt rund ein Jahr auf ZFS betrieben und war rundherum zufrieden, werde aber trotzdem nun zur traditionellen Installation auf UFS zurückkehren.
Denn so toll ZFS auch ist, geht irgend etwas schief, macht man einen kleinen Fehler, dann hat man ein Riesenproblem und der Schaden ist unter Umständen enorm.
Solange ZFS nicht über die normale Installations-Routine aufgesetzt werden kann und Updates nicht ohne zusätzliche Klimmzüge möglich sind, lasse ich die Finger davon, der gegenwärtige Aufwand, steht einfach in keinem Verhältnis zum Nutzen.
Schließlich betreibe ich meine Computer nicht just for fun, auch wenn meine Freunde manchmal diesen Eindruck haben.
cryx @ 02.12.2009 14:42 UTC
Dem kann ich mich überhaupt nicht anschliessen. Die Risiken etwas zu verbasteln sind genauso gross wie bei UFS. Ich find sie eigentlich bei ZFS sogar geringer, weil ich per manageBE immer wieder in mein altes boot-environment zurück kann.
Ivo @ 02.12.2009 16:01 UTC
Du hast sicher recht.
Ich habe einfach zu wenig Ahnung von ZFS und momentan auch nicht die Zeit mich richtig einzuarbeiten.
Deshalb ist UFS für mich z.Zt. wahrscheinlich einfach die bessere Lösung.
Beat @ 02.12.2009 20:08 UTC
Der Eintrag in der /etc/src.conf wird nun standardmässig erstellt:
https://box.vx.sk/wsvn/mfsbsd/trunk/?op=revision&rev=43

Gruess Beat
Oliver @ 03.12.2009 00:15 UTC
@beat danke war leicht zu beheben, falls man denn im Eifer des Gefechts dran denkt ;-)
oliver @ 07.12.2009 18:25 UTC
http://lists.freebsd.org/pipermail/svn-src-stable-8/2009-December/000856.html

Zwischenzeitlich ist auch ein nativer Loader in stable eingetroffen, die Option in src.conf ist dort zumindest nun obsolet.
Christophe @ 14.12.2009 07:51 UTC
Ich habe es mit der i386er Version versucht aber wo finde ich oder wie baue ich die Release-arch.tbz Datei? Auf den FreeBSD iso CDs gibt es diese Datei nicht.
No new comments allowed (anymore) on this post.