FreeBSD Tipps für Linux-Umsteiger

ZFS stuff

Das meiste im Netz ist sehr gut dokumentiert und lässt sich als Vorlage nutzen. Ein paar zusammengefasste Beispiele habe ich aber auf Full Disk Encryption (with ZFS root) for FreeBSD 9.x gesammelt. Unter ZFS boot error: Mounting from zfs:zroot failed with error 2 gibt es einen speziellen Eintrag, falls euer zfs:zroot mit „error 2“ beim Booten nicht gemountet wird.

Gnome mit gdm aktivieren

Es reicht, in die rc.conf

gnome_enable="YES"

einzutragen. Das ganze „gdm_enable“, „dbus_enable“ etc ist nicht notwendig.

Networkmanager unter Gnome2 funktioniert nicht

Der NetworkManager wird scheinbar auch längerfristig nicht funktionieren. Ein paar Optionen für die rc.conf die das Leben vereinfachen, hier am Beispiel Ethernet und WLAN:

netif_enable="YES"
network_interfaces=wlan0\ em0
wlans_iwn0="wlan0"
ifconfig_em0=dhcp
ifconfig_wlan0="WPA DHCP"

Im ports gibt es das Programm „wifimgr“ das den Job für WLAN Netzwerke ganz gut übernimmt. Falls es da noch Probleme gibt, die /etc/wpa_supplicant.conf anpassen.

NFS mount von Linux auf FreeBSD nicht möglich (nicht mit zfs sharenfs)

Sicherheitsprobleme… Probiert erst gar nicht die Einträge mit nfs_reserved_port_only die man bei Google findet, die betreffen wahrscheinlich nur FreeBSD als NFS-Client. Das Problem betrifft den NFSv4 Server und die Konfiguration per zfs sharenfs bzw in /etc/exports

Für die Nutzung von „zfs sharenfs“ muss zuerst in der rc.conf der Eintrag

zfs_enable="YES"

gesetzt sein, andernfalls nutzt der mountd nicht die generierte /etc/zfs/exports die bei „zfs sharenfs“ geschrieben wird.

NFSv4

Bei NFSv4 kann nicht „zfs sharenfs“ genutzt werden da hier der neue Syntax für das Root-Share gesetzt werden muss. Ein Beispiel

V4:/zmirror/transfer
/zmirror/transfer -alldirs -maproot=root -network 192.168.1.0/24

Wichtig beim Mounten auf dem Client: Der Pfad ist nicht (!) host:/zmirror/transfer sondern nur host:/

mount -t nfs 192.168.1.1:/ /mnt/transfer

Bei V4 wird der „Root-Ordner“ gesetzt.

Optionen in der rc.conf:

rpcbind_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
nfs_server_enable="YES"
nfsv4_server_enable="YES"
nfsuserd_enable="YES"
mountd_enable="YES"
#für ZFS wenn auch in V4 relativ nutzlos
zfs_enable="YES"

NFSv3

Folgende Konfiguration ermöglicht das alte bekannte Verhalten von NFS und ist auch mit „zfs sharenfs“ nutzbar. Die Datei /etc/exports sollte möglichst dabei leer sein. /etc/zfs/exports wird vom „zfs sharenfs“ geschrieben.

Einstellungen in der rc.conf für NFSv3:

rpcbind_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
weak_mountd_authentication="YES"
oldnfs_server_enable="YES"
nfs_server_enable="YES"
nfsv4_server_enable="NO"
nfsuserd_enable="YES"
mountd_enable="YES"
zfs_enable="YES"

Der Syntax vom NFS ist nicht Linux-kompatibel! Ein Share-Beispiel für ZFS:

zfs set sharenfs="-maproot=root -alldir -ip 127.0.0.1" zroot/night-linux
zfs set sharenfs="-maproot=root -alldir -network 192.168.1.0/24" zroot/night-data

Als Alternative zu “-ip XXX.XXX.XXX.XXX“ gäbe es noch “-network 192.168.1.0/24“ oder “-network 192.168.1.0 -mask 255.255.255.0“.

Das alte Linux-System trotz crypt parallel zum FreeBSD System ausführen und Dateien übertragen

FreeBSD versteht kein dm-crypt/crypsetup-luks, wir können uns aber eines kleinen Tricks bedienen. Die Grundidee ist, das alte System von der Festplate „raw“ direkt in einer VM zu starten. VirtualBox funktioniert ganz passabel unter FreeBSD, daher der Tipp (wir gehen davon aus das die Linux-Platte als /dev/ada1 erkannt wird), mit:

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/ada1

eine VMDK Datei zu erstellen, dann mit

chmod 777 /dev/ada1

erstmal die Permission Probleme für den normalen User bis zum Reboot brutal zu erschlagen. Dann erstellt eine VM mit der VMDK (notfalls einfach VMDK erstellen und den Inhalt der file.vmdk in die neu erstellte VMDK zu kopieren, aber die GUID zu belassen sonst klar Virtualbox). Als Netzwerk sollte HostOnly gewählt werden.

Als nächstes würde ich vorschlagen, das System per SystemRescueCD ISO (oder einer anderen Distribution eurer Wahl) zu booten, das Linux-System manuell mit cryptsetup luksOpen zu laden, in einen anderen Ordner mountet ihr von 10.0.2.2 (FreeBSD Host) den NFS-freigegebenen Ordner im FreeBSD System und könnt anschließend die Dateien der alten Festplatte übertragen und trotzdem weiter am Rechner sitzen.

Alternative: Linux booten, auf eine andere Festplatte uncrypted kopieren, dann unter FreeBSD wieder reinkopieren. Linux unterstützt kein GELI Crypt, daher ist ein direkter Transfer nicht möglich. ZFS wäre wahrscheinlich per ZFSOnLinux möglich, aber ganz so zuversichtlich bin ich da nicht.

Wichtig: Mehrere virtuelle CPU's in der Virtualbox nutzen. Falls nicht kann es sein das die Datenübertragung bei maximal ~2MB hängen bleibt.

MC falsche Rahmendarstellung

Temp-Fix:

mc -a

Sprach-Kram

/etc/profile, entweder:

LANG=de_DE.ISO8859-15; export LANG
MM_CHARSET=ISO-8859-15; export MM_CHARSET

GDM_LANG=de_DE.ISO8859-15; export GDM_LANG

oder

LANG=de_DE.UTF-8; export LANG
MM_CHARSET=UTF-8; export MM_CHARSET
GDM_LANG=de_DE.UTF-8; export GDM_LANG

/etc/csh.login, entweder:

setenv LANG de_DE.ISO8859-15
setenv MM_CHARSET ISO8859-15
setenv GDM_LAN de_DE.ISO8859-15

oder

setenv LANG de_DE.UTF-8
setenv MM_CHARSET UTF-8
setenv GDM_LAN de_DE.UTF-8

/etc/login.conf: entweder beim default Eintrag anhängen (ISO8859-15 oder UTF-8):

      :umask=022:\
      :charset=ISO8859-15:\
      :lang=de_DE.ISO8859-15:

oder (ISO-8859-15 oder UTF-8):

german|German Users Accounts:\
    :charset=ISO8859-15:\
    :lang=de_DE.ISO8859-15:\
    :tc=default:

hinterher cap_mkdb /etc/login.conf nicht vergessen; beim Eintrag „german“ in der login.conf muss aber noch der User in der /etc/passwd angepasst und das german setting ausgewählt werden.

Sprachkram beim mounten

Parameter -L oder -C für die LANG Settings.

mount -t msdosfs -L de_DE.UTF-8 /dev/da0s4 /mnt/zip

Mit der “-C“-Option, welche den lokalen Zeichensatz enthält, koordiniert man die Dateinamen-Zeichensatz-Konvertierung. Zum Beispiel:

mount -t udf -C UTF-8 /dev/acd0 /mnt/cdrom

arm crosscompiler eabi basteln

cd /usr/ports/devel/cross-gcc
make TGTARCH=arm TGTABI=eabi install

oder

Summon-Arm-Toolchain/FreeBSD nutzbare Version auschecken. Könnte sein das noch als Machine-Type „FreeBSD“ in das switch/case muss.

git://wien.tomnetworks.com/summon-arm-toolchain.git

Ports Tools

Ports updaten

portsnap fetch
portsnap update

Bei erster Nutzung muss noch

portsnap extract

ausgeführt werden.

Cleanup:

portsclean -CDD

Ports komplett updaten:

portupgrade -afb
 
 
         
         
   
(21992 views) freebsd_tipps_for_linux_migrators.txt · Zuletzt geändert: 2013/11/05 23:22 von terminar