#26 Le 20/07/2015, à 10:51
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
salut,
merci à vous pour l'échange très instructif..
Et oui, JE N'AI PAS LE CHOIX , l'extinction se fait par coupure d'Alimentation .
c'est un panel PC tactile (avec un programme en mode "kiosque" sous openbox) qui est embarqué dans un coffret industriel qui n'a qu'un interrupteur de marche/arrêt.. si quand j'ai commencé ce projet, j'avais eu plus de compétences (et surtout plus de temps alloué), je serais partit sur une solution basée sur buildroot (et encore j'aurai eu à régler d'autres problèmes tel que la création de packages buildroot avec la gestion de leur dépendances, etc.. ).. mais aujourd'hui, le système est "finit" fonctionnellement parlant. Il ne me reste plus qu'à le rendre fiable. Je n'ai pas besoin de log, les seules choses qui sont amenées à changer, ce sont les paramètres réseaux qui sont réécrit si besoin à l'aide d'un script lancé depuis l'interface tactile et cela est fait juste une fois à l'installation. En gros, une fois paramétré, aucune sauvegarde ou autre log n'a besoin d'être effectué.
pour l'instant mon fstab ressemble à ça :
cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=2b68585d-06ee-4357-a119-19811164e86b / ext4 noatime,discard,errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=c1ba8189-5fd3-4ea1-845e-ed34c6e01a6e none swap sw 0 0
tmpfs /tmp tmpfs defaults,size=1g 0 0
tmpfs /var/log tmpfs defaults,nosuid,nodev,noatime,mode=0755,size=5% 0 0
tmpfs /var/cache/apt/archives tmpfs defaults,size=2g 0 0
tmpfs /home/user/.cache tmpfs defaults,size=1g 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=1g 0 0
j'ai voulu mettre / comme ceci (avec l'option read only en plus): UUID=2b68585d-06ee-4357-a119-19811164e86b / ext4 ro, noatime,discard,errors=remount-ro 0 1
mais dans ce cas, j'ai un problème au démarrage et le PC passe en mode Low Graphics..
nota : pour info, certains paramètres viennent du fait que le disque est un SSD.
Edit :
pour info , voilà mon GRUB:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=40 quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=true
GRUB_RECORDFAIL_TIMEOUT=0
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
et dans /etc/default/rcS
j'ai ajouté ça:
FSCKFIX=yes
Dernière modification par zodd (Le 21/07/2015, à 10:12)
Hors ligne
#27 Le 20/07/2015, à 19:28
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
Je pense que le home de l'utilisateur devrait être accessible en écriture.
Mais il faut aussi éviter les corruptions en cas de coupure.
Solution : aufs.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#28 Le 21/07/2015, à 10:16
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
merci, je regarde comment faire ça avec aufs... on peut s'en servir dans fstab?
j'ai trouvé ce tuto assez clair:
http://www.thegeekstuff.com/2013/05/linux-aufs/
mais du coup je ne peux pas faire ça? (ro sur / et mount pour le home à la dernière ligne) :
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=2b68585d-06ee-4357-a119-19811164e86b / ext4 ro,noatime,discard,errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=c1ba8189-5fd3-4ea1-845e-ed34c6e01a6e none swap sw 0 0
tmpfs /tmp tmpfs defaults,size=1g 0 0
tmpfs /var/log tmpfs defaults,nosuid,nodev,noatime,mode=0755,size=5% 0 0
tmpfs /var/cache/apt/archives tmpfs defaults,size=2g 0 0
tmpfs /home/user/.cache tmpfs defaults,size=1g 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=1g 0 0
tmpfs /home/user tmpfs rw,defaults 0 1
Edit: je viens de tester.. c'est bizarre, mon home n'est pas reconnu en tant que tel.. ça boot comme si il était vierge et mon programme qui est dans le home ne se lance pas.. mais ça a résolu le souci de problème low graphics..
je suppose que c'est là que aufs intervient??? à moins qu'une simple modification du montage dans /home/user (que je n'ai pas besoin d'avoir dans tmpfs) dans fstab suffise ..
Dernière modification par zodd (Le 21/07/2015, à 11:02)
Hors ligne
#29 Le 21/07/2015, à 10:20
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
Si, tu peux mettre /home/user en tmpfs, mais du coup le répertoire sera vide à chaque allumage, ce n'est pas nécessairement ce que tu veux (j'imagine que les logiciels ont des paramètres que tu veux conserver...)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#30 Le 21/07/2015, à 11:04
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
bien vu , cf mon Edit un peu plus haut, c'est exactement ce que j'ai eut ^^
du coup j'ai une autre solution peut être plus propre qui est de mettre mon programme dans /opt ??
ha , et j'avais désactivé les mises à jour auto pour éviter d'avoir des fenêtres et forcément là j'ai eu droit à quelques fenêtre de proposition d'upgrade vers 14.04 et de mise en garde comme quoi les mises à jour sont désactivé..
Dernière modification par zodd (Le 21/07/2015, à 11:06)
Hors ligne
#31 Le 21/07/2015, à 11:16
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
du coup j'ai une autre solution peut être plus propre qui est de mettre mon programme dans /opt ??
Ton programme oui... Mais tes paramètres utilisateurs ?
je suppose que c'est là que aufs intervient???
Exactement : avec aufs tu associes le stockage sur disque dur (pour les données à conserver entre sessions) et un tmpfs (pour les données qui varient pendant l'utilisation).
Par contre, toute modification sur la session sera perdue pour la session suivante (mais c'est de toute façon préférable pour une utilisation de type kiosque).
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#32 Le 21/07/2015, à 11:48
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
oui c'est exactement ce que je veux faire.. j'ai besoin de conserver les paramètres utilisateurs.. et une fois tout paramétré à part certains fichiers de conf que mon programme aura à changer avec un remount en rw temporaire, il n'y aura rien à conserver entre deux session.
par contre j'ai du mal à voir comment utiliser aufs au démarrage pour réaliser cette opération..
il faut dans un script d'init que je lance ça? :
mount -t aufs -o br=/tmpfs=rw:/home/user=ro -o udba=reval none /tmp/aufs-root/
Hors ligne
#33 Le 21/07/2015, à 12:07
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
Ça fait tellement longtemps que je n'ai pas utilisé aufs, je ne saurais pas te dire si tes options sont OK.
Je crois qu'il faudra changer des choses, parce que là tu dis de monter aufs sur /tmp/aufs-root alors que toi tu as besoin de monter sur /home/user.
Ce que je peux dire par contre, c'est que tout ce que tu fais avec la commande "mount" peut être placé dans le fstab.
Imaginons que la commande que tu montres est correcte (ce que je ne peux pas confirmer), alors tu pourrais mettre dans fstab :
none /tmp/aufs-root aufs br=/tmpfs=rw:/home/user=ro,udba=reval 0 0
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#34 Le 21/07/2015, à 13:22
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
en fait ce qui me chagrine c'est qu'il faudrait que je fasse ça et ça me semble bizarre:
none /home/user aufs br=/tmpfs=rw:/home/user=ro,udba=reval 0 0
Hors ligne
#35 Le 21/07/2015, à 13:35
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
Si j'ai bien tout compris, je propose la chose suivante :
- tes données utilisateur tu les mets dans /opt/user au lieu de /home/user et tu vides complètement /home/user, puis tu crées un point de montage pour les données variables :
mv /home/user /opt
mkdir /home/user
mkdir /opt/variable-user
chown user.user /home/user
chown user.user /opt/variable-user
- tu crées un tmpfs pour les données variables et puis tu associe tout ça dans ton aufs :
tmpfs /opt/variable-user tmpfs rw,defaults 0 1
none /home/user aufs br=/opt/variable-user=rw:/opt/user=ro,udba=reval 0 0
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#36 Le 21/07/2015, à 13:37
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
ok j'ai compris , je teste ça .
Merci beaucoup ^^
Hors ligne
#37 Le 21/07/2015, à 13:58
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
SUPER, ça fonctionne !!!
du coup j'ai encore une question, car il m'est venu une autre idée , est ce que selon toi, faire ça aurait il le même résultat ? :
# / was on /dev/sda1 during installation
UUID=2b68585d-06ee-4357-a119-19811164e86b / ext4 ro,noatime,discard,errors=remount-ro 0 1
....
UUID=2b68585d-06ee-4357-a119-19811164e86b /home/user ext4 rw,defaults 0 0
Dernière modification par zodd (Le 21/07/2015, à 13:59)
Hors ligne
#38 Le 21/07/2015, à 14:01
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
Bah là tu monterais la racine de ton système dans ton répertoire utilisateur, en lecture écriture.
Tu trouverais donc par exemple les fichiers :
- /home/user/etc/fstab
- /home/user/bin/bash
- /home/user/usr/bin/wget
... etc.
En plus, ça voudrait dire que tu montes ton système de fichiers ext4 en lecture/écriture, donc au redémarrage ça devrait vérifier s'il n'y a pas eu corruption, etc.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#39 Le 21/07/2015, à 14:16
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
oui effectivement je me suis planté en exprimant mon idée..
en fait on n'a pas le choix? car je ne peux pas sans utiliser aufs, monter / en ro , puis remonter seulement /home/user en rw ?
edit: désolé d'être un peu lourd, mais c'est pour être sur d'avoir bien compris pourquo l'utilisation de aufs et le déplacement de /home/user dans /opt est incontournable.
Dernière modification par zodd (Le 21/07/2015, à 14:22)
Hors ligne
#40 Le 21/07/2015, à 14:22
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
je ne peux pas sans utiliser aufs, monter / en ro , puis remonter seulement /home/user en rw ?
Dans ce cas tu dois faire une partition à part pour /home/user.
Mais du coup c'est une partition qui sera montée en lecture/écriture, donc risque de corruption lors d'un arrêt brutal, etc.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#41 Le 21/07/2015, à 14:51
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
ok merci pour toutes tes réponse vraiment super instructives et comme je l'ai ajouté dans l'édit de mon message précédent, "désolé d'être un peu lourd, mais c'était pour être sur d'avoir bien compris pourquoi l'utilisation de aufs et le déplacement de /home/user dans /opt est incontournable."
Enfin, j'ai bien envie de laisser le cache utilisateur en tmpfs, ça ne me fait rien qu'il soit vide à chaque démarrage et ça préserve le disque dur SSD. N'hésite pas à me corriger s'il te plait si c'est une erreur.. ^^
Hors ligne
#42 Le 21/07/2015, à 15:00
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
j'ai bien envie de laisser le cache utilisateur en tmpfs, ça ne me fait rien qu'il soit vide à chaque démarrage et ça préserve le disque dur SSD.
Bah les modifications à /home/user étant déjà en tmpfs par l'intermédiaire de ce que tu as fait avec aufs, il n'est pas nécessaire de faire le tmpfs spécifique à .cache
(par contre, fais gaffe à la taille donnée à /opt/variable-user, sans option ça fait 50% de la RAM, peut-être est-ce trop, peut-être est-ce trop peu...)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#43 Le 21/07/2015, à 15:06
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
50% de RAM, c'est plus qu'il n'en faut, mais rien de dramatique je pense..
Faudrait que je regarde comment est occupée la ram pour être sur.. sachant , si je ne dis pas de bêtise, qu'avec tmpfs, c'est la taille max qui est définit et non pas la taille à réserver dés le départ? en gros l'allocation est dynamique?
(oui c'est vrai tu as raison pour le cache, fait chaud et ça me colle le cerveau.. ^^ )
Hors ligne
#44 Le 21/07/2015, à 15:10
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
en gros l'allocation est dynamique?
Ouaip. Juste si ça se remplit à fond ça peut poser problème...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#45 Le 21/07/2015, à 15:12
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
normalement ça ne devrait pas poser de soucis car très peu de ram est utilisée par le système..
par contre à la place, du cache , j'ai mis ça:
tmpfs /var/lib/sudo/user/ tmpfs defaults,size=10M 0 0
j'ai ajouté ça car sinon j'avais un message d'erreur sur le premier
sudo mount -o remount,rw /
Edit :
arrrgghh mais du coup j'ai ce message :
sudo: /var/lib/sudo/bmti writable by non-owner (041777), should be mode 0700
mais je pense savoir d'où ça vient , je corrige et je poste la bonne version si tout va bien, que ça profite à tout le monde
Edit :
correction:
tmpfs /var/lib/sudo/user/ tmpfs mode=0700,size=10M 0 0
Dernière modification par zodd (Le 21/07/2015, à 16:05)
Hors ligne
#46 Le 21/07/2015, à 15:15
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
En effet, ça semble logique
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#47 Le 21/07/2015, à 15:33
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
arfff.. j'ai l'impression que c'est pas possible de restreindre les droits juste à ce répertoires vu qu'il est monté dans tmpfs accessible par tous.. (si je dis pas de bêtises , mais si j'ai bon, le message d'erreur n'est pas dramatique car il n'empêche pas le re-montage en rw..)
Hors ligne
#48 Le 21/07/2015, à 15:37
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
Regarde les options du montage de tmpfs, notamment mode, uid et gid.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#49 Le 21/07/2015, à 15:43
- zodd
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
ok je regarde ça ^^ (je pensé que l'utilisation des options uid et gid c'était pour les "Formats non-Linux " )
au passage j'en profite pour une autre question concernant les périphériques de type port séries et clés USB.
En gros j'ai des trucs qui arrive sur un port série et je fait le tri des données et je les log sur une clé connecté au coffret...
en gros là il faut aussi que le monte /dev en tmpfs je suppose ou pas la peine? si oui, si la clé branchée a une taille supérieur à ma ram , ça va poser problème non?
Dernière modification par zodd (Le 21/07/2015, à 15:49)
Hors ligne
#50 Le 21/07/2015, à 15:50
- tiramiseb
Re : [Résolu] Eteindre par coupure d'alimentation - FS en lecture seule
il faut aussi que le monte /dev en tmpfs je suppose ou pas la peine?
/dev est normalement déjà un truc de type tmpfs. Menfin en fait ça dépend de ta version du système.
Que donne :
mount
?
si la clé branché a une taille supérieur à ma ram , ça va poser problème non?
Ben non, pourquoi ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne