Apporter des modifications dans Thinux

Nos gammes de produits Neo et Micro sont préinstallées avec notre système d'exploitation embarqué Linux, Thinux.
Thinux est basé sur Ubuntu Linux. Au moment de la rédaction de cet article, il est basé sur Ubuntu 20.04.4 LTS dans Micro 5 et Ubuntu 22.04.1 dans Micro 6. Cependant, il existe des différences significatives entre Ubuntu et Thinux. L'une d'elles est que nous incluons des pilotes spécifiques à notre matériel, qui ne sont pas disponibles dans les dépôts en amont. Nous incluons également des services système qui protègent le matériel contre les dommages. Cela peut sembler étrange aux personnes habituées à utiliser des PC avec un BIOS. Les processeurs fabriqués par Intel et AMD sont généralement assez bons pour s'auto-préserver – ils réduisent leur vitesse et désactivent certains cœurs lorsqu'ils sont proches de la surchauffe. Dans le pire des cas, ils travaillent avec le BIOS pour éteindre brusquement l'ordinateur plutôt que de le griller. Ce niveau de protection n'est toujours pas disponible avec les processeurs ARM. Le chargeur de démarrage uboot utilisé avec les systèmes ARM ne reste pas en mémoire une fois qu'il a transféré le contrôle à Linux, et ne fonctionne donc pas en arrière-plan pour protéger les composants matériels contre les dommages thermiques ou autres.
C'est pourquoi, lorsque des clients nous contactent pour désactiver ou remplacer Thinux sur nos produits basés sur ARM, nous devons les informer que cela annulerait leur garantie matérielle. Cette politique est conforme à ce que font les fabricants de téléphones mobiles basés sur Android, lorsque vous les contactez pour déverrouiller les chargeurs de démarrage. Vous devez nous appeler ou nous écrire pour obtenir le mot de passe root du système, et nous devons marquer votre appareil comme hors garantie avant de vous donner le mot de passe, si votre appareil est basé sur ARM.
Le principal changement entre Thinux et Ubuntu est que le système de fichiers racine de Thinux est monté en lecture seule. Cela signifie que vous ne pouvez pas utiliser apt et d'autres commandes pour modifier le système d'exploitation. Si vous avez le mot de passe root, vous pouvez apporter des modifications à /etc et /var. Même lorsque l'utilisateur ne possède pas le mot de passe root, les processus qui s'exécutent avec les privilèges root apportent des modifications à /etc et /var. Ces modifications ne sont en réalité pas stockées dans la partition / mais dans la partition /overlay. Vous pouvez en savoir plus sur le système de fichiers overlay sur kernel.org.
Pour apporter des modifications à /, vous devez d'abord remonter le système de fichiers / en mode lecture-écriture. Voici les commandes que vous devez exécuter dans un terminal :
su - # veuillez entrer le mot de passe root
umount -l /etc
umount -l /var
mount -o rw,remount /
Maintenant, vous pouvez apporter des modifications à /. Une fois votre travail terminé, vous pouvez redémarrer le système pour que le système de fichiers racine revienne en mode ro.
Disons que vous ne souhaitez plus utiliser la fonctionnalité de racine en lecture seule de Thinux. Pour la désactiver définitivement, vous devrez apporter les modifications suivantes à /etc/fstab. Tout d'abord, effectuez un démontage paresseux de /etc comme nous vous l'avons montré dans le segment de code précédent. Votre fichier /etc/fstab typique ressemblera à ceci :
proc /proc proc defaults 0 0
LABEL=thinux / ext4 defaults,ro,noatime 0 1
LABEL=data /overlay data defaults,noatime 0 2
mount_over /etc over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /var over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /home over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /tmp over defaults,x-systemd.requires-mounts-for=/overlay 0 0
/overlay/swapfile swap swap pri=-1,x-systemd.requires-mounts-for=/overlay 0 0
Modifiez-le pour qu'il ressemble à ceci :
proc /proc proc defaults 0 0
LABEL=thinux / ext4 defaults,rw,noatime 0 1
LABEL=data /overlay data defaults,noatime 0 2
#mount_over /etc over defaults,x-systemd.requires-mounts-for=/overlay 0 0
#mount_over /var over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /home over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /tmp over defaults,x-systemd.requires-mounts-for=/overlay 0 0
/overlay/swapfile swap swap pri=-1,x-systemd.requires-mounts-for=/overlay 0 0
Alors, pourquoi utilisons-nous un système de fichiers racine en lecture seule ? Plus de 99 % de nos clients n'ont pas besoin d'installer de nouveaux logiciels sur leurs ordinateurs. Ils utilisent leurs ordinateurs comme des clients légers ou des ordinateurs cloud – ce qui signifie qu'ils utilisent principalement le client RDP ou le navigateur web pour travailler. Les logiciels préinstallés tels que LibreOffice leur suffisent pour accomplir leur travail. Maintenant, au lieu de mettre à jour leurs ordinateurs en utilisant apt, qui met à jour des paquets individuels, nous sommes en mesure de mettre à niveau l'intégralité de leur système de fichiers racine en une seule fois, comme un blob binaire. Cela est similaire à la façon dont d'autres systèmes d'exploitation embarqués tels qu'Android ou iOS se mettent à jour (sauf qu'ils ont des applications ; nous n'en avons pas). Cela nous permet de tester très minutieusement les mises à jour que nous publions sur notre propre matériel, avant leur diffusion, et de nous assurer que tous les changements et applications rafraîchies dans la mise à jour fonctionnent bien ensemble. Nous sommes également en mesure d'empêcher que les ordinateurs des utilisateurs deviennent dysfonctionnels parce qu'une mise à niveau apt ou dpkg a été interrompue au milieu – notre système de mise à jour est capable de gérer gracieusement les arrêts brusques de l'alimentation.