bootparam(7) Miscellaneous Information Manual bootparam(7)
NOM
bootparam - Introduction aux parametres de demarrage du noyau Linux
DESCRIPTION
Le noyau Linux accepte un certain nombre d'options en ligne de
commande, egalement appelees parametres de demarrage, au moment ou il
est charge. En general, c'est principalement utilise pour fournir au
noyau des informations sur les parametres materiels qu'il serait
incapable de determiner seul, ou pour eviter/remplacer les valeurs
qu'il detecterait normalement.
Quand le noyau est demarre directement par le BIOS, il n'est pas
possible de preciser des parametres. Aussi, afin de tirer parti de ces
possibilites, vous devez utiliser un chargeur capable de transmettre
les options, comme GRUB.
Liste des parametres
La ligne de commande du noyau est une liste de chaines de caracteres
(les parametres) separees par des espaces. La plupart des parametres de
demarrage ont la forme suivante :
nom[=valeur_1][,valeur_2]...[,valeur_10]
ou << nom >> est un mot cle unique utilise pour identifier la partie du
noyau a laquelle les valeurs eventuelles sont associees. La limite de
10 valeurs est effective, le code actuel ne gerant que 10 parametres
par mot cle, separes par des virgules. (Neanmoins, vous pouvez
reutiliser le meme mot cle avec 10 parametres supplementaires dans
certaines situations complexes inhabituelles, en esperant que la
fonction d'initialisation les gerera.)
La plupart du traitement est code dans le fichier source du noyau
init/main.c. Tout d'abord, le noyau verifie si le parametre est l'un
des mots cles << root >>, << nfsroot >>, << nfsaddrs >>, << ro >>,
<< rw >> , << debug >> ou << init >>. La signification de ces options
est decrite ci-dessous.
Ensuite, il parcourt une liste de fonctions d'initialisation pour
verifier si la chaine du parametre specifiee (par exemple << toto >>)
est associee a une fonction d'initialisation (<< toto_setup() >>) pour
un peripherique particulier ou une partie du noyau. Si la ligne
toto=3,4,5,6 est fournie, le noyau cherchera alors dans la table
bootsetups si << toto >> est enregistre. S'il l'est, le noyau appellera
la fonction associee a << toto >> (toto_setup()) en lui passant les
parametres 3, 4, 5 et 6 donnes sur la ligne de commande.
Tout ce qui est de la forme << toto=titi >> et qui ne concerne pas une
des fonctions d'initialisation decrites ci-dessus est interprete comme
une variable d'environnement a definir. Un exemple (inutile ?) serait
l'utilisation de << TERM=vt100 >> comme parametre de demarrage.
Les parametres restants qui n'ont pas ete interceptes par le noyau et
qui ne sont pas interpretes comme des variables d'environnement, seront
passes au processus numero un, habituellement le programme init(1). Le
parametre le plus courant dans ce cas est le mot << single >> qui
indique a init de demarrer en mode mono-utilisateur, sans lancer tous
les demons habituels. Regardez la page de manuel de la version
d'init(1) installe sur votre systeme pour connaitre les parametres
acceptes.
Parametres generaux non specifiques a un peripherique
'init=...'
Definit la commande initiale a faire executer par le noyau. Si
ce parametre n'est pas fourni ou est introuvable, le noyau
essaiera successivement /sbin/init, /etc/init, /bin/init,
/bin/sh et paniquera si tout cela echoue.
'nfsaddrs=...'
Definit l'adresse de demarrage par NFS. Cette adresse est
utilisee en cas de demarrage par le reseau.
'nfsroot=...'
Definit le nom de la racine NFS. Si cette chaine ne commence ni
par << / >>, ni par << , >>, ni par un chiffre, elle est alors
prefixee automatiquement par << /tftpboot/ >>. C'est utilise en
cas de demarrage par le reseau.
'root=...'
Ce parametre indique au noyau quel peripherique doit etre
utilise comme systeme de fichiers racine pendant le demarrage.
La configuration par defaut est determinee lors de la
compilation du noyau et est generalement identique a la racine
du systeme de fichiers utilise lors de la compilation. Pour
remplacer cette valeur et selectionner par exemple le second
lecteur de disquette, on utilisera << root=/dev/fd1 >>.
Le peripherique racine peut etre specifie de maniere symbolique
ou numerique. Une specification symbolique est de la forme
/dev/XXYN, ou XX designe un type de peripherique (par exemple,
<< hd >> designe un disque dur compatible ST-506, avec Y dans
<< a-d >> ; << sd >> designe un disque compatible SCSI, avec Y
dans << a-d >>, Y la lettre ou le numero du lecteur et N le
numero (en decimal) de la partition sur ce peripherique.
Cela n'a rien a voir avec la designation des peripheriques dans
le systeme de fichiers, le prefixe << /dev/ >> est purement
conventionnel.
La specification numerique, plus compliquee et moins portable,
du peripherique racine en utilisant les numeros majeur et mineur
est egalement acceptee. (Par exemple, /dev/sda3 a pour nombres
majeur et mineur respectivement 8 et 3, et peut donc etre
mentionne ainsi : << root=0x803 >>.)
'rootdelay='
Ce parametre definit le delai (en seconde) de pause avant
d'essayer de monter le systeme de fichiers racine.
'rootflags=...'
Ce parametre definit la chaine d'option de montage pour le
systeme de fichiers racine (consultez aussi fstab(5)).
'rootfstype=...'
L'option << rootfstype >> demande au noyau de monter le systeme
de fichiers racine comme s'il etait du type specifie. Cela
peut-etre utile, par exemple, pour monter un systeme de fichiers
ext3 en tant qu'ext2 et pouvoir alors supprimer le journal dans
le systeme de fichiers racine, c'est-a-dire de repasser ce
systeme de fichiers d'ext3 en ext2 sans avoir besoin de
redemarrer a partir d'une autre source.
'ro' et 'rw'
L'option << ro >> demande au noyau de monter le systeme de
fichiers racine en lecture seule, pour que les programmes de
verification de la coherence du systeme de fichiers puissent
travailler sur un systeme au repos. Aucun processus ne peut
ecrire sur le systeme de fichiers en question jusqu'a ce qu'il
soit remonte en lecture/ecriture, par exemple avec la commande
<< mount -w -n -o remount / >>. (Consultez mount(8).)
L'option << rw >> indique au noyau de monter le systeme de
fichiers racine en lecture/ecriture. C'est l'option par defaut.
'resume=...'
Cela indique au noyau l'emplacement des donnees stockees sur
disque a utiliser pour revenir d'hibernation. C'est en general
le meme que la partition ou le fichier d'echange. Exemple :
resume=/dev/hda2
'reserve=...'
Ce parametre permet de proteger une zone de ports
d'entree-sortie de l'autodetection. La forme de l'option est :
reserve=base_IO,longueur[,base_IO,longueur]...
Pour certaines machines, il peut etre necessaire d'empecher les
pilotes de rechercher des peripheriques dans des regions
specifiques. En effet, certains materiels peuvent mal reagir a
l'autodetection, ou seraient mal reconnus, ou simplement parce
que vous ne souhaitez pas que le noyau initialise ces materiels.
L'option reserve indique une zone de ports d'entree-sortie qu'il
ne faut pas examiner. Un pilote de peripherique n'utilisera pas
une region reservee, a moins qu'une autre option le lui indique
explicitement.
Par exemple, la ligne de commande
reserve=0x300,32 blah=0x300
empeche tous les pilotes, sauf << blah >>, d'examiner
0x300-0x31F.
'panic=N'
Par defaut, le noyau ne redemarrera pas automatiquement apres un
cas de panique, mais cette option permet de faire redemarrer le
noyau apres N secondes (si N est superieur a zero). Ce delai
peut egalement etre configure avec :
echo N > /proc/sys/kernel/panic
'reboot=[warm|cold][,[bios|hard]]'
Depuis le noyau 2.0.22, les redemarrages sont par defaut faits a
froid. Certains ont demande la restauration de l'ancienne valeur
par defaut << reboot=warm >>. (Un redemarrage a froid peut etre
necessaire pour reinitialiser certains peripheriques, mais
risque de detruire des donnees presentes dans le cache des
disques. Un redemarrage a chaud peut etre plus rapide.) Par
defaut, le redemarrage est effectue materiellement, en demandant
au controleur de clavier de baisser le niveau de la ligne reset.
Il existe toutefois des cartes meres ou cela ne fonctionne pas.
L'option << reboot=bios >> permet alors de redemarrer de maniere
logicielle, en appelant le BIOS.
'nosmp' et 'maxcpus=N'
(Seulement si la constante __SMP__ est definie.) L'option
<< nosmp >> ou << maxcpus=0 >> en ligne de commande empeche
entierement l'activation du mode SMP. Une option << maxcpus=N >>
limite le nombre maximal de processeurs actives en mode SMP.
Parametres de demarrage pour les developpeurs du noyau
'debug'
Les messages du noyau sont manipules par un demon (par exemple
klogd(8) ou equivalent) pour qu'ils puissent etre stockes sur
disque. Les messages disposant d'une priorite superieure a la
valeur console_loglevel sont aussi affiches sur la console.
(Pour en savoir plus sur les niveaux de log, consultez
syslog(2).) Par defaut, cette variable est definie pour
journaliser tout ce qui est plus important que les messages de
debogage (KERN_DEBUG). Ce parametre de demarrage demandera au
noyau d'afficher egalement les messages de la priorite
KERN_DEBUG. Le niveau de la console peut aussi etre modifie dans
un systeme demarre grace au fichier /proc/sys/kernel/printk
(decrit dans syslog(2)), l'operation syslog(2)
SYSLOG_ACTION_CONSOLE_LEVEL ou dmesg(8).
'profile=N'
Il est possible d'activer les fonctions de suivi du noyau si
l'on desire s'assurer de l'emplacement ou le noyau consomme ses
cycles CPU. Le suivi est active en definissant la variable
prof_shift avec une valeur non nulle. Cela peut etre effectue
soit en definissant la constante CONFIG_PROFILE durant la
compilation, soit en indiquant l'option << profile= >> au
demarrage. La valeur recue par la variable prof_shift sera N
s'il est fourni, ou CONFIG_PROFILE_SHIFT si cette variable
existe ou 2 par defaut. La signification de la variable
correspond a la finesse du suivi : a chaque saut d'horloge, si
le systeme execute du code du noyau, un compteur est
incremente :
profile[adresse >> prof_shift]++;
Les informations brutes concernant le suivi peuvent etre lues
dans /proc/profile. Vous prefererez probablement utiliser un
outil comme readprofile.c pour les examiner. L'ecriture dans
/proc/profile effacera les compteurs.
Parametres de demarrage pour disques virtuels
(Uniquement si le noyau a ete compile avec l'option
CONFIG_BLK_DEV_RAM.) Il est generalement deconseille d'utiliser un
disque virtuel sous Linux. Le systeme gerera mieux la memoire
disponible tout seul. Neanmoins, pendant le demarrage, il peut etre
utile de charger le contenu d'une disquette sur un disque virtuel. Il
peut egalement arriver sur certains systemes que des modules
particuliers concernant les systemes de fichiers ou le materiel doivent
etre charges avant l'acces au disque principal.
Avec Linux 1.3.48, la gestion des disques virtuels a ete
profondement modifiee. Auparavant, la memoire etait allouee de
maniere statique, avec un parametre << ramdisk=N >> qui
indiquait la taille (cela pouvait aussi etre configure
directement dans l'image du noyau a la compilation).
Actuellement, les disques virtuels utilisent les tampons caches
et grossissent dynamiquement. Pour obtenir plus d'informations
avec les disques virtuels actuels, consultez le fichier source
du noyau Documentation/blockdev/ramdisk.txt
(Documentation/ramdisk.txt dans les anciens noyaux).
Il y a quatre parametres, deux booleens et deux entiers.
'load_ramdisk=N'
Si N vaut 1, un disque virtuel est charge en memoire. Si N
vaut 0 aucun disque virtuel n'est charge (comportement par
defaut).
'prompt_ramdisk=N'
Si N vaut 1, l'insertion d'une disquette est demandee
(comportement par defaut). Si N vaut 0, rien n'est demande (donc
ce parametre n'est jamais utilise).
'ramdisk_size=N' ou (obsolete) 'ramdisk=N'
Definit la taille maximale du disque virtuel a N ko. Par defaut,
la valeur est de 4096 ko (4 Mo).
'ramdisk_start=N'
Indique le numero de bloc de depart (l'emplacement sur la
disquette ou demarre le contenu du disque virtuel). C'est utile
dans le cas ou l'image du disque virtuel suit une image de
noyau.
'noinitrd'
(Uniquement si le noyau a ete compile avec les options
CONFIG_BLK_DEV_RAM et CONFIG_BLK_DEV_INITRD.) On peut
actuellement compiler le noyau pour qu'il utilise initrd. Quand
cette possibilite est activee, le processus de demarrage charge
le noyau et un disque virtuel initial. Puis le noyau convertit
initrd en un disque virtuel << normal >> qui est monte en
lecture/ecriture a la racine. Ensuite /linuxrc est execute.
Ensuite, le << vrai >> systeme de fichiers est monte a la racine
et le systeme initrd est deplace dans /initrd. Enfin, la
sequence de demarrage habituelle (appel de /sbin/init) est
executee.
Pour une description detaillee des possibilites de initrd,
consultez le fichier source du noyau
Documentation/admin-guide/initrd.rst (ou
Documentation/initrd.txt avant Linux 4.10).
L'option << noinitrd >> indique au noyau que contrairement aux
options avec lesquelles il a ete compile, il ne doit pas
effectuer les etapes sus-mentionnees, mais au contraire laisser
les donnees de initrd sous /dev/initrd. (Ce peripherique ne peut
etre utilise qu'une seule fois, les donnees sont liberees des
que le dernier processus les ayant utilisees a ferme
/dev/initrd.)
Parametres de demarrage pour peripheriques SCSI
Notations generales pour cette section :
iobase -- le premier port d'entree-sortie utilise par l'hote SCSI. Il
est indique en notation hexadecimale, habituellement dans l'intervalle
allant de 0x200 a 0x3ff.
irq -- l'interruption materielle pour laquelle la carte est configuree.
Les valeurs valables dependent de la carte en question, mais sont
generalement 5, 7, 9, 10, 11, 12 et 15. Les autres valeurs sont plutot
utilisees par des peripheriques comme les disques IDE, les lecteurs de
disquettes, les ports serie, etc.
scsi-id -- l'identifiant utilise par l'adaptateur pour se distinguer
sur le bus SCSI. Peu d'adaptateurs permettent de modifier cette valeur,
qui est la plupart du temps figee en interne. La valeur classique est 7
mais les cartes Seagate et Future Domain TMC-950 utilisent 6.
parite -- le fait que l'adaptateur SCSI attende que le peripherique lui
fournisse ou non une valeur de parite pour tous les echanges
d'informations. Un 1 valide le controle de parite, un 0 le desactive.
Encore une fois, tous les adaptateurs ne gerent pas la modification de
ce comportement comme parametre de demarrage.
'max_scsi_luns=...'
Un peripherique SCSI peut contenir plusieurs
<< sous-peripheriques >> en lui-meme. L'exemple courant est
celui des nouveaux lecteurs de CD-ROM qui gerent plusieurs
disques en meme temps. Chaque CD est adresse par un numero
d'unite logique, << Logical Unit Number >> (LUN). Cependant, la
plupart des peripheriques SCSI, comme les disques durs ou les
lecteurs de bande, n'ont qu'un seul sous-peripherique avec un
LUN nul.
Certains peripheriques SCSI mal concus ne peuvent pas etre
detectes sur un LUN different de zero. Ainsi, si la constante de
compilation CONFIG_SCSI_MULTI_LUN n'est pas definie, les noyaux
recents n'examineront que le LUN zero.
Pour indiquer le nombre de LUN a examiner au demarrage, on
indiquera << max_scsi_luns=n >> comme parametre, n etant un
nombre entre 1 et 8. Pour eviter les ennuis decrits ci-dessus,
on utilisera n=1 avec des peripheriques a problemes.
Configuration des lecteurs de bande SCSI
Certaines configurations au demarrage des lecteurs de bandes
SCSI peuvent etre effectuees ainsi :
st=taille_tampon[,seuil_ecriture[,tampons_max]]
Les deux premiers nombres sont indiques en ko. La valeur par
defaut de taille_tampon est 32 ko, et la taille maximale
exagerement grande est 16384 ko. Le nombre seuil_ecriture
represente la valeur a partir de laquelle le tampon est
effectivement ecrit sur la bande, par defaut 30 ko. Le nombre
maximal de tampons varie avec le nombre de lecteurs detectes et
vaut 2 par defaut. Un exemple d'utilisation serait :
st=32,30,2
Des precisions completes sont disponibles dans le fichier
Documentation/scsi/st.txt (ou drivers/scsi/README.st pour les
noyaux plus anciens) du repertoire scsi des sources du noyau
Linux.
Disques durs
Parametres des disques IDE et des lecteurs de CD-ROM
Le pilote IDE accepte plusieurs parametres, principalement pour
indiquer la geometrie du disque avec des controleurs obsoletes.
Les specifications du disque sont indiquees en utilisant
<< hdX= >> avec X dans l'intervalle << a-h >>.
Les options communes a plusieurs disques sont indiquees avec le
prefixe << hd= >>. L'utilisation d'un prefixe specifique a un
disque avec une option non specifique marchera egalement comme
prevu.
Notez encore que << hd= >> peut etre utilise pour faire
reference au disque suivant, non specifie, dans la sequence (a,
..., h). Les options << hd= >> sont presentees brievement
ci-dessous, consultez le fichier Documentation/ide/ide.txt (ou
Documentation/ide.txt pour les noyaux anciens et
drivers/block/README.ide pour les noyaux encore plus anciens)
dans les sources du noyau Linux pour plus de precisions.
Options << hd=cylindres,tetes,secteurs[,wpcom[,irq]] >>
Ces options sont utilisees pour indiquer la geometrie physique
du disque. Seules les trois premieres valeurs sont necessaires.
Les nombres de cylindres/tetes/secteurs seront ceux utilises par
fdisk. La valeur de compensation en ecriture est ignoree pour
les disques IDE. L'IRQ indiquee sera utilisee avec le controleur
du disque dur et n'est donc pas reellement specifique au disque.
Option << hd=serialize >>
L'interface double IDE CMD-640 est mal concue, car lorsqu'un
disque sur la seconde interface est utilise simultanement au
disque sur la premiere interface, les donnees seront corrompues.
Utiliser cette option indique au pilote de s'assurer que les
deux disques ne sont jamais utilises en meme temps.
Option << hd=noprobe >>
Ne pas examiner ce disque. Par exemple,
hdb=noprobe hdb=1166,7,17
va desactiver la recherche, mais indique quand meme les
parametres geometriques du disque, pour qu'il soit reconnu comme
peripherique bloc valide et puisse donc etre utilise.
Option << hd=nowerr >>
Certains disques ont apparemment le bit WRERR_STAT positionne en
permanence. Cela active un contournement pour ces peripheriques
defectueux.
Option << hd=cdrom >>
Cela indique au pilote IDE qu'un lecteur de CD-ROM compatible
ATAPI est attache a la place d'un disque dur normal. Dans la
plupart des cas, le CD-ROM est identifie automatiquement, mais a
defaut cette option peut aider.
Options du pilote Standard ST-506 (<< hd= >>)
Le pilote standard peut accepter des parametres concernant la
geometrie des disques similaires a ceux du pilote IDE. Notez
cependant qu'il n'attendra que trois valeurs
(cylindres/tetes/secteurs) et tout ce qui suivra sera ignore
silencieusement. De plus, il n'accepte que l'option << hd= >> en
parametre, << hda= >> et autres ne seront pas valables. Le
format est le suivant :
hd=cylindres,tetes,secteurs
Si deux disques sont installes, ce parametre est repete avec les
parametres de geometrie du deuxieme disque.
Peripheriques Ethernet
Chaque peripherique utilise des parametres specifiques, mais ils
partagent tous au moins une valeur d'IRQ, une base d'entree-sortie et
un nom. Dans sa forme la plus generique, les parametres ressemblent a :
ether=irq,iobase[,param_1[,...param_8]],nom
Le premier parametre non numerique est considere comme le nom. La
valeur de param_n (si elle existe) a une signification differente pour
chacun des pilotes. Habituellement les valeurs param_n sont utilisees
pour indiquer des options comme l'adresse d'une memoire partagee, la
selection d'interface, le canal DMA, etc.
L'utilisation la plus courante de ce parametre est de forcer la
detection d'une seconde carte Ethernet, car l'attitude par defaut
consiste a n'en detecter qu'une seule. Cela peut etre effectue
simplement avec :
ether=0,0,eth1
Les valeurs nulles pour irq et iobase dans l'exemple precedent
indiquent au pilote d'effectuer l'autodetection.
L'Ethernet-HowTo contient une documentation tres complete sur
l'utilisation de plusieurs cartes et sur les valeurs des param_n
specifiques aux cartes ou pilotes. Les lecteurs interesses se
refereront a la section traitant de leur carte dans ce document.
Lecteur de disquettes
Il existe de nombreuses options pour le pilote de lecteurs de
disquettes, et elles sont listees dans le fichier
Documentation/blockdev/floppy.txt (ou Documentation/floppy.txt pour les
anciens noyaux et drivers/block/README.fd pour les noyaux encore plus
anciens) dans les sources du noyau Linux. Veuillez consulter ce fichier
pour plus d'informations.
Pilote audio
Le pilote audio ne peut accepter que des parametres pour surcharger les
valeurs definies a la compilation. Ce n'est pas recommande car assez
complexe. Les options sont decrites dans le fichier
Documentation/sound/oss/README.OSS (ou drivers/sound/Readme.linux pour
les noyaux plus anciens) dans les sources du noyau Linux. Les
parametres de demarrage de la forme suivante sont acceptes :
sound=device1[,device2[,device3...[,device10]]]
ou chaque valeur de deviceN utilise le format 0xTaaaId, et les octets
sont generalement utilises de la maniere suivante :
T - type de peripherique : 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
7=SB16-MPU401
aaa - adresse d'entree-sortie en hexadecimal
I - ligne d'interruption en hexadecimal (10=A, 11=B, ...)
d - canal DMA
Cela est assez complique et il vaut mieux compiler un noyau avec ses
propres valeurs. L'utilisation du parametre de demarrage << sound=0 >>
desactivera totalement le pilote audio.
Pilote d'imprimante en ligne
'lp='
Syntaxe :
lp=0
lp=auto
lp=reset
lp=port[,port...]
On peut indiquer au pilote d'imprimante les ports a utiliser et
ceux a ne pas utiliser. Cela permet d'eviter que le pilote
n'examine tous les ports paralleles afin que d'autres pilotes
(PLIP, PPA) puissent les utiliser.
Le format du parametre est une suite de noms de port. Par
exemple, << lp=none,parport0 >> utilisera le premier port
parallele pour lp1 et desactivera lp0. Pour desactiver
completement le pilote d'imprimante, utilisez lp=0.
VOIR AUSSI
klogd(8), mount(8)
Pour une description detaillee, consultez le fichier source du noyau
Documentation/admin-guide/kernel-parameters.txt.
TRADUCTION
La traduction francaise de cette page de manuel a ete creee par
Christophe Blaess , Stephan Rafin
, Thierry Vignaud ,
Francois Micaux, Alain Portal , Jean-Philippe
Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas
Huriaux , Nicolas Francois
, Florentin Duneau
, Simon Paillard , Denis Barbier , David Prevot
, Thomas Vincent et Jean-
Pierre Giraud
Cette traduction est une documentation libre ; veuillez vous reporter a
la GNU General Public License version 3
concernant les conditions
de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE.
Si vous decouvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message a .
Pages du manuel de Linux 6.06 31 octobre 2023 bootparam(7)