Outils graphique pour le paramétrage de NTLDR via boot.ini
Le paramétrage de NTLDR est fait par le fichier boot.ini. Il est possible de le modifier avec l'un des outils suivants :
- L'utilitaire graphique MsConfig.exe de Microsoft
- Via l'item système du panneau de configuration, onglet avancé, dans démarrage et récupération
- Un éditeur de texte quelconque (Wordpad.exe, ou NotePad.exe) ; dans ce cas, il ne faut pas faire d'erreur sur la syntaxe (respecter le format fichier initialisation). Toute erreur grossière risquerait de rendre impossible le boot pour un non-informaticien
- L'utilitaire en ligne de commande BOOTCFG de Microsoft
- Utilitaire de Symantec : L'outil GDISK32.EXE de Ghost
Exemple de fichier boot.ini
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect C:\bootsect.dos="Windows 98 exemple concernant wikipédia"
Les switch du noyau Windows
Microsoft publie les explications sur ces switch sur leur site web.
Sécurité
- Le switch noexecute=optin permet d'installer la sécurité DEP (Data Execution Prevention). Sur Windows XP service pack 2 et Windows Server 2003, il est installé automatiquement.
Analyser les différentes étapes du boot
Le switch bootlog permet de lister les différents modules chargés durant le boot ; le résultat est écrit dans le fichier de log %SystemRoot%\ntbtlog.txt: Les 2 premiers modules sont dans l'ordre :
Puis viennent les nombreux pilotes.
Le switch sos permet de détailler 3 étapes du boot, directement sur l'écran :
- Le chargement de chaque module (la liste est longue, mais elle n'apparaît que fugitivement à l'écran car cette étape dure très peu de temps)
- La version du système d'exploitation, le nombre de processeur, la quantité de RAM
- La phase de vérification des différents systèmes de fichiers (déclenché par le gestionnaire de sessions)
Le switch basevideo permet d'analyser les problèmes liés à un pilote vidéo. Il remplace le pilote vidéo par le pilote VGA de base.
Les autres switch sont réservés à des programmeurs, capables d'utiliser les outils de débogage fournis par Microsoft. Ces switch de débogage sont :
- Le switch crashdebug
- Le switch debug
- Le switch debugport=comx
- Le switch baudrate=nnn paramètre le taux en baud du port de débogage du noyau
- Le switch nodebug
- Le switch /channel permet de déboguer certains problèmes FireWire (IEEE1394)
Les 4 valeurs du switch safeboot
- /safeboot
- /safeboot:dsrepair (utile seulement sur un contrôleur de domaine active directory)
- /safeboot:minimal
- /safeboot:minimal(shell_alternatif) pour utiliser un shell alternatif
- /safeboot:network
Mettre un autre noyau ou un autre hal.dll
Le noyau et hal.dll peuvent être remplacés respectivement par les switch kernel et HAL.
Réduire le temps de boot
Le switch /fastdetect permet d'éviter le temps d'attente sur la détection de la souris. Dans certains cas, il est installé automatiquement.
Réduire la quantité de RAM pour des raisons de test
Pour pouvoir faire des tests, il peut être nécessaire de réduire la quantité de RAM utilisé par Windows.
Les switch /burnmemory ou /maxmem permettent de réaliser cela.
Donner plus de RAM aux processus utilisateur (au détriment des processus en mode noyau)
Par défaut, sur les 4 gigaoctets de la mémoire virtuelle de Windows 2003, la moitié sont pour les processus en mode noyau et l'autre moitié pour les processus en mode utilisateurs.
Dans certains cas, il peut être intéressant de donner plus de mémoire aux processus en mode utilisateur au détriment des processus en mode kernel, les 2 cas que cite Microsoft sont :
- le serveur de messagerie Exchange (store.exe)
- Base de données sur Windows NT Server Enterprise Edition (Windows NT Server/E) version 4.0 (paramétrage de la RAM 4GT)
Les switch 3GB et userva permettent de réaliser cela.
Pour dépasser la limite à 4 gigaoctets sur le 32-bits, voir AWE : Address Windowing Extensions(en).
Switch sur les processeurs
- Le switch numproc
- Le switch onecpu
Autres
- Les switch pae et /nopae concernent le Physical Address Extension
- Le switch noguiboot indique de ne pas utiliser la barre de progression bitmap sur la phase de boot
- Le switch noserialmice:comx
- Le switch pcilock concerne le PCI dans le BIOS
- Le switch redirect permet de paramétrer Emergency Management Services, sur RS-232)
- /usepmtimer
- Les switch w95 et w95dos
- le switch year permet de ne pas tenir compte de la date du BIOS
Droits MS-DOS et NTFS du fichier boot.ini
Par défaut, les droits MS-DOS du fichier boot.ini sont lecture seule.
Si la partition de boot est au format NTFS (ce qui est le plus courant), alors, par défaut, les utilisateurs qui ne sont pas administrateurs n'ont pas de droit NTFS en lecture sur le fichier boot.ini.
Base de registre
Les paramètres utilisés pour le boot sont stockés dans la base de registre dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ :
- Pour la partition contenant le système d'exploitation : SystemBootDevice (exemple : multi(0)disk(0)rdisk(0)partition(2))
- Pour les switch de boot : SystemStartOptions, exemple pour Windows XP service pack 2 : NOEXECUTE=OPTIN FASTDETECT
Par défaut, les utilisateurs qui ne sont pas administrateur ont seulement un droit en lecture sur ces clés.
Comparaison avec les chargeurs d'amorçage de UNIX/linux
Le fichier boot.ini de Windows a un rôle analogue au fichier de configuration du chargeur d'amorçage grub de linux. On peut aussi le comparer au Boot Camp du Mac OS X Leopard.
Le fichier boot.ini de Windows et le fichier lilo.conf du chargeur d'amorçage lilo de linux ne sont pas tout à fait analogues : il faut utiliser la commande lilo pour que les modifications du fichier lilo.conf soient prises en compte.
La syntaxe pour identifier une partition est très différente entre Windows et UNIX/linux. Dans le boot.ini de windows, le format ARC est utilisé (voir (en) Advanced RISC Computing), alors que sous unix, l'identifiant d'une partition est du type /dev/xxxxxNN.
| Type de disque | Exemple de format dans boot.ini | Exemple de Format avec grub ou lilo |
|---|
| IDE | multi(0)disk(0)rdisk(0)partition(2) | /dev/hda2 |
| SCSI | scsi(0)disk(0)rdisk(0)partition(2) | /dev/sda2 |