Installer OpenBSD 6.7 sur un Thinkpad T490

simplicité n’est pas synonyme de facilité.

Voici les quelques étapes que j’ai suivies pour installer OpenBSD 6.7 sur un Lenovo Thinkpad T490.

Configuration du BIOS

Désactiver les périphériques qui ne sont pas supportés par OpenBSD ou qui ne seront pas utilisés.

  • Security > IO Ports: Bluethooth, Fingerprint Reader = Disabled

Désactiver le Secure Boot qui empêche les OS non-sécuritaires de démarrer.

  • Security > Secure Boot = Disabled
  • Startup: UEFI/Legacy Boot = UEFI Only

Appuyer sur F10 pour sauvegarder et redémarrer.

Écrire l’image sur une clé USB

# dd if=install67.fs of=/dev/rsd1c bs=1m

Redémarrer l’ordi en sélectionnant la clé usb comme disque d’amorçage (Enter, F12).

Installation

Sélectionner le (S)hell en tapant S, Enter.

Afficher les disques durs

# sysctl hw.disknames
hw.disknames=sd0:,rd0:5002a2104c89d6f6,sd1:3bd615e698d75c63

Afficher les partitions actuelles sur sd0:

# disklabel sd0

Si sd0 n’apparait pas dans /dev/ vous aurai des messages du type disklabel: DIOCGDINFO: Inappropriate ioctl or device. Il faut alors créer sd0 manuellement:

# cd /dev && sh MAKEDEV sd0

Effacer le disque dur au complet. Créer une table de partition GUID (GPT) avec une partition RAID.

# dd if=/dev/urandom of=/dev/rsd0c bs=1m
# fdisk -iy -g -b 960 sd0
# disklabel -E sd0
Label
> a a
offset: [1024]
size: [500117105]
FS type: [4.2BSD] RAID
> w
> q
No label changes:
#

Créer un disque virtuel encrypté avec un mot de passe fort. Effacer le premier meg sur le nouveau disque (FAQ).

# bioctl -c C -l sd0a softraid0
# cd /dev && sh MAKEDEV sd2
# dd if=/dev/zero of=/dev/rsd2c bs=1m count=1
# exit

Sélectionner (I)nstall et répondre aux questions. L’installateur vous aidera à créer les partitions, le mot de passe root, un utilisateur, extraire les paquets du système, configurer le fuseau horaire et la langue du clavier, activer xenodm.

Débrancher la clé USB et redémarrer OpenBSD à partir du disque dur.

Exécuter syspatch(8) pour mettre les dernière mises à jour.

# syspatch

Mettre à jour les firmwares pour activer la carte wifi.

# fw_update

Augmenter la limite de mémoire dans login.conf(5):

# cp /etc/login.conf /etc/login.conf.orig
# sed -i 's/datasize-cur=768M/datasize-cur=4096M/' /etc/login.conf
# sed -i 's/datasize-max=768M/datasize-max=4096M/' /etc/login.conf

doas

Donner des droits à votre super-utilisateur dans /etc/doas.conf:

# usermod -G wheel phil
# cat /etc/doas.conf
permit persist keepenv phil
permit nopass  :wheel cmd /sbin/disklabel
permit nopass  :wheel cmd /sbin/umount
permit nopass  :wheel cmd /sbin/shutdown
permit nopass  :wheel cmd /sbin/reboot
permit nopass  :wheel cmd /sbin/mount
permit nopass  :wheel cmd /usr/sbin/zzz
permit nopass  :wheel cmd /usr/sbin/ZZZ

wsconsctl

cat << EOF > /etc/wsconsctl.conf

keyboard.bell.volume=0 display.brightness=80 EOF

rc.shutdown

Scripts à exécuter au shutdown

echo “su prx -c ‘/usr/local/bin/mpd –kill’ >> /etc/rc.shutdown echo “su prx /home/prx/bin/prxsync push” >> /etc/rc.shutdown

Configurer les cartes réseau

# echo '192.168.1.1' > /etc/mygate
# echo 'up' > /etc/hostname.em0
# cat /etc/hostname.iwm0
join SSID wpakey votre_cle_wpa
up
# cat /etc/hostname.trunk0
trunkproto failover trunkport em0 trunkport iwm0
dhcp

Ajouter le NAS:

# echo '192.168.1.8 nas' >> /etc/hosts

https://www.openbsd.org/faq/faq6.html

Activer apmd(8):

# rcctl enable apmd
# rcctl set apmd flags -A -z 7
# rcctl start apmd
apmd (ok)

Redémarrer.

Post-installation

/tmp en ram

Je monte /tmp en ram, et j’attribue 1/10 de la RAM disponible pour ça.

On commente avant tout la ligne contenant déjà une entrée pour /tmp dans /etc/fstab.

# sed -i '/\/tmp /s/^/\#/' /etc/fstab
# printf "swap /tmp mfs rw,nodev,nosuid,-s=%sB 0 0\n" \
    $(dmesg |awk '/avail mem/ { print int($4 / 10)}') \
    >> /etc/fstab
# chmod 1777 /tmp

/home en 700

$ chmod 0700 $HOME

Utilisation d’imprimante

J’ai une imprimante USB, je ne souhaite pas qu’elle soit détectée comme “ulpt”.

Donc :

echo "disable ulpt" >> /etc/bsd.re-config

softdeps,noatime

L’option softdeps permet d’accélérer l’utilisation des disques. Attention, en cas de crash, il y a plus de risques d’avoir des pertes malgré le caractère très conservateur du système de fichier d’OpenBSD.

sed -i ‘s/rw,/rw,softdep,/g’ /etc/fstab

On peut aller encore plus loin en ne tenant pas compte des dates d’accès (noatime) :

sed -i ‘s/rw,/rw,softdep,noatime,/g’ /etc/fstab

Ajouter noatime dans fstab(5) pour réduire la fréquence d’écriture au disque dur:

# cp /etc/fstab /etc/fstab.orig
# sed -i 's/rw/rw,noatime/' /etc/fstab

Modifier /etc/installurl avec un mirroir proche de votre endroit. installurl(5)

Installer les ports utilisés sur l’ancienne machine. pkg_info -tm > pkglist pour obtenir la liste des ports installés. Copier pkglist sur le nouvel ordinateur et taper:

# pkg_add -l pkglist

Activer smtpd(8), httpd(8), ifstated(8), ntpd(8), unwind(8).

Restaurer les fichiers de l’ancien système avec duplicity.

# duplicity file:///mnt/nas/backup/thinkpad/home /home/phil
# duplicity file:///mnt/nas/backup/thinkpad/etc /etc.old
# duplicity file:///mnt/nas/backup/www /var/www/htdoc

Modifier les fichiers dans /etc au besoin (/etc/hosts, etc)

Autologin

Si on est le seul utilisateur de la machine et que l’ensemble est chiffré et qu’on éteint son ordi lorsqu’on ne l’utilise pas, alors on peut activer l’autologin pour xenodm :

echo 'DisplayManager._0.autoLogin: user' >> /etc/X11/xenodm/xenodm-config

Dans ce cas, je vous conseille de désactiver la possibilité de fermer la session graphique avec Ctrl-Shift-backspace. Sinon, n’importe qui peut prendre le contrôle de votre session même si vous l’avez verrouillée avec xlock (ou autre).

cat << EOF >> /etc/X11/xorg.conf
Section "ServerFlags"
    Option "DontZap" "true"
EndSection
EOF

voilà

Guides utiles