ZFS auf root mit FreeBSD 9.1

"kldload geom_nop". Wobei er es eigentlich automagisch laden sollte... Was er ja offensichtlich nicht macht.
 
Hallo

hier habe ich leider keinen Erfolg:

Code:
[root@rescue ~]# kldload geom_nop
kldload: can't load geom_nop: No such file or directory


Gruß Mardor
 
Hallo,

ich habe eine Anleitung gefunden um den FreeBSD Server bei Hetzner zu installieren:

https://github.com/wunki/gibbon-tree/blob/master/bootstrap-hetzner.sh


Code:
[root@rescue /boot/modules]# fetch https://www.wunki.org/files/modules/9.1/geom_nop.ko.symbols
geom_nop.ko.symbols                           100% of   57 kB   10 MBps
[root@rescue /boot/modules]# fetch https://www.wunki.org/files/modules/9.1/geom_nop.ko
geom_nop.ko                                   100% of   18 kB   36 MBps
[root@rescue /boot/modules]# kldload /boot/modules/geom_nop.ko
kldload: can't load /boot/modules/geom_nop.ko: Exec format error

Auch wenn ich wie beschrieben das gnop Modul für FreeBSD 8.3 runter lade erhalten ich die gleiche Fehlermeldung.

Hast von euch jemand eine Idee ?

Gruß Mardor
 
Binaries von sonstwo runterladen ist natürlich immer eine prima Idee.

Wie wärs, wenn du zu Hause ein komplettes System selbst baust und daraus die Module nimmst?
 
Hallo TCM,

Binaries von sonstwo runterladen ist natürlich immer eine prima Idee.

Wie wärs, wenn du zu Hause ein komplettes System selbst baust und daraus die Module nimmst?

Ich habe heute Nacht das neuste FreeBSD installiert und danach die geom_nop.ko auf das Hetzner Rescue System kopiert. Leider ist der Effekt der Gleiche:
Code:
[root@rescue /boot/modules]# kldload /boot/modules/geom_nop.ko
kldload: can't load /boot/modules/geom_nop.ko: Exec format error

Gruß Mardor
 
Auch die "geom_nop.so" und die "geom.nop.symbols" habe ich rüberkopiert. Aber dies änderte leider am dem Ergebnis nix.

Gruß Mardor
 
die module müssen natürlich zum geladenen kernel passen, sonst kommt der beschriebene Fehler. Schau, welchen Kernel das rescue system von Hetzner startet und nimm dafür passende Module. Alternativ kannst du dir Images anfertigen und die bei Hetzner auf die Platten schreiben und hoffen, dass sie starten (in einer VM vorher vielleicht testen) und dann die entsprechenden Module laden.
 
Auf meinem Hetzner-Root (EX4, 2x3 TB SATA) läuft es prima ohne 4k-Allignment (und damit ohne das gnop-Gefuddel) ;)
 
Hetzner hat es gut versteckt :ugly:, aber es geht:

  1. Rescue-System booten
  2. cd /tmp
  3. tar xfzp /nfs/mfsbsd/9.1-release-amd64.tbz
  4. kldload boot/kernel/geom_nop.ko
 
So leicht kann es sein, einfach das "installimage" skript nutzen ... dann FreeBSD 9.1 installieren, dann gnop wegsichern und neu von Hand installieren.

Danke für eure Tipps und die tolle Hilfe !

Gruß Mardor
 
Soo, jetzt steht das ganze auch für FreeBSD 10 an. Das alte Skript scheint damit nicht so richtig zu funktionieren, aber ich habe es jetzt in QEMU/KVM zumindest testweise hinbekommen. Dazu war auch wieder viel Gesuche im Netz nötig xD Aber ich will es mal wieder nicht vorenthalten:

Ich weiß, dass das bsdinstall Programm einem auch einen ZFSOnRoot einrichten kann aber ich hab da gerne etwas mehr Freiheiten im Partitionslayout, außerdem ist dort die Swap nicht in einem Mirror.

Änderungen zur 9.1-Version:
- EFI Partition wird mit angelegt, da EFI-Support auf dem Radar ist
- mountpoints der datasets jetzt als Parameter mit setzen
- zfs import lädt jetzt die devices aus /dev/gpt (war bei mir sonst gemixt)
- setzen des Cache-Files als Pool-Parameter, da sonst Programme wie zdb nicht funktionieren
- Nutzung von lz4 bei datasets auf die oft zugegriffen wird
- readonly von /var/empty entfernt, da ein freebsd-update damit nicht klar kommt

Code:
#!/bin/sh
#configure skript
DISK0=da0
DISK1=da1

#boot from install cd and choose "Live CD"
#add devices and install bootloader
gpart create -s gpt $DISK0
gpart create -s gpt $DISK1
gpart add -a 4k -s 512K -t freebsd-boot $DISK0
gpart add -a 4k -s 512K -t freebsd-boot $DISK1
#be prepared for future EFI support
gpart add -a 4k -s 256M -t efi $DISK0
gpart add -a 4k -s 256M -t efi $DISK1

##gmirror-swap##
gpart add -a 4k -s 16G -t freebsd-swap -l swap0 $DISK0
gpart add -a 4k -s 16G -t freebsd-swap -l swap1 $DISK1
##gmirror-swap##

gpart add -a 4k -t freebsd-zfs -l disk0 $DISK0
gpart add -a 4k -t freebsd-zfs -l disk1 $DISK1
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 $DISK0
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 $DISK1

#create pool
gnop create -S 4096 /dev/gpt/disk0
gnop create -S 4096 /dev/gpt/disk1

zpool create -o altroot=/tmp/mnt -o cachefile=/var/tmp/zpool.cache zroot mirror /dev/gpt/disk0.nop /dev/gpt/disk1.nop
zfs set mountpoint=/ zroot
zpool export zroot
gnop destroy /dev/gpt/disk0.nop

gnop destroy /dev/gpt/disk1.nop
zpool import -d /dev/gpt/ -o altroot=/tmp/mnt -o cachefile=/var/tmp/zpool.cache zroot

#setup pool
zpool set bootfs=zroot zroot
zfs set checksum=fletcher4 zroot
zfs set atime=off zroot

zfs create -o mountpoint=/usr zroot/usr
zfs create zroot/usr/local

zfs create zroot/usr/home
zfs create -o mountpoint=/var zroot/var

zfs create -o mountpoint=/tmp -o compression=lz4 -o exec=on -o setuid=off zroot/tmp
#not used anymore, using pkgng
#zfs create -o compression=gzip-9 -o setuid=off zroot/usr/ports
#zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
#zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=gzip-9 -o exec=off -o setuid=off zroot/usr/src
zfs create -o compression=lz4 -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lz4 -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lz4 -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip-9 -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lz4 -o exec=on -o setuid=off zroot/var/tmp

#zdb needs this
zpool set cachefile=/boot/zfs/zpool.cache zroot

#create swap
#zfs create -V 4G -o org.freebsd:swap=on -o checksum=off -o sync=disabled -o primarycache=none -o secondarycache=none zroot/swap

##gmirror-swap##
gmirror label -b prefer swap gpt/swap0 gpt/swap1
##gmirror-swap##

#fix permissions
chmod 1777 /tmp/mnt/tmp
cd /tmp/mnt/ ; ln -s usr/home home
chmod 1777 /tmp/mnt/var/tmp

#install FreeBSD
cd /usr/freebsd-dist
export DESTDIR=/tmp/mnt/
for file in base.txz kernel.txz doc.txz src.txz; #ports.txz lib32.txz
do (cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/}); done

#final configuration
cp /var/tmp/zpool.cache /tmp/mnt/boot/zfs/zpool.cache
echo 'zfs_enable="YES"' >> /tmp/mnt/etc/rc.conf
echo 'zfs_load="YES"' >> /tmp/mnt/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /tmp/mnt/boot/loader.conf
echo 'LOADER_ZFS_SUPPORT=YES' > /tmp/mnt/etc/src.conf
echo 'WRKDIRPREFIX=/usr/obj' >> /tmp/mnt/etc/make.conf
touch /tmp/mnt/etc/fstab

##gmirror-swap##
echo '/dev/mirror/swap none swap sw 0 0' >> /tmp/mnt/etc/fstab
echo 'geom_mirror_load="YES"' >> /tmp/mnt/boot/loader.conf
##gmirror-swap##

#major updates do not like this
#zfs set readonly=on zroot/var/empty

#reboot into the new system
#passwd root
#tzsetup
#cd /etc/mail ; make aliases
#echo 'WITH_PKGNG=yes' >> /etc/make.conf
#...edit rc.conf
#in login.conf eintragen:
##:charset=UTF-8:\
##:lang=de_DE.UTF-8:\
#cap_mkdb /etc/login.conf
 
Zurück
Oben