[Syslinux] Error device (Résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
UserDeleted

[Syslinux] Error device (Résolu)

Message par UserDeleted »

Bonjour,

J'ai loué un nouveau serveur dédié auprès d'OVH et comme pour le premier j'effectue mon installation d'Archlinux en démarrant en mode rescue puis en utilisant la méthode bootscrap, chose que j'avais fait à l'identique sur le serveur actuellement en fonctionnement. Malheureusement je n'arrive pas à quelque chose de concluant... En effet, lors du redémarrage final, ce dernier reste bloqué sur le message suivant (remonté par OVH car ce dernier n'est pas pourvu d'IPMI) :

Code : Tout sélectionner

error device '' not found, skipping fsck, :: mounting '' on real root mount: /new_root: no filesystem type specified You are being dropped to a recovery shell sh: can't access tty; job control turned off [rootfs /]#
J'ai refait mon installation plusieurs fois, mais rien n'y fait... Pourtant celle-ci avait parfaitement fonctionné sur l'autre serveur dédié que je loue. Le problème se situerais au niveau du bootloader, pourtant son fichier de configuration est des plus simple :

Code : Tout sélectionner

PROMPT 0
TIMEOUT 0
DEFAULT arch

LABEL arch
	LINUX ../../../vmlinuz-linux-hardened
	APPEND root=/dev/md127 rootflags=subvol=CURRENT rw
	INITRD ../../../intel-ucode.img,../../../initramfs-linux-hardened.img
Auriez-vous des pistes à explorer auxquelles je n'aurais pas pensé ? :cry:

En vous remerciant d'avance pour votre aide :wink:
Dernière modification par UserDeleted le jeu. 05 déc. 2019, 15:06, modifié 2 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device

Message par benjarobin »

Bonjour,
Quel est le contenu de /etc/mkinitcpio.conf et de /etc/mdadm.conf ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

Voici le contenu des deux fichiers demandés, sachant que le prompt avec "SRV-ATHOS" correspond au serveur fonctionnant depuis 2016 alors que celui avec "root@rescue" correspond au nouveau que j'essaye de mettre en place.

/etc/mkinitcpio.conf :
Image

/etc/mdadm.conf
Image
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [Syslinux] Error device

Message par laurent85 »

Bonjour,
Enlève autodetect ou utilise l'initramfs fallback pour voir.

Je te donne un truc, pour les install à l'aveugle sur un serveur j'installe d'abord un système "de secours" avec l'installateur automatique de l'hébergeur sur quelques Go pour être sûr qu'il va démarrer.

Ensuite je fais mon installation "complexe" à partir du système de secours. Quand c'est fait j'installe Grub, si ça démarre pas je redémarre en rescue, je chroot dans le système de secours et je réinstalle le grub du secours dans le MBR.

Reboot sur le secours, c'est plus simple d'investiguer à partir d'un système Arch "de secours" que du rescue trop limité.
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

J'ai retiré le HOOK autodetect et ai modifié le fichier syslinux.cfg pour pointer vers initramfs-linux-hardened-fallback.img. Cependant rien de mieux, toujours le même message reporté par OVH lors du démarrage :

Code : Tout sélectionner

Le serveur reste bloque durant la phase de boot sur le message :
((error device '' not found, skipping fsck, :: mounting '' on real root mount: /new_root: no filesystem type specified You are being dropped to a recovery shell sh: can't access tty; job control turned off [rootfs /]#) ) )
Un redemarrage sur un noyau standard OVH ('netboot') ne corrige pas la
situation.
Si le serveur n'était pas compatible UEFI, on arriverait pas à cette étape nous sommes d'accord ? Là il trouve bien vmlinuz-linux-hardened + initramfs-linux-hardened.img cependant c'est lors du montage de /dev/md127 dans / qu'il coince si je visualise bien ? :(
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device

Message par benjarobin »

Tu visualises bien... Ce qui me gène, c'est que le nom du device soit vide.
Perso, je n'aime pas trop syslinux, essaye avec grub, au cas où on loupe un truc
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

Je me demande si le fait que j'ai monté /dev/md126 sans /boot au lieu de /boot/efi comme préconisé dans la documentation d'Archlinux ne serait la cause. Pourtant sous ma VM cela fonctionne ! Cependant mon serveur actuellement en fonctionnement lui a le /dev/md126 dans /boot/efi, je vais tenté une nouvelle installer en ce sens ! Sinon j'essayais GRUB mais je ne connais pas ce bootloader aussi bien que Syslinux :)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device

Message par benjarobin »

Euh, syslinux ne supporte pas ce genre de montage que je sache (ou alors je n'ai pas tout compris). Peux tu détailler tes partitions et points de montage, etc... Le plus simple avec le raid est d'avoir la partition ESP montée dans /boot. La partition ESP étant en dehors du Raid.

Sinon j'avais complètement oublié, mais tu devrais vraiment utilise des UUID au lieu de la notation en /dev/mdX
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

Le nouvel essai d'installation en montant /dev/md126 dans /boot/efi toujours avec Syslinux. Cela n'a rien donné de mieux, de même qu'en replaçant le bootloader par GRUB... Je ne comprends vraiment pas ce qui coince, sachant que j'ai très bien réussi sur mon serveur actuel !

J'avais tenté d'utiliser les UUID, mais cela n'avait pas été concluant sur mon serveur actuel. Lors du démarrage il ne trouvait pas la partition contenant /.

Voici le détail de mes partitions et points de montage, sachant qu'il est le même maintenant que sur mon serveur fonctionnel :
  • /dev/md127 (448 GB - BTRFS) -> /
  • /dev/md126 (128 MB - FAT32) -> /boot/efi
  • md127 = sda2 + sdb2 en RAID1
  • md126 = sda1 + sdb1 en RAID1
  • md127 contient deux volumes BTRFS, CURRENT (celui monté dans /) et BACKUP
Ça va se terminer que je vais annuler ce nouveau serveur et rester avec celui actuel... Si le template d'OVH était plus personnalisable aussi, mais on a pas le choix du bootloader, obligation d'une partition Swap, pas de création de volume BTRFS, pas le choix de langue, etc.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device

Message par benjarobin »

Si avec les UUID il ne trouve pas la partition, c'est que tu ne fais pas correctement quelque chose (je parle avec ton serveur actuel). Après as tu essayé d'ajouter un rootdelay ?.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

Effectivement je viens de refaire un essai en remplaçant /dev/md127 par UUID=xxxx, mais j'ai pris celui retourné par la commande blkid cette fois et le redémarrage a bien fonctionné (sur mon serveur actuel). C'est bien plus facile, comme ce dernier a un KVM, je peux voir en direct la séquence de démarrage, j'ai également mit les UUID dans le fichier fstab.

Je vais essayer de faire de même sur le nouveau serveur maintenant que je vois quel UUID prendre, mais j'ai des doutes que cela résolve le problème. Comme tu as dit benjarobin : "Ce qui me gène, c'est que le nom du device soit vide". :cry:
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

Petit retour sur mes différents essais de la journée. En utilisant les UUID, j'ai réussi à redémarrer sur mon installation d'Arch ce matin ! Donc c'est bel et bien possible sur ce serveur OVH, ouf.

J'ai tenté de réinstaller diverses fois Arch, mais sur presque dix tentatives une seule a fonctionné (hors celle de ce matin). Je suis donc repassé sous Virtualbox car il est plus simple de tester ainsi et j'ai eu une installation fonctionnelle du premier coup ! Voici un récapitulatif des points de montages, fstab et syslinux.cfg :
Image

OVH ne me fournissant plus la ligne sur laquelle le démarrage bloque, je ne sais pas si c'est encore un défaut de configuration du bootloader/fstab ou si c'est ma configuration IPV6 qui est foireuse (j'avais mit du temps à trouver la bonne pour mon serveur actuel), donc je continue mes essais.
UserDeleted

Re: [Syslinux] Error device

Message par UserDeleted »

J'ai bel et bien réussi mon installation et ainsi pu faire une liste des points importants qui pouvait bloquer le démarrage :
  • La partition RAID1 dédié à l'ESP doit bien être montée dans /boot/efi ! Malgré que sur ma VM la monter directement dans /boot fonctionne sans problème, je n'ai pas d'explication.
  • Le démarrage avec le microcode du CPU n'est pas possible (https://wiki.archlinux.org/index.php/Microcode#Syslinux). Là encore sur ma VM c'est bien fonctionnel, donc je comprends pas.
  • Faire bien attention à la configuration de sa carte réseau, particulièrement l'IPV6
  • Préférer les UUID retourné par blkid et vérifié le fstab car il peut avoir de mauvais UUID de renseignés
En tout cas merci à vous tous pour votre aide ! Et si vous avez des explication concernant les points dont je n'arrive pas à comprendre, je suis preneur :wink:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device (Résolu)

Message par benjarobin »

Hum, ce n'est clairement pas logique... Après syslinux être très très limité. Grub est beaucoup plus robuste et gère bien plus de cas.
Pour moi ta configuration de syslinux est incorrect dans l'état actuelle des choses :
- Les chemins sont relatifs au fichier de configuration.
- Ici tu remonte 3 fois, mais le fichier de configuration syslinux.cfg n'est que dans EFI/syslinux/ (soit 2 dossiers...)
- syslinux ne gère pas que je sache, le chargement de fichier depuis une autre partition...

Extrait du wiki
Pour syslinux, les fichiers kernel et initramfs ont besoin d'être placés dans ESP, attendu que syslinux n'a pas (pour le moment) la capacité d'accèder à des fichiers en dehors de sa propre partition (i.e. en dehors d'ESP dans ce cas). Pour cette raison, il est recommandé de monter ESP dans /boot.
Donc ta configuration ne devrait pas fonctionner !!!

Dans ton cas, maintenant il y a quoi dans /boot/efi (dit autrement quel est le contenu de la partition ESP) ?
Peux tu donner aussi ton nouveau fstab ainsi que la configuration de syslinux

Pour moi la méthode que j'utiliserais (depuis un chroot) est :

Code : Tout sélectionner

# On démonte la partition ESP
umount /dev/md127

# On vide /boot de tout fichier
rm -rf /boot/*

# On monte la partition ESP dans /boot (adapter le fstab), et on la vide
mount /dev/md127 /boot
rm -rf /boot/*

# On réinstalle le kernel
pacman -S linux-hardened intel-ucode

# On installe Grub entièrement dans la partition ESP
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --boot-directory=/boot --debug --removable
grub-mkconfig -o /boot/grub/grub.cfg
Peux tu donner aussi la sortie de : fdisk -l
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device (Résolu)

Message par UserDeleted »

Concernant tes trois points sur la configuration Syslinux de ma VM :
  • On peut mettre les chemins de manière absolu ? /boot/vm-linux-hardened directement ?
  • En effet je remonte dans de trois crans car les trois fichiers appelés se situent dans /boot étant leur emplacement de génération par défaut
  • Ici Syslinux est bien dans la même partition puisque tout /boot est monté dans /dev/md127
Tu me demandes le contenu de /boot/efi de ma VM ou du serveur dédié ? Si c'est de ce dernier, le voici :
Image

Pour le fstab et la configuration Syslinux, les voici :
Image

Voici le retour de la commande fdisk -l :
Image
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device (Résolu)

Message par benjarobin »

UserDeleted a écrit : jeu. 05 déc. 2019, 15:06 La partition RAID1 dédié à l'ESP doit bien être montée dans /boot/efi !
UserDeleted a écrit : ven. 06 déc. 2019, 10:14 Ici Syslinux est bien dans la même partition puisque tout /boot est monté dans /dev/md127
Tu te ne contredis pas un peu ?

Comment peux tu avoir le kernel dans /boot/efi/EFI ???! Il devrait être dans /boot normalement...
Je ne sais vraiment pas ce que tu fais, mais c'est très étrange...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device (Résolu)

Message par UserDeleted »

Enfaite la partition RAID1 montée dans /boot/efi c'est sur mes serveurs dédiés, car la montée dans /boot n'avait pas l'air de fonctionner lors du démarrage . En revanche, sur ma machine virtuelle Archlinux, la partition RAID1 est montée dans /boot et le démarrage fonctionne parfaitement.
Machine virtuelle :
-> /dev/md126 = /boot
-> /dev/md127 = /

Serveur dédié :
-> /dev/md126 = /boot/efi
-> /dev/md127 = /
Comment peux tu avoir le kernel dans /boot/efi/EFI ???! Il devrait être dans /boot normalement...
En effet lorsque je lance la commence mkinitcpio -p linux-hardened, tout est généré dans /boot directement. Après je copie le nécessaire dans /boot/efi/EFI. Dans la documentation officielle, on voit bien que le fichier de configuration va chercher le kernel dans le dossier parent : https://wiki.archlinux.org/index.php/Sy ... FI_Systems

Mais il est vrai que je ne comprends pas pourquoi sous machine virtuelle, il accepte sans broncher plusieurs façon de faire par rapport aux serveurs dédiés.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17186
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux] Error device (Résolu)

Message par benjarobin »

UserDeleted a écrit : ven. 06 déc. 2019, 21:05 Après je copie le nécessaire dans /boot/efi/EFI.
A la moindre mise à jour, ton serveur ne démarre plus...
Tu dois monter la partition ESP dans /boot et bien sûr adapter la configuration de syslinux en fonction.

Supposons que :
- syslinux.cfg soit ici : EFI/syslinux/syslinux.cfg
- La partition ESP monté dans /boot (donc avec le kernel à la racine de la partition ESP)
- Alors les chemins dans ton syslinux.cfg, doivent avoir la forme suivante ../../vmlinuz-linux
UserDeleted a écrit : ven. 06 déc. 2019, 21:05Dans la documentation officielle, on voit bien que le fichier de configuration va chercher le kernel dans le dossier parent
Ce n'est qu'un exemple pour un démarrage en mode Legacy/MBR. Syslinux possède tellement de limitation en UEFI que plus grand monde doit l'utiliser, voilà pourquoi il ne doit pas y avoir d'exemple pour un démarrage UEFI.

On sinon utiliser Grub, systemd-boot, ... qui s'occupe de tout automatiquement...

Pour peut être clarifier les choses :
- Le point de montage de la partition ESP n'a aucune importance pour le bon démarrage du PC
- La seule chose importante, c'est de placer les fichiers au bon endroit dans la partition ESP, et avec les bons chemins (relatifs) dans la configuration du chargeur de démarrage (dans ton cas syslinux)
- Le point de montage n'a son importance que pour la mise à jour... Donc c'est pour cela que je t'incite plus que fortement à monter la partition ESP dans /boot, pour que la prochaine mise à jour se passe bien... Car par défaut, lors de la mise à jour le kernel est placé dans /boot. Hors on veut le kernel dans la partition ESP. C'est le moyen le plus simple d'avoir un système qui fonctionne.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
UserDeleted

Re: [Syslinux] Error device (Résolu)

Message par UserDeleted »

Oui je comprends t'es explications, surtout après une soirée complète de réveillon passé sur la remise à zéro de mon NAS en essayant de me passer de bootloader complètement ! :D J'ai appris ce que cela était possible ici : EFISTUB

Adieu donc Syslinux sur le NAS, il ne suffit que d'une commande : efibootmgr --disk /dev/sda --part 1 --create --label "Arch Linux" --loader /vmlinuz-linux-hardened --unicode 'root=UUID=xxx rootfstype=btrfs rootflags=subvol=CURRENT initrd=/intel-ucode.img initrd=/initramfs-linux-hardened.img rw' --verbose
Avec la partition dédiée à l'ESP montée directement dans /boot bien entendu !

Ni une, ni deux, une fois tous les services remit en place sur mon NAS, je m'attaque à recréer une machine virtuelle "miroir" de mon serveur dédié ! Mise à part qu'il faut veiller à bien spécifier "--metadata=1.0" pour la partition de RAID de l'ESP (toujours montée dans /boot), cela fonctionne aussi bien qu'avec mon NAS donc c'est plutôt cool. 8)

Je m'attelle à essayer sur mon serveur dédié, mais là on retombe dans l'impossibilité de démarrer, le support OVH m'indiquant :
Le serveur reste bloque durant la phase de boot sur le message :
(EMMERGANCY MODE)
J'ai quand même l'impression que l'UEFI de leur serveur n'a pas l'air complètement comme ceux de nos PC standard (mon NAS) ou celui virtualisé par VMWare (ma VM). Où alors c'est moi qui rate quelque chose ! :?: Je reviendrais à la solution avec Syslinux fonctionnelle si vraiment je n'y arrive pas de toute façon.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10707
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Syslinux] Error device (Résolu)

Message par FoolEcho »

Pour revenir rapidement là-dessus, tu ne pourras pas utiliser syslinux comme chargeur de démarrage dans un mode UEFI dès l'instant qu'il aura besoin d'aller chercher des infos sur un autre disque que là où il est présent, c'est sa limitation majeure (de base syslinux ne sait pas lire des fichiers situés sur un autre disque: en mode BIOS/Legacy un module l'autorise à le faire pour permettre de chaîner des secteurs d'amorçage d'autres disques et ainsi démarrer d'autres systèmes mais ce module n'existe même pas pour uefi -- une demande d'évolution date mais aucune suite n'a été donnée à ma connaissance -- le projet n'est pas mort mais ça reste de la correction de bugs ces dernières années) : https://wiki.archlinux.org/index.php/Sy ... I_Syslinux .

J'ai utilisé syslinux une bonne décennie (car plus proche du KISS que grub) mais en passant en UEFI je suis retourné sur grub pour des configurations multidisques/multi systèmes (desktop)... ou avec efistub directement (laptop).

Soit tu utilises grub ou autre chose en mode UEFI, soit tu dois démarres en mode bios ou bios legacy si tu veux vraiment syslinux.
«The following statement is not true. The previous statement is true.» :nage:
Répondre