Sur laptop, DELL Latitude E5430 et DELL Latitude E6410
Testé avec un schéma de partition UFS et ZFS, en mode UEFI et LEGACY.
Récupérer l'iso de freeBSD. La graver sur une clef USB et booter dessus. Suivre l'installation pas à par pas.
Faire attention au stade de configuration réseau de choisir pour ETSI / FR “country FR regdomain ETSI”
“country FR regdomain ETSI”
Voici les options que j'ai choisies lors de System Configuration
Rebooter sur freeBSD
Editer le fichier /etc/login.conf
default:\ :passwd_format=sha512:\ :copyright=/etc/COPYRIGHT:\ :welcome=/etc/motd:\ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\ :path=/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin ~/bin:\ :nologin=/var/run/nologin:\ :cputime=unlimited:\ :datasize=unlimited:\ :stacksize=unlimited:\ :memorylocked=64K:\ :memoryuse=unlimited:\ :filesize=unlimited:\ :coredumpsize=unlimited:\ :openfiles=unlimited:\ :maxproc=unlimited:\ :sbsize=unlimited:\ :vmemoryuse=unlimited:\ :swapuse=unlimited:\ :pseudoterminals=unlimited:\ :kqueues=unlimited:\ :umtxp=unlimited:\ :priority=0:\ :ignoretime@:\ :charset=UTF-8:\ :lang=fr_FR.UTF-8:\ :umask=022:
Ajouter pour que les locales soient prises en compte
:charset=UTF-8:\ :lang=fr_FR.UTF-8:\
Le recharger
cap_mkdb /etc/login.conf
# adduser
L’inclure dans les groupes : wheel operator video
Editer .login_conf
[ragnarok@asgard-freebsd:~] $ cat .login_conf # $FreeBSD: releng/12.0/share/skel/dot.login_conf 77995 2001-06-10 17:08:53Z ache $ # # see login.conf(5) # me:\ :charset=UTF-8:\ :lang=fr_FR.UTF-8:
# kldload snd_driver
cat /dev/sndstat Installed devices: pcm0: <IDT 92HD93BXX (Analog 2.0+HP/2.0)> (play/rec) default pcm1: <IDT 92HD93BXX (Analog)> (play/rec) pcm2: <Intel Panther Point (HDMI/DP 8ch)> (play) pcm3: <Intel Panther Point (HDMI/DP 8ch)> (play) pcm4: <Intel Panther Point (HDMI/DP 8ch)> (play) No devices installed from userspace.
# sysrc kld_list+=snd_hda
Installer le paquet
pkg install drm-kmod
Initialisation au boot
sysrc kld_list+="/boot/modules/i915kms.ko"
Le charger
kldload /boot/modules/i915kms.ko
Vérifier
kldstat -v | grep i915
pkg show networkmgr WWW : https://github.com/GhostBSD/networkmgr Comment : FreeBSD/GhostBSD network conection manager Annotations : repo_type : binary repository : FreeBSD Flat size : 1.71MiB Description : NetworkMgr is an open source, Network Manager based on the look of the Linux Network Manager user interface. It use ifconfig and netif if make all work.
Il faudra ensuite configurer DOA pour que ça fonctionne
cat /usr/local/etc/doas.conf permit nopass keepenv root permit :wheel permit nopass keepenv :wheel cmd netcardmgr permit nopass keepenv :wheel cmd ifconfig permit nopass keepenv :wheel cmd service
Se delogguer, l'utilisateur doit faire partie du groupe wheel.
Gestion de la connexion par ce fichier
cat /etc/wpa_supplicant.conf
Permettra en autres l'accès aux périphériques amovibles (CDR,DVD). Nécessaire pour xfburner par exemple.
cat /etc/devfs.conf # Allow all users to access optical media perm /dev/acd0 0666 perm /dev/acd1 0666 perm /dev/cd0 0666 perm /dev/cd1 0666 # Allow all USB Devices to be mounted perm /dev/da0 0666 perm /dev/da1 0666 perm /dev/da2 0666 perm /dev/da3 0666 perm /dev/da4 0666 perm /dev/da5 0666 # Misc other devices perm /dev/pass0 0666 perm /dev/xpt0 0666 perm /dev/uscanner0 0666 perm /dev/video0 0666 perm /dev/tuner0 0666 perm /dev/dvb/adapter0/demux0 0666 perm /dev/dvb/adapter0/dvr 0666 perm /dev/dvb/adapter0/frontend0 0666
cat /etc/devfs.rules [devfsrules_common=7] add path 'ad[0-9]\*' mode 666 add path 'ada[0-9]\*' mode 666 add path 'da[0-9]\*' mode 666 add path 'acd[0-9]\*' mode 666 add path 'cd[0-9]\*' mode 666 add path 'mmcsd[0-9]\*' mode 666 add path 'pass[0-9]\*' mode 666 add path 'xpt[0-9]\*' mode 666 add path 'ugen[0-9]\*' mode 666 add path 'usbctl' mode 666 add path 'usb/\*' mode 666 add path 'lpt[0-9]\*' mode 666 add path 'ulpt[0-9]\*' mode 666 add path 'unlpt[0-9]\*' mode 666 add path 'fd[0-9]\*' mode 666 add path 'uscan[0-9]\*' mode 666 add path 'video[0-9]\*' mode 666 add path 'tuner[0-9]*' mode 666 add path 'dvb/\*' mode 666 add path 'cx88*' mode 0660 add path 'cx23885*' mode 0660 # CX23885-family stream configuration device add path 'iicdev*' mode 0660 add path 'uvisor[0-9]*' mode 0660
Mettre à jour le /etc/rc.conf avec cette entrée
devfs_system_ruleset="devfsrules_common"
Prendre en compte les modifications sans rebooter
/etc/rc.d/devfs restart
Il faudra penser à installer le paquet libdvdcss
# pkg install libdvdcss
dmesg | egrep -i 'cd|dvd'
Retournera le device un cd
mount -t udf /dev/cd0 /mnt
un dvd
mount -t udf /dev/cd0 /mnt
(PS besoin de monter le DVD sous VLC, il le gère)
Pour ejecter le CD | DVD
eject /dev/cd0
Gestion des processeurs multicores.
Desinstaller powerd
# service powerd stop Stopping powerd. Waiting for PIDS: 50127. # service powerd disable powerd disabled in /etc/rc.conf
Ensuite on peut installer et lancer powerd++ :
# service powerdxx enable powerdxx enabled in /etc/rc.conf # service powerdxx start Starting powerdxx.
pkg install xorg xfce xfce4-goodies xfce4-mixer xfce4-volumed xf86-video-intel file-roller
Créer ces 2 fichiers
/usr/local/etc/polkit-1/rules.d/51.shutdown.rules
polkit.addRule(function (action, subject) { if ((action.id == "org.freedesktop.consolekit.system.restart" || action.id == "org.freedesktop.consolekit.system.stop") && subject.isInGroup("PUTYOURGROUPHERE")) { return polkit.Result.YES; } });
/usr/local/etc/polkit-1/rules.d/52.resume.rules
polkit.addRule(function (action, subject) { if (action.id == "org.freedesktop.consolekit.system.suspend" && subject.isInGroup("PUTYOURGROUPHERE")) { return polkit.Result.YES; } });
puis
chown -R polkitd /usr/local/etc/polkit-1/
On aura besoin de dbus
Pkg install dbus
service dbus onestart
Démarrage auttomatique, ajouter
cat /etc/rc.conf dbus_enable="YES"
On utilisera xinit pour le lacement de XFCE Créer dans le Home un .xinitrc
# SET PROPER locale export LANG="fr_FR.UTF-8" export LC_ALL="fr_FR.UTF-8" export LC_MESSAGES="fr_FR.UTF-8" # Clavier français setxkbmap fr & # Lancer xfce /usr/local/bin/startxfce4
Lier xinitrc et xsession
ln -s ~/.xinitrc ~/.xsession
Enfin lancer la session X
xinit .xinitrc
Pour démarrer la session de XFCE, j'ai choisi la façon manuelle sinon on peut passer, entre autre par SLIM. J'ai donc créer cet alias
alias x='xinit ~/.xinitrc'
et la commande x suffit au démarrage de XFCE
Sinon : jeter un oeil à SLIM : Slim
Editer ce fichier ainsi : /usr/local/etc/fonts/local.conf
<?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <fontconfig> <dir>~/.fonts</dir> <!-- do not use the embedded bitmap instead of the outline <https://www.freebsd.org/cgi/man.cgi?query=fonts-conf&sektion=5&manpath=FreeBSD+and+Ports> <https://bbs.archlinux.org/viewtopic.php?id=161609> post 2 (2013) <https://redd.it/7kqr5l> (2017) --> <match target="font"> <edit name="embeddedbitmap" mode="assign"> <bool>false</bool> </edit> </match> <!-- prefer outline e.g. TrueType instead of bitmap fonts <https://bbs.archlinux.org/viewtopic.php?id=161609> post 2 (2013) <https://redd.it/4tb2dt> (2016) --> <match target="font"> <edit name="prefer_outline"> <bool>true</bool> </edit> </match> <!-- reject bitmap fonts, except Ohsnapu - prefer PostScript, TrueType et cetera <https://forums.freebsd.org/threads/howto-nice-fonts.2021/> (2009) <https://redd.it/4tb2dt> (2016) --> <selectfont> <acceptfont> <pattern> <patelt name="family"> <string>Ohsnapu</string> </patelt> </pattern> </acceptfont> <rejectfont> <pattern> <patelt name="scalable"> <bool>false</bool> </patelt> </pattern> </rejectfont> </selectfont> </fontconfig>
Bien que par défaut, on n'en a pas besoin. On peut vouloir utiliser un outil style Gestionnaire Wifi
pkg install wifimgr
Sinon la(es) connexion(s) se gère(nt) via :
cat /etc/wpa_supplicant.conf
J'utilise Plank, simple et convivial.
# pkg install plank
Ajouter cette commande au démarrage de XFCE
Créer ces 2 fichiers
# cat /usr/local/etc/X11/xorg.conf.d/card.conf Section "Device" Identifier "Card0" Driver "intel" Option "DPMS" Option "Backlight" "intel_backlight" EndSection
# cat /usr/local/etc/X11/xorg.conf.d/keyboard.conf Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbLayout" "fr" Option "XkbOptions" "terminate:ctrl_alt_bksp,ctrl:nocaps" EndSection
Diminuer le timeout du menu du boot loader à 2 secondes
sysrc -f /boot/loader.conf autoboot_delay=2
Accélération de chiffrement des processeurs modernes
#echo 'aesni_load="YES"' >> /boot/loader.conf
Module à charger dans /boot et non /etc/rc.conf pour un chargement plus rapide
Configuration pour une utilisation pour desktop/laptop
sysrc -f /etc/sysctl.conf kern.sched.preempt_thresh=224
Pour activer la réponse «yes» aux questions de fsck au démarrage:
sysrc fsck_y_enable=YES
Utiliser micro codes CPU
pkg install devcpu-data service microcode_update enable service microcode_update start
device driver for Intel Core on-die digital thermal sensor cpuctl pseudo device
sysrc kld_list+=coretemp sysrc kld_list+=cpuctl
Ai rencontré un soucis avec les touches Fn + brightness seulement sur le Latitude E5430. Avec le Latitude E6410 pas de soucis.
Les touches FN et luminosité -up/down ne fonctionnent pas. De plus xbindkeys ne retourne aucun code avec l'association Fn + Brightness UP / Down (Pas de Mod 2 + quelque chose)
Solution adoptée.
Installer :
pkg install xbindkeys intel-backlight
Fichier de configuration :
cat .xbindkeysrc # PERSONNAL XBINDKEYS "intel_backlight decr 10" Alt + Down "intel_backlight incr 10" Alt + Up
Lancer xbindkeys au démarrage de la session ~/.xinitrc
Ajouter cette section avant le démarrage de XFCE dans
# Démarrer xbindkeys /usr/local/bin/xbindkeys &
Pour avoir le choix entre plus Windows Manager : ici fluxbox, openbox
pkg install openbox openbox-themes obconf fluxbox fluxbox-tenr-styles-pack icewm wmakerconf windowmaker blackbox
Modifier le fichier ~/.xinitrc de cette façon
# GESTIONNAIRE X DEFAULT_SESSION=startxfce4 case $1 in o) exec openbox ;; f) exec fluxbox ;; i) icewmbg & icewmtray & exec icewm ;; w) exec wmaker ;; b) exec blackbox ;; *) exec $DEFAULT_SESSION ;; esac
Dans votre shell, créer l'alias suivant
alias x='xinit ~/.xinitrc'
A la connexion, un x lancer xfce, x o openbox x b blackbox….
Attention la version d’automount des repos ne permet pas de monter du FAT32. Utiliser cette procédure.
Attention sous FreeBSD 12.1, fusefs-ext4fuse n'est plus disponible. Utiliser sysutils/fusefs-ext2 à la place (ce module permet le montage des ext2, ext3 et ext4 en lecture / écriture).
# pkg install git # git clone https://github.com/vermaden/automount.git
(nécessaires pour compiler exfat-utils/exFAT et sysutils/fusefs-exfat)
# portsnap fetch # portsnap extract
Compilation de fusefs-exfat
# cd /usr/ports/sysutils/fusefs-exfat/ # make install clean
Accepter la licence et toutes les options par défaut
Compilation de exfat-utils
# cd /usr/ports/sysutils/exfat-utils/ # make install clean
Même procédure
Installer le reste des dépendances via pkg
# pkg install fusefs-ntfs fusefs-ext4fuse fusefs-hfsfuse fusefs-lkl fusefs-simple-mtpfs zenity
Détarer automount-1.6.1.tar.gz récupéré du git , entrez dans le dossier
Editer ce fichier de cette façon
$ cat /usr/local/etc/automount.conf USERUMOUNT=YES ATIME=NO REMOVEDIRS=YES FM="thunar" USER=ragnarok ENCODING=fr_FR.UTF-8 CODEPAGE=cp850
Installation manuelle d'automount
# cp automount.conf /usr/local/etc/automount.conf # cp automount_devd.conf /usr/local/etc/devd/automount_devd.conf # cp automount /usr/local/sbin/automount # chmod +x /usr/local/sbin/automount # /etc/rc.d/devd restart
Et hop, ça fonctionne……
A la base je n'avais pas pensé à cela, mais avec le temps j'observe un log d'automount de 350 Mo ! Il faut donc utiliser newsyslog afin de le gérer.
su - cd /etc/newsyslog.conf.d/ nano automount.conf
avec le contenu suivant :
# newsyslog for automount # Cyrille /var/log/automount.log 640 7 1000 * JC
Dès lors une archive sera créée dès que le log sera supérieur à 1 000Kb et 7 archives seront conservées.
J'ai laissé tomber dropbox. J'ai opté pour l'installation de Seafile sur mon VPS et le client GUI seafile-gui dispo dans les repos de FreeBSD, Linux sur les postes clients. Fait très bien le travail demandé ;)
Pas de portage Dropbox sous freeBSD Le kernel de freeBSD ne prend pas en charge inotify donc pas de dropbox… En tout cas dropbox ne fournit pas de client freeBSD. Reste à trouver une alternative ou utiliser wine et le client windows (parait il)… Il y aussi libnotify mais pas trop cherché dans ce sens ….
En alternative, il y a rclone qui fait très bien le travail mais en ligne de commande. Mais reste très gérable.
pkg info rclone rclone-1.43 Name : rclone Version : 1.43 Installed on : Sat Feb 23 19:02:31 2019 CET Origin : net/rclone Architecture : FreeBSD:12:amd64 Prefix : /usr/local Categories : net Licenses : MIT Maintainer : wg@FreeBSD.org WWW : https://rclone.org/ Comment : Sync files to and from various cloud services Annotations : FreeBSD_version: 1200086 repo_type : binary repository : FreeBSD Flat size : 26.1MiB Description Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage WWW: https://rclone.org/
On l'installe
# pkg install rclone
Puis on le configure
$ rclone config
Toute la doc est là Configurer rclone pour Dropbox
L'option dropbox est la 7, on valide le tout et on finit par être redirigé vers une page d'association dropbox/rclone qu'on renseigne et valide.
Sur mon système mon répertoire dropbox et dans mon /home/$USER/Dropbox et contient 2 dossiers essentiels qui seront mis à jour soit de mon PC vers la Dropbox ou de la Dropbox vers mon PC.
J'ai écrit ce script qui fonctionne sur 3 arguments * le premier : IN ou OUT : la synchronisation se fait vers la Dropbox ou depuis la Dropbox * le second : répertoire à mettre à jour : COURS ou DIR * le dernier : dry ou write : dry : on simule, write on met à jour
Puis 1 alias :
alias dropbox='/home/ragnarok/SCRIPTS/dropbox.sh'
Pour mettre à jour le répertoire DIR depuis la Dropbox vers mon PC
dropbox IN DIR write
Pour simuler une synchroniation du répertoire COURS de mon PC vers la Dropbox
dropbox OUT COURS dry
Et c'est tout ! Le script ci-dessous :
#!/bin/sh echo == DEBUG == echo "Nom du script : $0"; echo argument 1 : $1 echo argument 2 : $2 echo "Tous les arguments : $* ($# arguments)" echo == FIN DEBUG == # ========================================= case $# in 0) echo "Aucun parametre" echo "Syntaxe : $0 IN/OUT DIR/COURS";; 1) echo "Il manque un paramètre !" echo "Syntaxe : $0 IN/OUT DIR/COURS";; 2) echo "2 parametres passes au programme : $1 et $2";; 3) echo "Le 3eme argument ne peut être que --dry-run ou write";; *) echo "TROP DE PARAMETRES !" echo "Syntaxe : $0 IN/OUT DIR/COURS";; esac # ========================================= if [ $1 == "IN" ] then echo "Depuis la dropbox"; source="dropbox:/" ; dest="/home/ragnarok/Dropbox/"; elif [ $1 == "OUT" ] then echo "Vers la dropbox" ; source="/home/ragnarok/Dropbox/" ; dest="dropbox:/"; else echo "$1 : Soit IN soit OUT"; exit; fi # ========================================= if [ $2 == "DIR" ] then echo "Repertoire de DIR"; dir="DIR-2018-2019"; elif [ $2 == "COURS" ] then echo "Repertoire de COURS" dir="COURS-2018-2019"; elif [ $2 == "ecole" ] then echo "Repertoire Ecole" dir="ecole"; else echo "$2 : Soit DIR soit COURS soit ecole"; exit; fi # ========================================= if [ $3 == "dry" ] then echo "Option --dry-run activée"; option="--dry-run"; elif [ $3 == "write" ] then echo "Option: aucune. En action"; option=""; else echo "$3 : Ne peut être que dry ou write"; exit; fi # ========================================= echo "rclone sync $source$dir $dest$dir $option --progress" rclone sync $source$dir $dest$dir $option --progress echo " --------------- Done.";
Attention il faut installer le paquet i386 même si on est en 64bit, sinon erreur de segmentation.
Donc
pkg install i386-wine
Puis peaufinage via
$ winecfg
Accepter tout ce qu'il propose de télécharger et installer.
Fonctionne nickel, mais les polices sont vraiment bizarres.
Éditer ~/.config/fontconfig/fonts.conf de cette manière :
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <!-- antialias all fonts --> <match target="font"> <edit name="antialias" mode="assign"><bool>true</bool></edit> <edit name="hinting" mode="assign"><bool>true</bool></edit> <edit name="hintstyle" mode="assign"><const>hintslight</const></edit> <edit name="rgba" mode="assign"><const>rgb</const> </edit> </match> </fontconfig>
Si vous avez le message d'erreur “Aucun gestionnaire d'archive trouvé” en essayant d'extraire ou de compresser un dossier via Thunar
pkg install xarchiver
Surtout ne pas installer la version depuis les ports, elle ne passe pas (l'iDE d'aruino ne sait pas compiler) et c'est hyper casse-pieds pour la desinstaller. Préférer la version précompilée (pkg).
pkg install arduino
Si nécessaire, inclure votre $USER aux groupes operator et dialer
# sudo pw groupmod operator -m $USER # sudo pw groupmod dialer -m $USER
Donner l'accès aux périphériques USB via /etc/devfs.rules
# cat /etc/devfs.rules # # Allow operators access to usb devices. # [operator_usb=5] add path usbctl mode 0660 group operator add path 'usb/*' mode 0660 group operator add path 'ugen*' mode 0660 group operator
Prise en compte des changements
# sudo sysrc devfs_system_ruleset=operator_usb
Relance du service devfs
# sudo service devfs restart
On branche sa carte et on vérifie sa détection
$ usbconfig ... ugen0.2: <Arduino (www.arduino.cc) product 0x0043> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
Attention ne pas changer le shell du root
# chsh -s /usr/local/bin/bash {username}
grep ragnarok /etc/passwd
Cas d'un système UFS
cat /etc/fstab ## append the following to /etc/fstab file ## fdesc /dev/fd fdescfs rw 0 0
Cas d'un système ZFS (fdescfs doit être monté après la racine zfs)
cat /etc/fstab ## append the following to /etc/fstab file ## fdesc /dev/fd fdescfs rw,auto,late 0 0
add the following to your ~/.bashrc or ~/.bash_profile file: [[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \ . /usr/local/share/bash-completion/bash_completion.sh
# pkg install bash-completion
Créer un fichier .bash_aliases touch .bash_aliases Et y mettre ses alias. Si non fait, insérer cette section dans le .bashrc
# Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Jeter un oeil : VirtualBox sous freeBSD
J'avais une Linux Debian SID d'installée sur mon PC.
$ sudo fdisk -l Disque /dev/sda : 111,8 GiB, 120034123776 octets, 234441648 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x0c3bb11c Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/sda1 * 2048 143362047 143360000 68,4G 83 Linux /dev/sda2 226338814 234440703 8101890 3,9G 5 Étendue /dev/sda3 143362048 226338813 82976766 39,6G a5 FreeBSD /dev/sda5 226338816 234440703 8101888 3,9G 82 partition d'échange
Donc on voit
Configuration du grub sous LINUX Sous LINUX, éditer le fichier suivant : /etc/grub.d/40_custom et créer l'entrée ci-dessous
Attention hd0,3 car freeBSD est sur /dev/sda3, s'il était sur le 1, mettre hd0,1, sur le 2 hd0,2, sur la seconde partition d'un deuxième disque hd1,2… Donc à adapter à votre configuration
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "FreeBSD 12" { set root='(hd0,3)' kfreebsd /boot/loader }
Prendre en compte les modifications de la configuration du grub
# update-grub Création du fichier de configuration GRUB… Image Linux trouvée : /boot/vmlinuz-4.10.0-38-generic Image mémoire initiale trouvée : /boot/initrd.img-4.10.0-38-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin unknown Linux distribution trouvé sur /dev/sda3
Rebooter et la nouvelle entrée est fonctionnelle dans le grub.
Rien d'extraorinaire à faire, juste activer le trim sur les partitions montées Chez moi ada0p2 (/) et ada0p4 (/home)
Rebooter et démarrer en mode : Boot Single User (le n°2). (Il ne faut pas que les partitions soient montées)
tunefs -t enable ada0p2 tunefs -t enable ada0p4
Rebooter
Vérfier que ce soit pris en compte
tunefs -p /dev/ada0p4 | grep trim tunefs: POSIX.1e ACLs: (-a) disabled tunefs: NFSv4 ACLs: (-N) disabled tunefs: MAC multilabel: (-l) disabled tunefs: soft updates: (-n) enabled tunefs: soft update journaling: (-j) enabled tunefs: gjournal: (-J) disabled tunefs: trim: (-t) enabled tunefs: maximum blocks per file in a cylinder group: (-e) 4096 tunefs: average file size: (-f) 16384 tunefs: average number of files in a directory: (-s) 64 tunefs: minimum percentage of free space: (-m) 8% tunefs: space to hold for metadata blocks: (-k) 6408 tunefs: optimization preference: (-o) time tunefs: volume label: (-L)
Pour schéma de disque UFS Au boot du système, j'avais le message “Invalid partition table !” Une pression sur ENTER lançait cependant le système. Voici la marche suivit par régler le problème (déclarer proprement la partition active)
gpart show => 40 468862048 ada0 GPT (224G) 40 1024 1 freebsd-boot (512K) 1064 25164800 2 freebsd-ufs (12G) 25165864 16777216 3 freebsd-swap (8.0G) 41943080 398458880 4 freebsd-ufs (190G) 440401960 28460128 5 freebsd-ufs (14G)
Dans un premier temps, régénérer le secteur de boot
cd /boot gpart bootcode -b pmbr -p gptboot -i1 ada0
Si ne fonctionne touojours pas après un redémarrage, re-préciser la partition active.
[ragnarok@asgard-freebsd:~] $ sudo fdisk -a ******* Working on device /dev/ada0 ******* parameters extracted from in-core disklabel are: cylinders=465141 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=465141 heads=16 sectors/track=63 (1008 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 238 (0xee),(EFI GPT) start 1, size 468862127 (228936 Meg), flag 0 beg: cyl 0/ head 0/ sector 2; end: cyl 1023/ head 255/ sector 63 The data for partition 2 is: <UNUSED> The data for partition 3 is: <UNUSED> The data for partition 4 is: <UNUSED> Do you want to change the active partition? [n] y Supply a decimal value for "active partition"
On précise le numéro de la partition où booter et valide le reste.
On reboote et ça devrait passer
Si vous avez choisi cette option, vous devriez avoir cette sortie.
[ragnarok@asgard-freeBSD:~] $ zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 9,06G 202G 88K /zroot zroot/ROOT 3,81G 202G 88K none zroot/ROOT/default 3,81G 202G 3,81G / zroot/tmp 208K 202G 208K /tmp zroot/usr 5,24G 202G 88K /usr zroot/usr/home 4,49G 202G 4,49G /usr/home zroot/usr/ports 763M 202G 763M /usr/ports zroot/usr/src 88K 202G 88K /usr/src zroot/var 680K 202G 88K /var zroot/var/audit 88K 202G 88K /var/audit zroot/var/crash 88K 202G 88K /var/crash zroot/var/log 216K 202G 216K /var/log zroot/var/mail 112K 202G 112K /var/mail zroot/var/tmp 88K 202G 88K /var/tmp
[ragnarok@asgard-freeBSD:~] $ zfs get -r canmount zroot NAME PROPERTY VALUE SOURCE zroot canmount on default zroot/ROOT canmount on default zroot/ROOT/default canmount noauto local zroot/tmp canmount on default zroot/usr canmount off local zroot/usr/home canmount on default zroot/usr/ports canmount on default zroot/usr/src canmount on default zroot/var canmount off local zroot/var/audit canmount on default zroot/var/crash canmount on default zroot/var/log canmount on default zroot/var/mail canmount on default zroot/var/tmp canmount on default
Si problème de montage au boot, vérifier que /etc/rc.conf contienne bien cette ligne
zfs_enable="YES"
Normalement le TRIM est pris en compte par défaut
root@asgard-freeBSD:~ # sysctl vfs.zfs.trim vfs.zfs.trim.max_interval: 1 vfs.zfs.trim.timeout: 30 vfs.zfs.trim.txg_delay: 32 vfs.zfs.trim.enabled: 1
root@asgard-freeBSD:~ # sysctl -d kstat.zfs.misc.zio_trim kstat.zfs.misc.zio_trim: kstat.zfs.misc.zio_trim.failed: Number of TRIM requests that failed for reasons other than not supported kstat.zfs.misc.zio_trim.unsupported: Number of TRIM requests that failed because TRIM is not supported kstat.zfs.misc.zio_trim.success: Number of successful TRIM requests kstat.zfs.misc.zio_trim.bytes: Number of bytes successfully TRIMmed
root@asgard-freeBSD:~ # sysctl -a |grep _trim kern.cam.nda.max_trim: 256 kstat.zfs.misc.zio_trim.failed: 0 kstat.zfs.misc.zio_trim.unsupported: 0 kstat.zfs.misc.zio_trim.success: 34651 kstat.zfs.misc.zio_trim.bytes: 2751168512
OPtimisation en lecture / écriture (mais tout dépend de l'utilisation que vous en faites)
zpool add 'nom_du_zpool' cache 'nom_du_device_ssd' zpool add 'nom_du_zpool' log 'nom_du_device_ssd'
Dans /etc/sysctl.conf Ajouter cette option
kern.coredump=0
Ou celle-ci : Reroutage des fichiers core
kern.corefile=/dev/null
OU dumpdev=“NO” to your /etc/rc.conf
CSH limit coredumpsize 0 dans /etc/csh.login
BASH
ulimit -c 0 dans .bash_profile
Récupérer la liste des mises à jour
# pkg update
La déployer
# pkg upgrade
Lister les paquets gelés
# pkg -l
Geler un paquet ===
# pkg lock -y LePaquet
Dégeler un paquet
# pkg unlock LePaquet
Créer ce dossier
mkdir -p /usr/local/etc/pkg/repos
et ce fichier
cat /usr/local/etc/pkg/repos/FreeBSD.conf FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest" }
Recharger la base de données des paquets
pkg upgrade -f
Mettre à jour
pkg -vv
pkg info pkg
Pour ceux qui préfèrent compiler les paquets par eux.
Première install
# portsnap fetch # portsnap extract
Pour les fois suivantes
# portsnap fetch update
Installer un programme
# cd /usr/ports/shells/bash
Installer
# make install clean
Le supprimer
# make deinstall
Pour mettre à jour les logiciels des ports, le plus simple est d'utiliser portmaster
# cd /usr/ports/ports-mgmt/portmaster # make install clean
Lister les paquets à mettre à jour
# portmaster -L
Les mettre à jour
# portmaster -a
Portmaster peut aussi être utiliser pour gérer l'installation d'un programme. Exemple
# portmaster shells/bash
freebsd-version -k Print the version and patch level of the installed kernel. Unlike uname(1), if a new kernel has been installed but the system has not yet rebooted, freebsd-version will print the version and patch level of the new kernel. -r Print the version and patch level of the running kernel. Unlike uname(1), this is unaffected by environment variables. -u Print the version and patch level of the installed userland. These are hardcoded into freebsd-version during the build.
root@asgard-freeBSD:~ # freebsd-update fetch src component not installed, skipped Looking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching public key from update4.freebsd.org... done. Fetching metadata signature for 12.0-RELEASE from update4.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. Preparing to download files... done.
root@asgard-freeBSD:~ # freebsd-update install src component not installed, skipped Installing updates... done.
root@asgard-freeBSD:~ # uname -a FreeBSD asgard-freeBSD 12.0-RELEASE FreeBSD 12.0-RELEASE r341666 GENERIC amd64
root@asgard-freeBSD:~ # freebsd-version -u 12.0-RELEASE-p5
root@asgard-freeBSD:~ # freebsd-version -k 12.0-RELEASE-p4
# freebsd-update fetch # freebsd-update install # freebsd-update upgrade -r 12.1-RELEASE # freebsd-update install
A cette étape, rebooter le système :
# shutdown -r now
Après ce reboot, freebsd-update(8) doit être relancer avec les nouveaux composants de l'userland:
# freebsd-update install
A cette étape les utilisateurs sont invités par freebsd-update(8) à reconstruire leurs applications tiers (comme celles compilées depuis les sources (/usr/port/) afin de faire correspondre les librairies système.
Une fois fait, relancer freebsd-update(8) afin de supprimer les libraires inutiles
# freebsd-update install
Enfin rebboter sous FreeBSD 12.1-RELEASE
# shutdown -r now
Une fois rebooter, il est recommandé de régénérer le paquet pkg afin d'éviter de futurs problèmes lors des installations à venir.
# pkg-static install -f pkg
Je n'ai pas pondu tout cela tout seul, j'ai lu pas mal de docs et les forums BSD. Voici les sources indispensables à mon avis :
Et surtout