# (ro) option au noyau

**URL:** <https://www.debian-fr.org/t/ro-option-au-noyau/76285>\
**Category:** Support Debian\
**Created:** [Mars 30, 2018, 8:48 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285 "2018-03-30T20:48:09Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![kolap](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/97f17d/32.png) [@kolap](https://www.debian-fr.org/u/kolap)\
**Post date:** [Mars 30, 2018, 8:48 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/1 "2018-03-30T20:48:10Z")

</div>

hello,  
-) Est il normale que l’option “ro” a passer au noyau ne soit pas ajoutée par un update-grub /os\_prober ?

```nohighlight
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'BunsenLabs GNU/Linux 8.9 (Hydrogen) (8.9) (sur /dev/sda7)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-1caa5f76-04cd-4400-97bb-8c2f622b65c3' {
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos7'
	if [x$feature_platform_search_hint = xy]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos7' --hint-bios=hd0,msdos7 --hint-efi=hd0,msdos7 --hint-baremetal=ahci0,msdos7 1caa5f76-04cd-4400-97bb-8c2f622b65c3
	else
	  search --no-floppy --fs-uuid --set=root 1caa5f76-04cd-4400-97bb-8c2f622b65c3
	fi
	linux /vmlinuz root=/dev/sda7
	initrd /initrd.img
}

```

Si on se base sur ceci:  
Cet argument indique au noyau de monter le système de fichiers racine en lecture seule. Ceci est fait pour que le programme fsck puisse vérifier et réparer un système de fichiers Linux.

-) Cette option est elle obligatoire ?

Merci

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Mars 30, 2018, 10:00 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/2 "2018-03-30T22:00:25Z")

</div>

Le montage initial de la racine en lecture seule n’est pas obligatoire s’il n’est pas nécessaire. Il me semble d’ailleurs qu’il n’est pas nécessaire pour pouvoir vérifier le système de fichiers racine avec les versions récentes de Debian car l’initramfs peut le vérifier avant de le monter.

Ce n’est pas la seule “anomalie” de cette entrée de menu. Une autre est que la ligne de commande “linux” désigne le système de fichiers racine par son nom de périphérique /dev/sda7 au lieu de son UUID.

Il faut savoir que certains paramètres des entrées de menu d’un système GNU/Linux détecté par os-prober sont susceptibles d’être extraits du fichier /boot/grub/grub.cfg du système en question.

---

<div class="post-metadata">

**Author:** ![kolap](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/97f17d/32.png) [@kolap](https://www.debian-fr.org/u/kolap)\
**Post date:** [Mars 31, 2018, 6:32 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/3 "2018-03-31T18:32:19Z")

</div>

re,  
Merci pour le retour:wink:  
Voici tjs quelques informations:  
-) j’ai complètement abandonné windows et cela depuis deja maintenant plusieurs années, donc pc 100% linux  
-) Grub2 dans mbr  
-) Une partition primaire sda1 avec mon système principale…

```plaintext
$ apt-cache policy libc6
libc6:
  Installé : 2.19-18+deb8u10
  Candidat : 2.19-18+deb8u10
 Table de version :
 *** 2.19-18+deb8u10 0
        500 http://ftp.be.debian.org/debian/ jessie/main i386 Packages
        500 http://security.debian.org/ jessie/updates/main i386 Packages
        100 /var/lib/dpkg/status

```

-) une partition étendue sda2 avec divers partitions logiques…

En faite, a la base je n’utilise pas os\_prober, l’entrée du fichier /etc/defaut/grub est sur true

> GRUB\_DISABLE\_OS\_PROBER=«&nbsp;true&nbsp;»

Quand j’installe une distribution sur une partition logique, je n’installe jamais le gestionnaire de boot et configure cela via une configuration personnelle…  
Si on regarde le grub.cfg, ont vois que l’option «&nbsp;ro&nbsp;» est tjs passée quand un noyau est installé sur sda1…  
Extrais du grub.cfg:

```plaintext
### BEGIN /etc/grub.d/10_linux ###
menuentry 'MX GNU/Linux' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2630b494-8ca2-4672-bae9-fa29b58ab472' {
set root='hd0,msdos1'
linux	/boot/vmlinuz-4.10.1-antix.1-486-smp root=UUID=2630b494-8ca2-4672-bae9-fa29b58ab472 ro quiet
echo	'Chargement du disque mémoire initial…'
initrd	/boot/initrd.img-4.10.1-antix.1-486-smp

menuentry 'MX GNU/Linux, avec Linux 3.16.0-4-686-pae' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-686-pae-advanced-2630b494-8ca2-4672-bae9-fa29b58ab472' {
set root='hd0,msdos1'
linux	/boot/vmlinuz-3.16.0-4-686-pae root=UUID=2630b494-8ca2-4672-bae9-fa29b58ab472 ro quiet
echo	'Chargement du disque mémoire initial…'
initrd	/boot/initrd.img-3.16.0-4-686-pae

```

Par curiosité, j’ai passé a false GRUB\_DISABLE\_OS\_PROBER=«&nbsp;false&nbsp;» pour voir l’entrée dans le grub.cfg  
La j’ai remarqué que update-grub ne passait pas l’option “ro” au noyau pour une distribution sur une partition logique  
D’ou ma question pour l’option «&nbsp;ro&nbsp;» comme je configure moi même cela…  
sda1 partition primaire  
sda\* partition logique

```plaintext
$ sudo blkid
/dev/sda1: LABEL="rootMX-16" UUID="2630b494-8ca2-4672-bae9-fa29b58ab472" TYPE="ext4" PARTUUID="6b1f7ca2-01"
/dev/sda5: UUID="6835a32b-fd98-4a86-a98d-6b265b249e17" TYPE="swap" PARTUUID="6b1f7ca2-05"
/dev/sda6: UUID="b03c2da9-1914-44ef-8ac6-479d639758c8" TYPE="ext4" PARTUUID="6b1f7ca2-06"
/dev/sda7: UUID="1caa5f76-04cd-4400-97bb-8c2f622b65c3" TYPE="ext4" PARTUUID="6b1f7ca2-07"

```

merci

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Mars 31, 2018, 7:16 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/4 "2018-03-31T19:16:26Z")

</div>

Salut

ça se passe à priori dans /etc/grub.d/10\_linux du paquet grub-common où on trouve ces lignes

```auto
	linux	${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args}
	linux	${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}

```

Et c’est bien pour permettre l’exécution de fsck au boot

> **[bootparam(7) - Linux manual page](https://man7.org/linux/man-pages/man7/bootparam.7.html)**

> [@](#):
>
> ```
> 'ro' and 'rw'_
> The 'ro' option tells the kernel to mount the root filesystem_
> as 'read-only' so that filesystem consistency check programs_
> (fsck) can do their work on a quiescent filesystem. No pro‐_
> cesses can write to files on the filesystem in question until_
> it is 'remounted' as read/write capable, for example, by_
> 'mount -w -n -o remount /'. (See also mount(8).)_
> 
> The 'rw' option tells the kernel to mount the root filesystem_
> read/write. This is the default.
> 
> ```

Si tu te retrouves en rw, option par défaut, c’est que tu n’exécute pas etc/grub.d/10\_linux

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Mars 31, 2018, 8:50 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/5 "2018-03-31T20:50:41Z")

</div>

> [@kolap](#):
>
> Quand j’installe une distribution sur une partition logique, je n’installe jamais le gestionnaire de boot et configure cela via une configuration personnelle

D’après le test que je viens de faire, grub-mkconfig produit exactement ce résultat quand le système ajouté grâce à os-prober n’a pas de fichier /boot/grub/grub.cfg à partir duquel les paramètres du noyau pourraient être copiés : root spécifié par son nom de périphérique et pas d’autre option.

> [@grandtoubab](#):
>
> ça se passe à priori dans /etc/grub.d/10\_linux

Mais non. Ce script génère les entrées de menu des noyaux du système depuis lequel grub-mkconfig est lancé. Les entrées des autres systèmes détectés sont générées par 30\_os-prober.

> [@grandtoubab](#):
>
> Et c’est bien pour permettre l’exécution de fsck au boot

Comme je l’ai déjà écrit, cette option est inutile quand le fsck sur la racine est lancé depuis l’initramfs, comme c’est le cas depuis Jessie.

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Avril 1, 2018, 8:36 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/6 "2018-04-01T08:36:35Z")

</div>

Que le fsck soit lancé pat initramfs, ok

```auto
root@debian:/var/run/initramfs# ls -alrt
total 4
-rw-r--r-- 1 root root 0 avril 1 10:17 fsck-root
-rw-r--r-- 1 root root 169 avril 1 10:17 fsck.log
drwxr-xr-x 2 root root 80 avril 1 10:17 .
drwxr-xr-x 31 root root 840 avril 1 10:17 ..
root@debian:/var/run/initramfs# cat fsck.log
Log of fsck -C -a -T -t ext4 /dev/sda1 
Sun Apr 1 08:17:01 2018

debian: clean, 258365/1246032 files, 3170173/5001216 blocks

Sun Apr 1 08:17:02 2018
----------------
root@debian:/var/run/initramfs#

Le log est en UTC.

Mais si on est en rw est-ce que fsck pourra fonctionner?

```

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 1, 2018, 8:52 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/7 "2018-04-01T08:52:42Z")

</div>

Oui puisque l’initramfs peut exécuter fsck avant de monter la racine, donc peu importe que la racine soit ensuite montée en lecture seule ou en lecture-écriture.

C’était différent quand le système n’utilisait pas d’initrd ou initramfs et le système de fichiers racine était monté directement par le noyau (1), avant l’exécution d’init et de tout autre programme, ou bien avec les systèmes comme les versions de Debian antérieures à Jessie où le fsck sur la racine fait partie de la séquence d’init, donc a lieu après le montage de la racine.

Si tu n’es pas convaincu, tu peux éditer la ligne de commande du noyau dans le menu de démarrage pour remplacer `ro` par `rw` et voir ce qui se passe.

(1) J’écris à l’imparfait mais j’ai encore une machine sous Debian sans initramfs ni udev avec un noyau maison qui nomme le disque hda.

---

<div class="post-metadata">

**Author:** ![kolap](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/97f17d/32.png) [@kolap](https://www.debian-fr.org/u/kolap)\
**Post date:** [Avril 2, 2018, 3:21 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/8 "2018-04-02T15:21:15Z")

</div>

Merci a vous pour les informations, qui me permette de me diriger dans mes recherches…  
-) ceci peut il confirmer que l’option «&nbsp;ro&nbsp;» n’est pas obligatoire ?

> root@mx1:/media/sda7\># pwd  
> /media/sda7/var/log  
> root@mx1:/media/sda7/var/log # grep sda7 syslog  
> Mar 27 22:28:20 debian kernel: [0.000000] Kernel command line: BOOT\_IMAGE=(hd0,msdos7)/boot/vmlinuz-3.16.0-4-586 root=/dev/sda7  
> Mar 27 22:28:20 debian systemd-fsck[141]: /dev/sda7 : propre, 89312/1335296 fichiers, 519134/5339392 blocs  
> Mar 27 22:28:20 debian kernel: [3.454922] sda: sda1 sda2 \< sda5 sda6 sda7 \>  
> Mar 27 22:28:20 debian kernel: [10.117216] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)  
> Mar 27 22:28:20 debian kernel: [17.900354] EXT4-fs (sda7): re-mounted. Opts: errors=remount-ro

> root@mx1:/media/sda7/var/log # grep sda7 daemon.log  
> Mar 27 22:28:20 debian systemd-fsck[141]: /dev/sda7 : propre, 89312/1335296 fichiers, 519134/5339392 blocs

merci

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 2, 2018, 10:08 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/9 "2018-04-02T22:08:28Z")

</div>

Si j’ai bien compris, tu as installé cette distribution BunsenLabs sans chargeur d’amorçage ? Donc elle n’a pas de fichier /boot/grub/grub.cfg, et c’est ce qui explique les paramètres de l’entrée de menu créée avec os-prober.

Pour y remédier, tu peux installer le paquet grub2-common dans BunsenLabs et y exécuter la commande `update-grub` pour générer un fichier grub.cfg. Cela n’installera pas de chargeur d’amorçage. Ensuite depuis la distribution principale, (MX) `update-grub` devrait regénérer les entrées de menu pour BunsenLabs avec UUID=xxx au lieu de sda7 (plus robuste car le nom du disque peut varier, pas l’UUID) et l’option ro.

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Avril 3, 2018, 6:38 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/10 "2018-04-03T06:38:52Z")

</div>

salut  
On peut générer aussi soi-même une ligne de menu grub dans un fichier /boot/grub/custom.cfg  
Exemple, dans mon installation Debian j’ai ajouté une ligne pour démarrer mon image Android qui est sous /

```auto
root@debian:/Phoenix# ls 
data initrd.img kernel ramdisk.img system.sfs
root@debian:/Phoenix#

```

debian:/boot/grub$ cat custom.cfg

```auto
menuentry 'Phoenix OS' --class android-x86 {
	search --set=root --file /Phoenix/kernel	
	linux /Phoenix/kernel root=/dev/ram0 logo.showlogo=1 androidboot.hardware=android_x86 androidboot.selinux=permissive SERIAL=random SRC= DATA=data
	initrd /Phoenix/initrd.img 
}

```

---

<div class="post-metadata">

**Author:** ![kolap](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/97f17d/32.png) [@kolap](https://www.debian-fr.org/u/kolap)\
**Post date:** [Avril 4, 2018, 8:35 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/11 "2018-04-04T20:35:48Z")

</div>

re,

> [@PascalHambourg](#):
>
> Si j’ai bien compris, tu as installé cette distribution BunsenLabs sans chargeur d’amorçage ? Donc elle n’a pas de fichier /boot/grub/grub.cfg

Exactement …

> [@PascalHambourg](#):
>
> c’est ce qui explique les paramètres de l’entrée de menu créée avec os-prober.
> 
> Pour y remédier, tu peux installer le paquet grub2-common dans BunsenLabs et y exécuter la commande update-grub pour générer un fichier grub.cfg. Cela n’installera pas de chargeur d’amorçage. Ensuite depuis la distribution principale, (MX) update-grub devrait regénérer les entrées de menu pour BunsenLabs avec UUID=xxx au lieu de sda7 (plus robuste car le nom du disque peut varier, pas l’UUID) et l’option ro.

Intéressant, cela va me permettre d’avancé dans mon apprentissage sur la compréhension de «&nbsp;pour résumer&nbsp;» Grub/boot…

Je m’explique en deux mots, sur ce pc les ports usb sont inutilisables et le graveur on oublie.  
De par ce fait, j’utilise la méthode «&nbsp;iso stockées sur DD et grub&nbsp;» pour démarrer, installer une distribution ou autres…

> [@grandtoubab](#):
>
> salut
> 
> On peut générer aussi soi-même une ligne de menu grub dans un fichier /boot/grub/custom.cfg
> 
> Exemple, dans mon installation Debian j’ai ajouté une ligne pour démarrer mon image Android qui est sous /

intéressante aussi, sans entrer dans le détail, cela correspond a"pour" une utilisation frugal, non ?

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Avril 4, 2018, 8:54 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/12 "2018-04-04T20:54:48Z")

</div>

/boot/grub/custom.cfg permet de définir soi même ce que l’on veut .

on peut aussi le faire dans /etc/grub.d/40\_custom

cat /etc/grub.d/40\_custom

```auto
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the exec tail' line above.

```

[https://openclassrooms.com/courses/apprenez-a-maitriser-grub/configurez-grub2](https://openclassrooms.com/courses/apprenez-a-maitriser-grub/configurez-grub2)

[https://www.gnu.org/software/grub/manual/grub/html\_node/Configuration.html#Configuration](https://www.gnu.org/software/grub/manual/grub/html_node/Configuration.html#Configuration)

---

<div class="post-metadata">

**Author:** ![kolap](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/97f17d/32.png) [@kolap](https://www.debian-fr.org/u/kolap)\
**Post date:** [Avril 4, 2018, 9:11 UTC](https://www.debian-fr.org/t/ro-option-au-noyau/76285/13 "2018-04-04T21:11:09Z")

</div>

De mon côté j’utilise cela comme ceci  
-) une entrée dans /40\_custom qui pointe vers un fichier qui me sert de configuration

```auto
$ cat /etc/grub.d/40_custom 

```

```auto
menuentry "Distribs lancées depuis leur fichier iso" { 
set root='hd0,msdos1'
configfile /isos/00_isoboot.cfg
}
```

-) Je le configure pour démarrer une iso et ou pour démarrer une distribution sur une autre partition

1. démarrer l’iso  

```auto
$ cat /isos/00_isoboot.cfg 

```

```auto
menuentry "bl-Deuterium-i386 install" {
set root='hd0,msdos1'		
set isofile="/isos/bl-Deuterium-i386+NonPAE_20170429.iso"
loopback loop (hd0,msdos1)$isofile
linux (loop)/install/gtk/vmlinuz findiso=${isofile} video=vesa:ywrap,mtrr vga=788 -- quiet
initrd (loop)/install/gtk/initrd.gz
}
```

1. Démarrer la distribution sur sda7  

```auto
$ cat /isos/00_isoboot.cfg 

```

```auto
menuentry "bl-Deuterium-i386 sur sda7" {
insmod part_msdos
insmod ext2
set root='hd0,msdos7'		
linux (hd0,msdos7)/boot/vmlinuz-3.16.0-4-586 root=/dev/sda7 pcie_aspm=force
initrd (hd0,msdos7)/boot/initrd.img-3.16.0-4-586
}
```
