Généralités
Le site d'origine est là
Quelques avantages de ces disquettes :
- support de nombreuses cartes réseau
- support du clavier français
- changement de nom microsoft à chaque boot permettant d'utiliser
la même disquette sur plusieurs machines en même temps sans avoir
de problème de nom dupliqué
- propose des outils comme ping, ipconfig, ssh, scp, ...
- le fait d'utiliser des archives cab compressées permet de mettre
pas mal de chose sur la disquette
Attention: dans le cas d'une utilisation avec ghost, il n'y a pas la place
pour ghost.exe sur la disquette. Il faut donc forcément qu'il soit
dans un dossier partagé sur un serveur et que la disquette fasse un
"net use z: \\serveur\partage" pour y donner accès.
Vue Globale de l'organisation de la disquette
Dossiers :
- level0: contient des commandes qui seront accessibles après
le boot. Ces fichiers ne sont pas exécutés pendant le boot.
On peut mettre là les .cabs contenant les exécutables dont
on aura besoin après le boot
- level1 et level2 : ces .cabs sont exécutés les uns après
les autres pendant le boot. Il peut y avoir plusieurs .cab dans chaque dossier.
Pour ajouter le support du clavier français, il suffit d'ajouter le
fichier xkeys.cab dans l'un de ces deux dossiers. Le choix de clavier fait
au premier boot sera sauvé dans a:\etc.
- level3: contient un seul .cab auquel est passé le contrôle.
Pour une disquette réseau, c'est MSNET.cab
- lib\ndis: contient les .cab des pilotes des cartes réseau
- etc : contient les fichiers de configuration :
- _MSNET.* : fichiers créés lors du premier boot. Ils
contiennent les informations sur les cartes réseau supportées
par la disquette
- autoexec.net: un fichier batch qui sera exécuté à
la fin du chargement des pilotes réseau. C'est là que l'on
va mettre le montage des partages réseau, le lancement de ghost, ...
- global.set: des pref. globales définies au premier boot (ràf)
- profile\* : les profiles (ràf)
La disquette va créer un ramdisk, copier dessus les fichiers utiles,
le contenu des .cabs. C'est dans ce ramdisk bien plus volumineux qu'une disquette
que vont se trouver les outils utilisés par la disquette lors de son
boot et ceux mis à notre disposition.
Exemple de fichier cab: xkeys.cab
Pour passer en clavier français, il suffit de placer le fichier xkeys.cab
dans le répertoire level2 (ou level1). Comme les autres .cab, xkeys.cab
contient toute une arborescence de fichiers qui va être extraite vers
le ramdislk. xkeys.cab contient aussi un fichier autorun.bat qui sera
exécuté à la fin de l'extraction. C'est la principale
différence entre les dossiers level0 et les level1,2,3 : dans level1,2,3
l'autorun.bat est exécuté alors qu'il ne l'est pas pour les
.cab de level0.
Cet autorun.bat lance simplement un batch
nommé xkeys.bat
C'est xkeys.bat qui va réaliser tout le travail. C'est un fichier
batch qui utilise les outils mis à disposition par la disquette (notamment
les fenêtres de choix, ...). Son fonctionnement est similaire à
celui des autres modules : on effectue un travail de configuration en demandant
un certain nombre d'informations à l'utilisateur puis on sauve tout
ça dans a:\etc pour en tenir directement compte lors de la prochaine
utilisation.
C'est un principe utilisé quasimment partout : la première
fois, on fait de la détection, on pose des questions à l'utilisateur.
Les fois suivantes, on utilise directement les fichiers présents dans
a:\etc. Cela veut dire que pour revenir à l'état initial, il
suffit de supprimer les fichiers présents dans a:\etc.
Dans le cas de xkeys.bat: il demande à l'utilisateur quel clavier
utilisé et sauve l'information dans a:\etc\xkeys.set. Lors des démarrages
suivants, c'est le clavier indiqué dans xkeys.set qui sera utilisé.
Le contenu du .cab (les dossiers dans lesquels iront les fichiers sont dans
la colonne de droite) :
Créer une disquette
Le plus simple est d'utiliser l'utilitaire de création de disquette
fourni : bdf full
package
- désarchiver le .zip dans un dossier (par exemple: bcd)
- faire en sorte qu'il y a les pilotes de cartes réseau nécessaires
dans bcd\cabs\drivers\ndis
- dans une fenêtre de commande (Windows NT ou +): bdf msnet
- ajouter les .cabs à la disquette créée s'il en
manque (notamment xkeys.cab, ...) dans le dossier level2 par exemple.
Les fichiers utiles pour créer la disquettes sont spécifiés
dans le fichier de configuration bfd.cfg. C'est un fichier texte modifiable
avec le bloc note.
Comment créer des .cabs
Il suffit de récupérer l'archive makev3.zip qui
contient tout ce qui est nécessaire pour créer facilement des
.cab.
Après décompression, on découvre l'arborescence suivante
:
L'outil cabarc.exe permet de créer les .cabs mais c'est la commande
make.bat que nous allons utiliser.
Pour créer un .cab nommé test.cab :
- créer un dossier nommé test dans le dossier source
- y mettre tous les fichiers du futur .cab
- dans une fenêtre de commande, exécuter "make test"
- le fichier test.cab est créé dans le dossier cabs. Il
est directement utilisable.
On peut voir sur l'arborescence donnée en exemple que j'ai eu à
créer un .cab nommé pci et un .cab nommé dlkfet car
il existe des dossiers portant ces noms dans le dossier source.
Comment créer
un pilote pour une nouvelle carte réseau
Ne trouvant pas de pilote pour carte DLINK DFE530TX (carte que je déconseille
car elle évolue souvent et il est parfois galère de trouver
des pilotes qui marchent avec les dernières version ou avec toutes
les versions.
Nous devons créer un .cab portant le nom de la carte (dlkfet dans
notre cas) et contenant les fichiers :
- DLKFET.DOS : le pilote NDIS DOS que l'on trouve chez le fournisseur
de la carte (pilote NDIS2)
- dlkfet.ini : contient le contenu du
fichier protocol.ini livré avec le pilote de la carte. On y trouve
le nom de la carte et des commentaires indiquant les options supportées
par la carte
- ndis.txt : une ligne (terminée
par un retour charriot) contenant le nom du fichier du pilote (8 caractères
max, par d'extension), des espaces et une descriptions. Cette ligne sera
affichée en cas de sélection manuelle du pilote
- ndis.pci : contient les informations
pci permettant de reconnaître automatiquement la carte au boot. Les
informations présentes dans ce fichier ne s'inventent pas. :-) Voir
là pour savoir comment je les ai récupérées.
Il faut ensuite faire un .cab portant le nom de la carte, le mettre dans
le dossier drivers\ndis de la disquette et effacer les fichiers _MSNET.*
situés dans a:\etc. Ces fichiers contiennent la liste des cartes réseau
supportées par la disquette. S'ils n'existent plus, la disquette va
les récréer au prochain démarrage.
Avec le pilote pour carte DFE530TX, il m'est arrivé un problème
: la carte était listée dans a:\etc\_MSNET.PCI
mais pas dans a:\etc\_MSNET.NIC ce qui fait qu'elle n'est pas proposée
en sélection manuelle (mais en auto, ça marche). J'ai ajouté
la ligne manquante à la main et tout s'est bien passé. Voici
le fichier complet _MSNET.NIC
Obtenir les informations sur les cartes pci
J'ai utilisé les utilitaires de diagnostic
pci de Craig depuis une disquette de boot modulaire de Bart. :-)
Mode opératoire :
- récupérer les utilitaires en version DOS
- faire un .cab nommé pci.cab (non sans importance) contenant
pci.exe et pcidevs.txt
- placer pci.cab dans le dossier level0 de la disquette (ça peut
nécessiter de faire du ménage dans les pilotes réseau,
les fichiers .bak de a:\etc, ...) pour faire de la place. Le dossier level0
contient les commandes qui seront disponibles après le boot de la
disquette.
- booter sur le disquette
- sauter tout ce qui est optionnel pour gagner du temps
- exécuter pci.exe sur la ligne de commande
Il faut repérer la carte réseau parmi les périphériques
affichés et noter les informations suivantes :
- code et nom du fournisseur de la carte qui servira pour la ligne "ven=
..." du fichier ndis.pci
- code et nom de la carte. J'en ai noté deux : un général
(3065 "VT6102 Rhine II Fast Ethernet Adaptater") et un plus précis
suffixé par le code fournisseur (1400 "DFE-530TX Fast Ethernet Adaptater
woth WOL (Rev A)"). J'ai mis les deux dans le fichier ndis.pci. Je ne sais
pas si c'était indispensable. Le .cab a correctement fonctionné
comme ça.