Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Boot sur un disque non géré par le bios

8 réponses
Avatar
testeur
Bonjour à tous.
Les nouvelles cartes mères étant assez avares en terme de connecteurs IDE, j'ai dû rajouter un carte
additionnelle (contrôleur VIA VT6421) pour connecter quelques anciens périphériques.
Mon système principal XP-SP3, sur disque SATA, voit tous les périphériques (3 disques Sata, 2 IDE, 2
graveurs IDE) et fonctionne parfaitement..
J'ai également un système W7 (sur disque Sata) et essaye un multiboot de XP avec un système W2000
(sur disque IDE)

Mon problème :
La carte VT6421, n'a pas de bios, donc on ne peut pas booter sur un disque connecté sur cette carte
directement par sélection à partir du bios, mais la technique est connue, il suffit normalement de
rajouter le driver ntbootdd.sys sur la séquence d'un disque bootable.
Le disque W2000 étant sur le contrôleur VT6421, j'ai copié le driver (VIAMRAID.SYS) du contrôleur
dans le fichier NTBOOTDD.SYS et adapté l'entrée du boot.ini en conséquence, soit :

[Boot Loader]
timeout=5
Default=multi(0)disk(0)rdisk(0)partition(1)\winxp2
[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\winxp2="M0D0P1 Windows XP Professionnel" /noexecute=optin
/fastdetect

scsi(0)disk(4)rdisk(0)partition(1)\WINNT="S0D4P1 Windows 2000 Professionnel" /sos /bootlog

C:\CMDCONS\BOOTSECT.DAT="Console de récupération Microsoft Windows XP" /cmdcons

Pour vérifier la séquence des disques vue du bios, j'ai adapté la console de récupération (rajouté
les drivers nécéssaires) pour quelle voit tous les disques,
ce qui donne bien (commande MAP ARC)
disque XP : S multi(0)disk(0)rdisk(0)partition(1)
disque W2K : C scsi(0)disk(4)rdisk(0)partition(1)

Mais, je n'arrive pas dans cette configuration à booter sur le disque W2000 ( à partir du boot.ini
sur le disque XP).
Pourtant j'avais déjà fait cette manip sur une précédente machine (sur un système principal en W2K)
mais avec un vrai disque scsi (sur controleur adaptec sans bios);

Le message d'erreur est du type :
Windows n'a pas pu démarrer en raison d'un problème de configuration matérielle d'un disque de
l'ordinateur.

Bien sur si je monte le disque W2000 sur un contrôleur IDE standard, je peux booter dessus, soit
directement à partir du bios, soit via le boot.ini de XP adapté).

Donc on dirait que le driver ntbootdd.sys n'est pas pris en compte.(j'ai testé avec la version
viamraid de XP et celle de W2k)
Est ce une problème de XP, ou j'ai raté quelque chose.

Merci d'avance à ceux qui auraient une idée.

Olivier

8 réponses

Avatar
testeur
Bon, mon sujet manifestement ne passionne pas les foules.

Pour ma satisfaction personnelle, j'aimerai quand même comprendre pourquoi cette configuration ne
fonctionne pas.
Pourtant en décortiquant le NTLDR de XP, il fait toujours appel à ntbootdd.sys, si l'entrée dans
boot.ini commence par SCSI.
Donc je ne vois pas ou est l'erreur.
Par acquis de conscience j'ai fait des variations dans le numéro du disque dans l'entée boot.ini,
mais toujours le même résultat.

Donc merci de me donner des pistes supplémentaires.

Olivier
Avatar
Th.A.C
Le 26/03/2010 14:12, testeur a écrit :
Bon, mon sujet manifestement ne passionne pas les foules.

Pour ma satisfaction personnelle, j'aimerai quand même comprendre pourquoi cette configuration ne
fonctionne pas.
Pourtant en décortiquant le NTLDR de XP, il fait toujours appel à ntbootdd.sys, si l'entrée dans
boot.ini commence par SCSI.
Donc je ne vois pas ou est l'erreur.
Par acquis de conscience j'ai fait des variations dans le numéro du disque dans l'entée boot.ini,
mais toujours le même résultat.

Donc merci de me donner des pistes supplémentaires.

Olivier





est-ce que ton pilote est totalement compatible avec un pilote scsi?

au cas ou:
http://www.bellamyjc.org/fr/windowsnt.html#bootini
Avatar
testeur
C'est en fait un driver AHCI , mais, dans la base de registre, il est classé dans les Services dans
le groupe SCSI Miniport, au même titre que le driver standard AHCI ahcix86.sys ou aha154x.sys qui
lui est un vrai driver SCSI (adaptec).

Par contre je ne sais pas s'il respecte toutes les conventions d'un driver SCSI, il est identifié
comme
VIA AHCI RAID DRIVER FOR WIN 2000/XP

Quelqu'un peut il confirmer que seuls les "vrais" drivers SCSI sont pris en charge par le module
NTBOOTDD.SYS

Olivier
Avatar
Jean-Claude BELLAMY
"testeur" <olivier; a écrit dans le message de
groupe de discussion : #
C'est en fait un driver AHCI , mais, dans la base de registre, il est
classé dans les Services dans le groupe SCSI Miniport, au même titre que
le driver standard AHCI ahcix86.sys ou aha154x.sys qui lui est un vrai
driver SCSI (adaptec).

Par contre je ne sais pas s'il respecte toutes les conventions d'un driver
SCSI, il est identifié comme
VIA AHCI RAID DRIVER FOR WIN 2000/XP

Quelqu'un peut il confirmer que seuls les "vrais" drivers SCSI sont pris
en charge par le module NTBOOTDD.SYS



Je ne vais pas répondre à ta question, parce que je n'ai jamais expérimenté
cela, mais je voudrais apporter quelques précisions :
========= J'avais copié le paragraphe suivant dans un article du MSDN (aujourd'hui
supprimé, merci MS!) :
NTBOOTDD.SYS
required only if you are using the scsi() syntax
in the Boot.ini file. This file is not present in the
root folder if you are using the multi() syntax.

Par ailleurs, ce n'est pas UN driver particulier d'origine Microsoft comme
on pourrait le supposer, mais au contraire ce n'est rien d'autre qu'une
COPIE du driver du contrôleur SCSI utilisé (p.ex. "aic78xx.sys",
"aha154x.sys", ...)

Ce nom de NTBOOTDD.YS est générique, afin d'avoir toujours la même structure
de partition.
Si le boot.ini contient une syntaxe ARC "SCSI", alors NTLDR va aller
chercher systématiquement le fichier "C:NTBOOTDD.SYS", sans avoir besoin de
savoir que c'est en réalité (p.ex.) le fichier d'origine Adaptec
"AIC78XX.SYS" ou "AHA154X.SYS".

Avec une syntaxe ARC "MULTI" (la plus courante), et uniquement des disques
SCSI, ce fichier n'est pas nécessaire car NTLDR va utiliser le 1er des 2
disques du 1er adaptateur SCSI (driver chargé par le BIOS en 1er).

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Avatar
testeur
Merci, je connaissais cet article de Microsoft, et j'avais déjà appliqué cette recette pour booter
sur un vrai disque SCSI sur une ancienne machine avec Windows 2000.
J'ai bien appliqué le même principe, copy et rename du driver de la carte en ntbootdd.sys.
Mon seul doute c'est qu'a la base ce n'est pas un vrai driver SCSI (bien qu'il soit vu comme tel
dans les services Windows) mais un driver AHCI.

Je ne sais pas tracer dans la phase de boot si NTLDR appelle vraiment ntbootdd.sys et si oui s'il y
a un code retour.
Existe t il des outils pour ça ?

Olivier
Avatar
Michel__D
Bonjour,

testeur a écrit :
Bonjour à tous.
Les nouvelles cartes mères étant assez avares en terme de connecteurs IDE, j'ai dû rajouter un carte
additionnelle (contrôleur VIA VT6421) pour connecter quelques anciens périphériques.
Mon système principal XP-SP3, sur disque SATA, voit tous les périphériques (3 disques Sata, 2 IDE, 2
graveurs IDE) et fonctionne parfaitement..
J'ai également un système W7 (sur disque Sata) et essaye un multiboot de XP avec un système W2000
(sur disque IDE)

Mon problème :
La carte VT6421, n'a pas de bios, donc on ne peut pas booter sur un disque connecté sur cette carte
directement par sélection à partir du bios, mais la technique est connue, il suffit normalement de
rajouter le driver ntbootdd.sys sur la séquence d'un disque bootable.
Le disque W2000 étant sur le contrôleur VT6421, j'ai copié le driver (VIAMRAID.SYS) du contrôleur
dans le fichier NTBOOTDD.SYS et adapté l'entrée du boot.ini en conséquence, soit :

[Boot Loader]
timeout=5
Default=multi(0)disk(0)rdisk(0)partition(1)winxp2
[operating systems]

multi(0)disk(0)rdisk(0)partition(1)winxp2="M0D0P1 Windows XP Professionnel" /noexecute=optin
/fastdetect

scsi(0)disk(4)rdisk(0)partition(1)WINNT="S0D4P1 Windows 2000 Professionnel" /sos /bootlog

C:CMDCONSBOOTSECT.DAT="Console de récupération Microsoft Windows XP" /cmdcons

Pour vérifier la séquence des disques vue du bios, j'ai adapté la console de récupération (rajouté
les drivers nécéssaires) pour quelle voit tous les disques,
ce qui donne bien (commande MAP ARC)
disque XP : S multi(0)disk(0)rdisk(0)partition(1)
disque W2K : C scsi(0)disk(4)rdisk(0)partition(1)

Mais, je n'arrive pas dans cette configuration à booter sur le disque W2000 ( à partir du boot.ini
sur le disque XP).
Pourtant j'avais déjà fait cette manip sur une précédente machine (sur un système principal en W2K)
mais avec un vrai disque scsi (sur controleur adaptec sans bios);

Le message d'erreur est du type :
Windows n'a pas pu démarrer en raison d'un problème de configuration matérielle d'un disque de
l'ordinateur.

Bien sur si je monte le disque W2000 sur un contrôleur IDE standard, je peux booter dessus, soit
directement à partir du bios, soit via le boot.ini de XP adapté).

Donc on dirait que le driver ntbootdd.sys n'est pas pris en compte.(j'ai testé avec la version
viamraid de XP et celle de W2k)
Est ce une problème de XP, ou j'ai raté quelque chose.

Merci d'avance à ceux qui auraient une idée.

Olivier



J'ai pas bien tout compris, voici dans l'ordre mes interrogations ?

1) Quel est le disque de boot lorsque tu veux démarrer ton W2000 ?

2) Ton disque avec W2000 est de type IDE, as-tu essayé avec la syntaxe multi(0)disk(0)rdisk(x)... ?
(donc sans driver particulier et le disque avec W2000 n'étant pas le disque de boot)
Avatar
testeur
"J'ai pas bien tout compris, voici dans l'ordre mes interrogations ?

1) Quel est le disque de boot lorsque tu veux démarrer ton W2000 ?"

Je démarre dans le bios sur le disque XP en SATA natif géré par le bios, qui contient le multiboot.

"2) Ton disque avec W2000 est de type IDE, as-tu essayé avec la syntaxe multi(0)disk(0)rdisk(x)... ?
(donc sans driver particulier et le disque avec W2000 n'étant pas le disque de boot)"

C'est le premier test que j'avais fait, avec toutes les variantes de numéro rdisk, mais le disque
n'est jamais reconnu.
C'est pour cela, qu'a partir de la commande Map Arc de la console de récupération, j'ai vu que le
disque était considéré comme un SCSI.

Merci quand même de faire avancer le schmilblick.

Olivier
Avatar
Jean-Claude BELLAMY
"testeur" <olivier; a écrit dans le message de
groupe de discussion :
Merci, je connaissais cet article de Microsoft, et j'avais déjà appliqué
cette recette pour booter sur un vrai disque SCSI sur une ancienne machine
avec Windows 2000.
J'ai bien appliqué le même principe, copy et rename du driver de la carte
en ntbootdd.sys.
Mon seul doute c'est qu'a la base ce n'est pas un vrai driver SCSI (bien
qu'il soit vu comme tel dans les services Windows) mais un driver AHCI.

Je ne sais pas tracer dans la phase de boot si NTLDR appelle vraiment
ntbootdd.sys et si oui s'il y a un code retour.

Existe t il des outils pour ça ?



Tu peux toujours utiliser un debogueur !

NTLDR est analogue à un .com (pas de table de relocations d'adresses), mais
dépassant un segment de 64 ko (le NTLDR de XP fait 263 ko)
Il démarre bille en tête par une instruction de saut :
13F8:0100 E9D501 JMP 02D8

Aux offsets 0x386D8 et 0x36E9 on trouve la chaine "NTBOOTDD.SYS".


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr