web-dev-qa-db-fra.com

Comment rendre Ubuntu "résistant aux pertes de puissance"?

J'aime utiliser un système sans surveillance pour chaque utilisation quotidienne du "kiosque".

Cependant, le système peut être éteint à tout moment sans que personne ne se soit arrêté correctement auparavant. Par défaut, Ubuntu ne devrait pas être arrêté en cas de panne de courant. Après le redémarrage après une panne de courant, vous pouvez exécuter fsck pour vérifier le système de fichiers et indiquer au système de redémarrer après avoir terminé. Ainsi, même si aucune donnée de configuration n'est corrompue, la machine risque de ne pas démarrer correctement après une panne de courant. J'ai donc testé quelques solutions de contournement:

  1. remplacez la priorité fsck de montage racine par 0 (dernier champ de l’entrée de racine fstabname__) qui empêche l’exécution de fsckaprès chaque panne de courant. Toutefois, le système peut alors démarrer avec une installation en lecture seule montée sur la racine, ce qui n’est pas prévu par de nombreux services et donne lieu à une invite de connexion à la console à la place de la connexion graphique.

  2. Remplacez errrors=remount-ro par errors=continue. Cela donne à penser qu’un système de fichiers incohérent risque d’entraîner de nouvelles pertes de données. Cependant, avec fsckactivé à nouveau, cela devrait augmenter les performances de démarrage du système après une panne de courant. Alors j'ai laissé tomber 1).

  3. Reconfigurez grub2 pour utiliser un délai d'expiration d'option par défaut normal après un échec du démarrage. Pour cela, j'ai ajouté GRUB_RECORDFAIL_TIMEOUT=0 à /etc/default/grub.

Cependant, il est difficile de savoir si ces piratages protègent le système contre les coupures de courant. Des idées? Plus on peut faire?

18
dronus

Pour les applications de kiosque, le problème est résolu en utilisant une partition racine en lecture seule. En outre, toutes les modifications apportées ou enregistrées par les utilisateurs sont annulées au prochain redémarrage.

Overlayfs peut être utilisé pour superposer la partition en lecture seule à une mémoire vive tempfs en écriture.

Il existe un script qui aide à créer une telle configuration au bas de https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash . Le script contient les instructions pour configurer ceci:

  • placez le fichier dans/etc/initramfs-tools/scripts/init-bottom/root-ro
  • Sudo chmod 0755 root-ro
  • Sudo update-initramfs -u

Je suggère d'ajouter GRUB_RECORDFAIL_TIMEOUT=0 à /etc/default/grub et d'exécuter Sudo update-grub également, sinon le menu de démarrage peut apparaître sans délai d'expiration.

Après cela, redémarrez. La machine démarre alors en mode lecture seule, ce qui peut être vérifié par mountname__. Toute modification appliquée disparaîtra au prochain redémarrage. Pour apporter des modifications, installer des logiciels et des mises à jour, etc., vous devez simplement entrer dans le menu GRUB, appuyer sur epour modifier les lignes de commande de démarrage et ajouter disable-root-ro=true à la ligne commençant par kernel. Appuyez sur F10 pour continuer à démarrer. Vous pouvez ensuite utiliser mountpour confirmer que root est monté en écriture, comme d’habitude. Effectuez vos modifications et redémarrez, le système est à nouveau en lecture seule.

16
dronus

Quelques fois après un redémarrage malpropre (disons une coupure de courant ou un bouton de réinitialisation enfoncé ou même une panique du noyau), le système ne démarre pas en vous demandant d'appuyer sur "y" pour qu'un fsck répare la partition.

Si vous souhaitez éviter cela, éditez/etc/default/rcS et changez:

FSCKFIX=no

À:

FSCKFIX=yes

Cela garantira que cette réparation est exécutée automatiquement sans vous y inviter.

L'inconvénient est peut-être que vous pouvez perdre des données et que vous voudrez peut-être extraire le disque dur et le cloner en premier s'il y a un élément critique non sauvegardé.

Par exemple, si votre contrôleur de disque dur est défaillant et que fsck a faussement identifié la partition comme cassée et tente de la réparer, cela peut entraîner une perte de données qui pourrait sinon être évitée. Je ne l'ai jamais expérimenté moi-même et j'ai traité près d'un millier de serveurs au cours des 7 dernières années environ, mais vous devez néanmoins garder cela à l'esprit.

9
Roman Gaufman

À compter d’aujourd’hui, pour une solution en lecture seule d’un kiosque, vous pouvez également installer le package overlayrootde

Sudo apt-get install overlayroot

ce qui fournira facilement une solution complète comme celle de la réponse approuvée. Il permet également la commande bénéfique

Sudo overlay-chroot

qui se connectera à un shell dans lequel l'ancien disque de base en lecture seule est monté sur /. Il est alors possible d'apporter des modifications au système protégé, comme par exemple, et d'utiliser par exemple apt-get pour installer les packages sur l'ancien disque en lecture seule. Toutefois, il est vivement recommandé de redémarrer l'ordinateur après avoir quitté Shell, car les fichiers écrasés de manière temporaire sur RAM peuvent masquer ceux qui viennent d'être installés.

6
dronus