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
[email protected]




> Le 1 mai 2026 à 11:43, Félix Hauri via gull <[email protected]> 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  -  <[email protected]>  -  http://www.f-hauri.ch
> _______________________________________________
> gull mailing list
> [email protected]
> https://forum.linux-gull.ch/mailman/listinfo/gull



_______________________________________________
gull mailing list
[email protected]
https://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à