[gull] [resolu] syslinux --mbr absent de la version Linux ?!?
Frederic Dumas
f.dumas at ellis.siteparc.fr
Wed May 13 13:02:37 CEST 2026
Hello,
pour ceux qui auront un jour à utiliser install-mbr et syslinux, voici le fin mot de l'histoire. A priori, peu de monde, tant tout est automatisé dans les distributions Linux modernes. Précisément, mon cas d'usage ne concernait pas Linux.
- 1 -
Le bootloader installé par syslinux --mbr sous DOS n'est pas le même que le bootloader installé par install-mbr. Ce dernier est plus sophistiqué, offre des options, et surtout, intègre une signature absente du bootloader de syslinux.
Voilà donc tiré au clair l'étrange "incompatibilité" de install-mbr -l, quand je lui donnais à relire un bootloader précédemment installé avec syslinux:
>> Et pourtant sous Linux,
>>
>> # install-mbr -vl /dev/sda
>>
>> retourne la message d'erreur:
>>
>> Copying code from /dev/sda
>> install-mbr:/dev/sda: Failed to find MBR signature.
>
> Es-tu sûr que /dev/sda == d: ?
Oui, /dev/sda sous Linux et d: sous DOS désignaient bien le même disque. Simplement, la "signature" à laquelle l'énigmatique message de install-mbr fait référence **n'est pas** la traditionnelle signature 0x55 0xAA, mais sa signature interne, indépendante de tout standard, liés à ses options. Source: LLM - mais c'est plausible et corrobore mes essais-erreurs.
> La page de man de install-mbr précise:
> BUGS
> The operation of --list may be confusing.
Ça c'est sans doute de l'humour de développeur, qui a préféré prendre du temps pour ajouter cette ligne au sens ambigüe dans le man de install-mbr, plutôt que de donner au message d'erreur lui-même un sens pertinent, par exemple "Failed to find bootloader own signature in MBR". Probablement la même charge de travail, mais combien plus gratifiant de se dire que, grâce à cet humour potache, des centaines de personnes, au cours des années ultérieures, se gratteront un peu la tête, voir s'échangeront quelques messages pour se demander KESKIVEUDIR ?
- 2 -
À part ce début un peu rugueux, il n'y a pas d'incompatibilité entre install-mbr et syslinux. Dans son fonctionnement standard, le bootloader de install-mbr fait ce que font habituellement tous les bootloaders (sauf celui de GRUB): identifier dans la table des partitions laquelle porte le drapeau "boot", et donner la main au second loader se trouvant dans le Volume Boot Record de la partition concernée.
Installer le bootloader de install-mbr, sans tirer profit de ses options avancées, ou installer (depuis DOS uniquement) le bootlader de syslinux, revient finalement au même: les deux bootloaders passent rapidement la main au même second loader, celui installé par Syslinux dans le VBR.
Le temps passé ne sera pas perdu grâce à une trace écrite de la procédure, pour y revenir quelques années plus tard, quand install-mbr et syslinux seront utiles pour un autre projet. Pour ceux qui en auront un jour besoin, mes notes sont disponibles sur ce wiki:
https://wiki.kolibrios.org/wiki/Installing_KolibriOS_on_a_HD_drive_/_CF_card
- 3 -
Fouiller le sujet m'a fait comprendre mieux qu'à l'époque pourquoi GRUB fut une galère, les rares fois où j'ai déplacé une partition Linux sur une machine équipée d'un BIOS: le bootloader de GRUB ne porte aucun intérêt à la table des partitions, au drapeau "boot", à la valeur de l'offset désignant où est localisée cette partition sur le disque. Il code en dur ces infos dans son bootloader à lui. Du coup, quand on fait un petit coup de gparted pour bouger les choses au sein du disque, les adresses de blocs connues de GRUB deviennent obsolètes. Source: LLM - mais ici aussi c'est plausible et ça corrobore quelques arrachages de cheveux passés...
Tout ça pour dire que quand on touche au boot, c'est assez peu user-friendly, et sur ce sujet, les LLM apportent une aide documentaire plutôt efficace. Simplement, tous les modèles ne se valent pas, je finis par ne plus solliciter que Sonnet de Claude.ai. Promo gratuite. Mais c'est la rançon de l'efficacité.
--
Frédéric Dumas
f.dumas at ellis.siteparc.fr
> Le 1 mai 2026 à 11:43, Félix Hauri via gull <gull at forum.linux-gull.ch> a écrit :
>
> Le Thu, Apr 30, 2026 at 08:24:53PM +0200, Frederic Dumas via gull a écrit :
>
>> Je reste perplexe. S'il y a un truc semé d'embuches, c'est les MBR,
>> jamais normalisés, et qui "juste marchent" parce que tout le monde a
>> copié sur IBM puis Microsoft.
>
> dd if=/dev/disk count=1 | gzip >mdr.gz
>
> dd od=/dev/sometargetdisk < <(zcat mdr.gz)
>
> MS-DOS ne dispose pas d'outils simple pour ce genre de trucs.
>
>> HexEdit voit bien 0x55 et 0xAA aux offsets 0xFE et 0xFF du disque en question. Ce MBR a été généré sous FreeDOS par la commande:
>>
>> syslinux --install --mbr --active d:
>>
>> Et pourtant sous Linux,
>>
>> # install-mbr -vl /dev/sda
>
> L'option -l de la commande implique: ``--no-act''
>>
>> retourne la message d'erreur:
>>
>> Copying code from /dev/sda
>> install-mbr:/dev/sda: Failed to find MBR signature.
>
> Es-tu sûr que /dev/sda == d: ?
>
>> Il s'agit évidemment du même disque. Donc déjà, pour la compatibilité
>> entre les deux outils, ce n'est pas gagné.
>
> Je ne sais quoi te répondre, je n'ai jamais **travaillé** sous MS-DOS/Window
> J'ai longtemps utilisé syslinux et me souviens avoir utlisé install-mbr.
> Il existe égallement une syntaxe particulière pour la commande mkfs.vfat,
> en particulier l'option --mbr[=y|yes|n|no|a|auto]
>
> La page de man de install-mbr précise:
> BUGS
> The operation of --list may be confusing.
>
>> Que les auteurs de syslinux aient "omis" d'intégrer l'option de
>> création du MBR dans la version Linux, alors qu'elle existe dans la
>> version DOS, à première vue ça manque de bon sens.
> Non, je ne pense pas qu'il s'agisse d'un oubli. Mais plutôt que sous Linux,
> des commandes basiques telle que ``dd'' sont prévues pour ce genre
> d'opérations. L'option --mbr à été ajoutée à la version MS-DOS/FreeDOS pour
> palier un manque.
>
>> Un MBR doit être personnalisé, pour passer la main au code qui se
>> trouve dans le VBR, au premier octet de la partition de boot.
> (VBR ou PBR j'ai vu les deux dénominations, mais depuis peu. cela
> semble plus utilisé sur NTFS et consors)
>
>> Et ce serait à l'utilisateur de se débrouiller pour calculer lui même
>> l'offset ? Ou le développement de syslinux n'aurait jamais été achevé
> Voir le paquet mbr:
> apt source mbr
> C'est dans ce paquet que se trouve la commande ``install-mbr''.
> $ ls -gh install-mbr.c
> -rw-rw-r-- 1 felix 36K 21 fév 2021 install-mbr.c
> 36Kb, ce n'est pas rien. Calculs d'offsets basés sur la table de partition
> et la taille de ton cheni.
>
>> ? Très surprenant. Et dommage, parce que sous DOS, syslinux est
>> tellement simple d'usage, comparé par exemple à la syntaxe imposée par
>> Grub.
> Un petit truc à comprendre, mais sous linux c'est très simple égallement.
>
>> Je reste sur un doute.
> J'ai beaucoup mis à contribution QEMU (puis KVM-QEMU), pour tester mes
> bricolages sur les boot (grub, syslinux, mbr mais aussi raid, lvm et
> cryptsetup... mon prochain projet sera de démarrer avec un root (/) monté
> en DR:DB, soit un raid sur deux hosts indépendants, donc 2 partition ROOT
> dédiées pour commencer, puis une seule partition / pour les deux machines,
> en jouant avec des overlays... )
>
> --
> Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> https://forum.linux-gull.ch/mailman/listinfo/gull
More information about the gull
mailing list