Forum Linux.général / en read-only dans le fstab

Posté par  .
Étiquettes : aucune
0
22
avr.
2009
Bonjour,

Un de mes système tourne sur une compact flash, avec un /var et un /home monté ailleurs. Je me permet donc de remonter la partition root / en read-only avec la commande sudo mount -o remount,ro /.

En revanche, quand j'essai de le mettre au démarrage, ca ne passe pas : le / reste en rw.

none /tmp tmpfs defaults 0 0
/dev/sda1 / ext3 ro,defaults 0 1
/dev/sdb1 /home ext3 defaults 0 1
/dev/sdb2 /srv ext3 defaults 0 1
/dev/sdb3 /var ext3 defaults 0 1
/dev/sdb4 swap swap defaults 0 0


ro,defaults ou defaults,ro, même chose.

Donc si quelqu'un a une petite idée...
  • # rc.local

    Posté par  . Évalué à 2.

    Et mettre dans /etc/rc.local
    mount -o remount,ro /
    C'est pas très propre peut-être mais après le boot, ça peut passer.
    • [^] # Re: rc.local

      Posté par  . Évalué à 2.

      Oui j'ai pensé à ça. M'enfin là je me demande juste pourquoi le /etc/fstab est sciemment ignoré.
  • # Ligne de commande du kernel

    Posté par  . Évalué à 3.

    Il me semble qu'il faut dire à l'initrd (qui le dira surement à init) de monter root en read-only : rajoute "ro" à la fin de la ligne des paramètres du kernel dans ton bootloader.
    • [^] # Re: Ligne de commande du kernel

      Posté par  . Évalué à 2.

      J'ai déjà : kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/b03ad30e-cf9e-4407-87f5-8ed77a632f90 ro

      Ça devrait suffir non ?
      • [^] # Re: Ligne de commande du kernel

        Posté par  (site web personnel) . Évalué à 3.

        Ca c'est quand le noyau monte /, mais après, si tu as un initrd, c'est lui qui fait le remontage de / en fonction de fstab. Il faut donc le mettre a jour après modification de ton fstab.
        • [^] # Re: Ligne de commande du kernel

          Posté par  . Évalué à 1.

          Ce n'est pas le noyau qui monte / dans la plupart des cas aujourd'hui, c'est l'initrd (qui est un initramfs aujourd'hui, initrd est le nom historique). A moins que tu n'aies justement pas d'initrd.
      • [^] # Re: Ligne de commande du kernel

        Posté par  . Évalué à 2.

        Normalement, oui...
        Après, en pratique, faudrait peut-être avoir ton dmesg pour voir ce qu'il s'y passe.
        Le mieux pour voir ce qu'il se passe, c'est de regarder ce que fait ton initrd, puis ce que fait init, mais ça demande un peu de recherche ...
        • [^] # Re: Ligne de commande du kernel

          Posté par  . Évalué à 1.

          Euh j'ai grepé vite fait le dmesg, rien trouvé de particulier : http://rafb.net/p/Xkbt9u95.html

          Après concernant la procédure d'init je n'ai pas la moindre idée de comment ça se passe... Je suis sur archlinux sur cette machine, le système d'init est peut-être différent par rapport à d'autres distributions.
          • [^] # Re: Ligne de commande du kernel

            Posté par  . Évalué à 2.

            Faut pas seulement greper, faut aussi lire ...
            Ya des grosses erreurs DMA juste après le premier montage, ce qui fait que la ligne est resetée, et peut-être que le montage est modifié (pourtant, ça je ne le vois pas). Ta carte CF n'a pas l'air de supporter le mode qu'elle annonce (UDMA 66) alors le kernel passe en UDMA44. Tu devrais essayer de passer en paramètre au kernel un mode DMA un peu plus "bas" pour ta CF (j'avoue que j'ai la flemme de chercher le nom du paramètre ... mais ce sera du coté des options de la libata).
  • # defaults

    Posté par  . Évalué à 3.

    defaults : rw, suid, dev, exec, auto, nouser et async.
    Donc utiliser defaults et ro me semble contradictoire. Personnellement, je n'utilise pas defaults pour mes partitions en lecture seule.
    • [^] # Re: defaults

      Posté par  . Évalué à 2.

      Bien vu, et à ce moment là le problème vient du fait que ro est placé avant defaults : c'est toujours le dernier qui compte. Donc mettre defaults,ro comme option devrait résoudre le problème.
      • [^] # Re: defaults

        Posté par  . Évalué à 1.

        Non, comme j'ai dit j'ai testé ro,defaults et defaults,ro ; c'est la meme chose.

        J'ai tenté autre chose, ceci :

        /dev/sda1 / ext3 ro,suid,dev,exec,auto,nouser,async 0 1

        Et finalement, rien de plus. Toujours rw, et j'ai vérifié, je peux écrire sur le /.

        D'ailleurs autre chose, si je mount -o remount,ro /, mount m'annonce toujours rw, par contre je ne peux pas écrire.

        Bref... toujours rien :(
        • [^] # Re: defaults

          Posté par  . Évalué à 2.

          Pour l'histoire du mount qui affiche des trucs différents, fait un :
          ln -s /etc/mtab /proc/mounts
          Quand tu bosses sur un système en read-only c'est beaucoup mieux (même indispensable, car mount va modifier /etc/mtab). D'ailleurs, ça me fait penser que c'est peut-être ça le problème : ça fait chier mount alors il y a quelqu'un qui te le mets en rw dans ton dos ?...
          En tous cas, c'est une modif que j'ai vu faire dans tous les linux embarqués

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.