[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian Jessie: boot en mode recovery où n'est pas monté en read-only



Bonjour,

On 27/03/2016 21:58, mireero wrote:

> Quelques idées/pistes:
> 
> /var (ex: /var/run/*, var/log/*), /etc (ex: /etc/udev/rules.d/70*) et /tmp vont poser problème.
> 
> Déjà, tu peux mettre /tmp en tmpfs dans /etc/fstab
> 
> Utiliser 'noatime' dans /etc/fstab
> 
> # mount -no remount,ro /dev/sda1
> // l'option 'n' pour ne pas toucher à /etc/mtab qui va se trouver du coup sur un système ro
> 
> $ fuser -v -m /
> // Pour avoir une idée des processus qui utilisent le système de fichier /
> 
> $ lsof / | awk '$4 ~ /[0-9].*w/'
> // Processus qui ont un fichier en cours d'écriture
> // Chez moi, en mode single, je n'en ai que 2, hwdb et dhclient, si je les tue, ça marche.
> 
> Tuer des services susceptibles d'écrire, par exemple:
> # service rsyslog stop
> # service network-manager stop
> # killall dhclient
> # systemctl stop systemd-journald.socket
> # systemctl stop systemd-journald.service
> 
> Ou tu peux essayer simplement:
> # telinit 1
> # mount -no remount,ro /
> 
> Ça fonctionne chez moi, cela peut sembler curieux.
> J'ai regardé un peu, c'est "/lib/init/mount-functions.sh" qui positionne une variable $rootmode en la lisant dans 'fstab'. Ce fichier est sourcé par "/etc/init.d/checkroot.sh" qui, après avoir vérifié le système de fichier et s'être assuré qu'il est bien en read-only (on se demande un peu à quoi sert l'option du kernel), le bascule en rw le cas échéant. C'est donc checkroot.sh notre cible, et tu pourrais écraser la variable $rootmode, mais il te faudrait une condition, du genre si j'ai démarré en mode rescue, t'es à ro, sinon tu restes à rw.
> En tout cas, il y a bien une différence booter directement en "single" ou booter en "multi" puis basculer en "single".
> D'ailleurs, on peut noter que checkroot.sh et dans le niveau d'exécution S (pour start), donc qu'il n'est pas ré-exécuté quand on passe de 5 à 1.
> 
> Update: il est plus probable que ce script est ignoré et que le travail est fait par systemd-remount-fs.service.
> 
> Dans fstab, on a par défaut l'option "errors=remount-ro", j'ai une idée bête, créer une erreur délibérément (bon, je sais, no comment!).
> 
> Virtualbox ne fournirait-il pas des outils pour accéder/monter la partition à partir de l'hôte (sans booter la VM donc)? C'est possible avec VMWare par exemple.
> 
> Booter sur une iso Trusty en mode recovery, faire la manip.
> 
> Comparer les configurations de Trusty et Jessie et comprendre.
> 
> Voilà, bon courage (surtout si tu te lances dans le dernier point ;) )

Merci mireero pour l'aide apportée. En fait, voici ce qu'il a suffit chez moi
(très peu de choses au final) pour remonter / en read-only (sans reboot donc)
sachant que dans mon cas noatime fait partie des options de montage et que
l'installation est une Jessie minimale :

    service rsyslog stop
    pkill dhclient
    mount -o remount,ro /

Donc en un sens mon problème pratique est résolu même si j'avoue que j'aimerais
bien comprendre qu'elles sont les options de boot du noyau qui me permettrait
de démarrer le système avec / directement en ro comme c'est le cas sous Trusty.
J'ai bien essayé de reprendre les options de boot du mode recovery de Trusty
et de les appliquer à Jessie mais sans succès car je me retrouve toujours après
le boot en rw au niveau de /. Donc si quelqu'un a des infos là dessus, ça
m'intéresse...

Voilà, merci mireero pour ton aide.

-- 
François Lafont


Reply to: