hello,
-) Est il normale que l’option “ro” a passer au noyau ne soit pas ajoutée par un update-grub /os_prober ?
### 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.
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.
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…
-) 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=« true »
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 « ro » est tjs passée quand un noyau est installé sur sda1…
Extrais du grub.cfg:
### 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=« false » 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 « ro » comme je configure moi même cela…
sda1 partition primaire
sda* partition logique
ça se passe à priori dans /etc/grub.d/10_linux du paquet grub-common où on trouve ces lignes
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
Si tu te retrouves en rw, option par défaut, c’est que tu n’exécute pas etc/grub.d/10_linux
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.
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.
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.
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?
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.
Merci a vous pour les informations, qui me permette de me diriger dans mes recherches…
-) ceci peut il confirmer que l’option « ro » n’est pas obligatoire ?
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.
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 /
root@debian:/Phoenix# ls
data initrd.img kernel ramdisk.img system.sfs
root@debian:/Phoenix#
Intéressant, cela va me permettre d’avancé dans mon apprentissage sur la compréhension de « pour résumer » 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 « iso stockées sur DD et grub » pour démarrer, installer une distribution ou autres…
intéressante aussi, sans entrer dans le détail, cela correspond a"pour" une utilisation frugal, non ?
/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
#!/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.