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.
Comments
ZFS-Installation mit Hilfe von mfsBSD http://www.chruetertee.ch/blog/archive/2009/11/30/zfs-installation-mit-hilfe-von-mfsbsd.html !freebsd
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!
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.
Nope, leider nicht. Ich habe mir das mal im fixit modus angeschaut und das zumindest paßt alles.
Nein, ich ging ja die regulären Schritt. Singleuser Modus und dann mergemaster, installworld, mergemaster. Erst danach bleibt er im Loader stehen.
Mal mit loader.old probiert? Wenn du sonst nix angefasst hast, muss es ja am loader liegen.
Bingo, der alte loader funktioniert. Obiges Script vergißt also in src.conf den nötigen Eintrag.
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.
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.
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.
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.
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
@beat danke war leicht zu beheben, falls man denn im Eifer des Gefechts dran denkt ;-)
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.
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.