bootparam(7) Miscellaneous Information Manual bootparam(7) NOME bootparam - introducao aos parametros de inicializacao do kernel do Linux DESCRICAO O kernel do Linux aceita certas 'opcoes de linha de comandos' ou 'parametros de inicializacao' no momento em que e iniciado. Em geral, isso e usado para suprir o kernel com informacao a respeito do 'hardware' que o mesmo pode nao estar apto para determinar por si so, ou para prevenir/ignorar os valores que o kernel possa ter detectado de outra maneira. When the kernel is booted directly by the BIOS, you have no opportunity to specify any parameters. So, in order to take advantage of this possibility you have to use a boot loader that is able to pass parameters, such as GRUB. The argument list The kernel command line is parsed into a list of strings (boot arguments) separated by spaces. Most of the boot arguments have the form: name[=value_1][,value_2]...[,value_10] where 'name' is a unique keyword that is used to identify what part of the kernel the associated values (if any) are to be given to. Note the limit of 10 is real, as the present code handles only 10 comma separated parameters per keyword. (However, you can reuse the same keyword with up to an additional 10 parameters in unusually complicated situations, assuming the setup function supports it.) Most of the sorting is coded in the kernel source file init/main.c. First, the kernel checks to see if the argument is any of the special arguments 'root=', 'nfsroot=', 'nfsaddrs=', 'ro', 'rw', 'debug', or 'init'. The meaning of these special arguments is described below. Entao ele caminha por uma lista de funcoes de configuracao para verificar se a entrada de argumento especificada (como 'foo') esta associada com uma uma funcao de setup ('foo_setup()') para um dispositivo em particular ou parte do kernel. Se voce passou ao kernel a linha foo=3,4,5,6, entao o kernel procurara no vetor de inicializacao, para verificar se 'foo' estava registrado. Se estiver, entao ele chamara a funcao associada a 'foo' (foo_setup()) e manipulara os argumentos 3, 4, 5 e 6 como passados na linha comandos do kernel. Qualquer coisa da forma 'foo=bar' que nao for aceita como funcao de setup como descrito acima, e entao interpretado como uma variavel de ambiente a ser configurada. Um exemplo (inutil?) seria usar 'TERM=vt100' como argumento de inicializacao. Any remaining arguments that were not picked up by the kernel and were not interpreted as environment variables are then passed onto PID 1, which is usually the init(1) program. The most common argument that is passed to the init process is the word 'single' which instructs it to boot the computer in single user mode, and not launch all the usual daemons. Check the manual page for the version of init(1) installed on your system to see what arguments it accepts. General non-device-specific boot arguments 'init=...' Configura o comando inicial a ser executado pelo kernel. Se nao estiver presente, ou nao puser ser encontrado, o kernel tentara /sbin/init, entao /etc/init, entao /sbin/init, entao /bin/sh e entrar em panico se tudo isso falhar. 'nfsaddrs=...' Configura o endereco NFS de inicializacao para entrada dada. Esse endereco de inicializacao e usado no caso de inicializacao por rede. 'nfsroot=...' Configura o nome da raiz do NFS para a cadeia de caracteres dada. Se esta nao comeca com '/' ou ',' ou um digito, entao sera prefixada por '/tftpboot/'. Este nome da raiz e usado em caso de inicializacao por rede. 'root=...' Este argumento diz ao kernel que dispositivo sera utilizado como sistema de arquivos raiz durante a carga. O padrao dessa configuracao e determinado em tempo de compilacao e usualmente e o valor do dispositivo raiz onde o kernel foi construido. Para ignorar esse valor e selecionar o segundo controlador de disquete como dispositivo raiz, pode-se usar 'root=/dev/fd1'. The root device can be specified symbolically or numerically. A symbolic specification has the form /dev/XXYN, where XX designates the device type (e.g., 'hd' for ST-506 compatible hard disk, with Y in 'a'-'d'; 'sd' for SCSI compatible disk, with Y in 'a'-'e'), Y the driver letter or number, and N the number (in decimal) of the partition on this device. Note que isto nada tem a ver com a designacao desses dispositvos em seu sistema de arquivos. A parte '/dev' e puramente convencional. A especificacao numerica mais incomoda e menos portavel dos dispositivos raiz possiveis acima no formato principal/secundario tambem e aceita. (por exemplo, /dev/sda3 e principal 8 e secundario 3, entao voce pode usar 'root=0x803' como uma alternativa.) 'rootdelay=' This parameter sets the delay (in seconds) to pause before attempting to mount the root filesystem. 'rootflags=...' This parameter sets the mount option string for the root filesystem (see also fstab(5)). 'rootfstype=...' The 'rootfstype' option tells the kernel to mount the root filesystem as if it where of the type specified. This can be useful (for example) to mount an ext3 filesystem as ext2 and then remove the journal in the root filesystem, in fact reverting its format from ext3 to ext2 without the need to boot the box from alternate media. 'ro' e 'rw' A opcao 'ro' diz ao kernel para montar o sistema de arquivos raiz como 'somente leitura', para que programas de verificacao de consistencia de sistemas de arquivos (fsck) possam fazer seu trabalho em um sistema de arquivos imovel. Nenhum processo pode escrever nos arquivos do sistema em questao, ate que o mesmo seja 'remontado' com capacidade de 'leitura/escrita (read/write), por exemplo, por 'mount -w -n -o remount /'. (Veja tambem mount(8).) A opcao 'rw' diz ao kernel para montar o sistema raiz como 'escrita/leitura'. Este e o padrao. 'resume=...' This tells the kernel the location of the suspend-to-disk data that you want the machine to resume from after hibernation. Usually, it is the same as your swap partition or file. Example: resume=/dev/hda2 'reserve=...' Esta e usada para proteger regioes de portas de E/S de sondagens. A forma do comando e: reserve=iobase,extent[,iobase,extent]... Em algumas maquinas, pode ser necessario evitar que os controladores de dispositivo procurem os mesmos em regioes especificas (auto-probing). Isto pode ocorrer por causa de 'hardware' que reage mal a deteccao, ou 'hardware' que e erroneamente identificado ou meramente o 'hardware' que voce nao quer que o kernel inicialize. O argumento da linha de inicializacao 'reserve' especifica uma regiao de portas E/S que nao devem ser sondadas. Um controlador de dispositivo nao ira sondar uma regiao reservada, a nao ser que outro argumento de inicializacao explicitamente espefique para faze-lo. Por exemplo, a linha de inicializacao reserve=0x300,32 blah=0x300 previne todos os controladores de dispositivo, exceto o controlador 'blah' da sondagem de 0x300-0x31f. 'panic=N' Por padrao, o kernel nao reinicializara apos um panico, mas esta opcao causara a reinicializacao do kernel, apos N segundos (se N > 0). Estee timeout de panico pode ser configurado por echo N > /proc/sys/kernel/panic 'reboot=[warm|cold][,[bios|hard]]' Desde o Linux 2.0.22 a reinicializacao e por padrao uma reinicializacao fria (cold reboot). Alguem pergunta pelo antigo padrao 'reboot=warm'. (Um 'cold reboot' pode ser necessario para resetar certos 'hardwares', mas pode destruir qualquer dado em 'cache' de disco que nao tenha sido escrito. Uma reinicializacao quente (warm boot) pode ser mais rapida). Por padrao, uma reinicializacao e dificil, requisitando-se que o controlador do teclado para pulsar o fluxo da linha de reset baixa, mas ha ao menos um tipo de placa-mae que nao funcionara. A opcao 'reboot=bios', ao contrario, passara atraves do 'BIOS'. 'nosmp' e 'maxcpus=N' (Somente quando __SMP__ estiver definido.) Uma opcao de linha de comando de 'nosmp' ou 'maxcpus=0' ira desabilitar completamente a ativacao do SMP (multi processamento simetrico); a opcao 'maxcpus=N' limita o numero maximo de CPUs ativadas no modo SMP em N. Boot arguments for use by kernel developers 'debug' Kernel messages are handed off to a daemon (e.g., klogd(8) or similar) so that they may be logged to disk. Messages with a priority above console_loglevel are also printed on the console. (For a discussion of log levels, see syslog(2).) By default, console_loglevel is set to log messages at levels higher than KERN_DEBUG. This boot argument will cause the kernel to also print messages logged at level KERN_DEBUG. The console loglevel can also be set on a booted system via the /proc/sys/kernel/printk file (described in syslog(2)), the syslog(2) SYSLOG_ACTION_CONSOLE_LEVEL operation, or dmesg(8). 'profile=N' E possivel habilitar uma funcao de profiling no kernel, se alguem desejar ver onde o kernel esta gastando seus ciclos de CPU. O profiling pode ser habilitado configurando a variavel prof_shift para um valor que nao zero. Isto pode ser feito tanto especificando-se CONFIG_PROFILE durante a compilacao, ou dando-se a opcao 'profile='. Agora o valor de prof_shift sera N, quando dado, ou CONFIG_PROFILE_SHIFT, quando este e dado, ou 2, o padrao. A significancia dessa varaiavel e que a mesma da a granularidade do profiling: a cada pulso do clock, se o sistema estiever executando o kernel, um contador e incrementado: profile[address >> prof_shift]++; A informacao bruta de profiling pode ser lida em /proc/profile. Provavelmente, voce ira deseja usar uma ferramenta como readprofile.c para ordena-la. Escrever em /proc/profiles limpara os contadores. Boot arguments for ramdisk use (Apenas se o kernel foi compilado com CONFIG_BLK_DEV_RAM.) Em geral e uma ma ideia usar um disco de RAM (ramdisk) no Linux--o sistema usara a memoria disponivel de forma mais eficiente sozinho. Mas durante a inicializacao e frequentemente util carregar o conteudo do disquete em um disco de RAM. Alguem pode ter um sistema no qual seja necessario que alguns modulos sejam carregados (para sistemas de arquivos ou 'hardware') antes que o disco principal possa ser acessado. In Linux 1.3.48, ramdisk handling was changed drastically. Earlier, the memory was allocated statically, and there was a 'ramdisk=N' parameter to tell its size. (This could also be set in the kernel image at compile time.) These days ram disks use the buffer cache, and grow dynamically. For a lot of information on the current ramdisk setup, see the kernel source file Documentation/blockdev/ramdisk.txt (Documentation/ramdisk.txt in older kernels). Existem quatro parametros, dois booleanos e dois inteiros. 'load_ramdisk=N' Se N=1, carrega um ramdisk. Se N=0, Nao carrega um ramdisk (Este e o padrao.) 'prompt_ramdisk=N' Se N=1, pede a insercao do disquete (Este e o padrao). Se N=0, nao pede a insercao do disquete (assim, esse parametro nunca e necessario). 'ramdisk_size=N' ou (obsoleto) 'ramdisk=N' Configura o tamanho maximo do(s) ramdisk(s) para N kB. O padrao e 4096 (4 MB). 'ramdisk_start=N' Configura o numero do bloco inicial (a simetria no disquete onde o ramdisk comeca) para N. Isso e necessario no caso de o ramdisk seguir uma imagem do kernel. 'noinitrd' (Somente se o kernel foi compilado com CONFIG_BLK_DEV_RAM e CONFIG_BLK_DEV_INITRD.) Atualmente e possivel compilar o kernel para usar initrd. Quando esta caracteristica esta habilitada, o processo de inicializacao carregara o kernel e um ramdisk inicial; entao, o kernel converte initrd em um ramdisk 'normal' que e montado em leitura/escrita como dispositivo raiz; entao, /linuxrc e executado; depois, o sistema de arquivos raiz 'real' e montado e o sistema de arquivos initrd e movido para /initrd; finalmente, a sequencia de inicializacao usual e executada (por exemplo, chamada de /sbin/init. For a detailed description of the initrd feature, see the kernel source file Documentation/admin-guide/initrd.rst (or Documentation/initrd.txt before Linux 4.10). The 'noinitrd' option tells the kernel that although it was compiled for operation with initrd, it should not go through the above steps, but leave the initrd data under /dev/initrd. (This device can be used only once: the data is freed as soon as the last process that used it has closed /dev/initrd.) Boot arguments for SCSI devices Notacao geral para esta secao: iobase -- a primeira porta de E/S que a controladora SCSI ocupa. Sao especificados em notacao hexadecimal e usualmente encontram-se na area de 0x200 a 0x3ff. irq -- a interrupcao de 'hardware' em que a placa esta configurada para usar. Valores validos dependerao da placa em questao, mas serao usualmente 5, 7, 9, 10, 11, 12 e 15. Os outros valores sao normalmente utilizados por perifericos comuns, como discos rigidos IDE, controladores de disquete, portas seriais, e assim por diante. scsi-id -- a identidade que a adaptadora usa para se autoidentificar no bus SCSI. Algumas poucas adaptadoras permitem que voce modifique este valor, mas a maioria tem permanentemente especificado internamente. O padrao usual e 7, mas as placas Seagate e Domain TMC-950 usam 6. parity -- se a controladora SCSI deve esperar os dispositivos conectados para fornecer um valor de paridade com toda troca de informacao. Especificando um 'um', indica que a checagem de paridade esta habilitada e um 'zero' desabilita a checagem de paridade. Novamente, nem todas as adaptadoras suportam a selecao de paridade como um argumento de inicializacao. 'max_scsi_luns=...' Um dispositivo SCSI deve possuir um numero de 'subdispositivos' contidos em si. O exemplo mais comum e um desses novos CD-ROMS SCSI que podem manipular mais de um disco por vez. Cada CD esta enderecado como um 'Numero de Unidade Logica' (Logical Unit Number -- LUN) daquele dispositivo em particular. Mas a maioria dos dispositivos, como discos rigidos, controladores de fita e outros sao apenas um dispositivo e serao designado por LUN zero. Alguns dispositivos SCSI pobremente projetados nao suportam ser testados para LUNs nao iguais a zero. Por isso, se a flag de compilacao CONFIG_SCSI_MULTI_LUN nao estiver configurada, os novos kernels irao, por padrao, testar apenas LUN zero. Para especificar o numero de LUNs provados durante a inicializacao, pode-se entrar 'max_scsi_luns=n' como um argumento de inicializacao, onde 'n' e um numero entre um e oito. Para evitar os problemas descritos acima, pode-se usar n=1 para evitar transtornos bem como dispositivos quebrados. Configuracao de Controladores de Fita SCSI Algumas configuracoes de inicializacao do controlador de fita SCSI pode ser alcancadas usando-se o seguinte: st=buf_size[,write_threshold[,max_bufs]] Os dois primeiros numeros sao especificados em unidades de kB. O buf_size padrao e 32 kB e o tamanho maximo que pode ser especificado sao ridiculos 16384 kB. O write_treshold e o valor no qual o 'buffer' e enviado a fita, com valor padrao de 30 kB. O numero maximo de 'buffers' varia com o numero de controladores detectados e possui o padrao de dois. Um exemplo de uso seria: st=32,30,2 Full details can be found in the file Documentation/scsi/st.txt (or drivers/scsi/README.st for older kernels) in the Linux kernel source. Discos rigidos Parametros do controlador de disco/CDROM IDE O controlador IDE aceita varios parametros, que variam de especificacoes da geometria do disco para suporte de chips de controladoras quebrados. Opcoes especificas do controlador sao especificadas usando-se 'hdX' com 'X' entre 'a'-'h'. Outras opcoes nao especificas do controlador, sao especificadas com o prefixo 'hd='. Note que usando um prefixo especifico de controlador para uma opcao nao especifica de controlador continuara funcionando e a opcao sera aplicada como esperado. Also note that 'hd=' can be used to refer to the next unspecified drive in the (a, ..., h) sequence. For the following discussions, the 'hd=' option will be cited for brevity. See the file Documentation/ide/ide.txt (or Documentation/ide.txt in older kernels, or drivers/block/README.ide in ancient kernels) in the Linux kernel source for more details. The 'hd=cyls,heads,sects[,wpcom[,irq]]' options Essas opcoes sao usadas para especificar a geometria fisica do disco. Apenas os tres primeiros valores sao requeridos. Os valores de cilindros/cabecas/setores serao aqueles utilizados pelo fdisk. O valor de pre-compensacao de escrita e ignorado nos discos IDE. O valor do IRQ especificado sera o IRQ utilizado pela interface na qual o controlador reside e nao um parametro especifico do controlador. A opcao 'hd=serialize' O chip de interface dual IDE CMD-640 e quebrado em seu proprio projeto, pois quando os controladores da interface secundaria sao usados ao mesmo tempo que os controladores da interface primaria, isto corrompera seus dados. Usando esta opcao, diz-se ao controlador para assegurar-se que as interfaces nunca serao usadas ao mesmo tempo. A opcao 'hd=noprobe' Nao ha verificacao do controlador especificado. Por exemplo: hdb=noprobe hdb=1166,7,17 desabilitara a verificacao, mas continuara especificando a geometria do controlador, para que possa ser registrado como um bloco de dispositivo valido e, consequentemente, utilizavel. A opcao 'hd=nowerr' Alguns controladores aparentemente tem o WRERR_STAT um tanto imobilizado. Essa opcao habilita um paliativo para esses dispositivos quebrados. A opcao 'hd=cdrom' Isso diz ao controlador IDE que ha um CD-ROM compativel com ATAPI conectado no lugar de um disco rigido IDE normal. Em muitos casos, o CD-ROM e identificado automaticamente, mas se nao for, esta opcao pode ajudar. Opcoes do controlador de disco padrao ST-506 ('hd=') O controlador de disco padrao aceita argumentos de geometria de discos similares ao controlador IDE. Note, contudo, que ele so espera tres valores (C/H/S); algum mais ou algum menos e o controlador ira ignorar-te silenciosamente. Alem disso, so aceita 'hd=' como argumento, quer dizer 'hda=' e outros nao sao validos aqui. O formato e o seguinte: hd=cyls,heads,sects Se houver dois discos instalados, o acima e repetido com os parametros da geometria do segundo disco. Dispositivos Ethernet Controladores diversos usam argumentos diversos, mas todos eles, ao menos, se parecem, usando um IRQ, um valor base de porta de E/S e um nome. Em sua forma mais generica, se parece com o que segue: ether=irq,iobase[,param_1[,...param_8]],name O primeiro argumento nao numerico e entendido como o nome. Os valores de 'param_n' (se aplicaveis) usualmente tem significados diferentes para cada tipo de placa/controlador. Valores 'param_n' tipicos sao usados para especificar coisas como endereco de memoria compartilhada, selecao de interface, canal de DMA e coisas assim. O uso mais comum desse parametro e forcar a verificacao da existencia de uma segunda placa de rede, pois o padrao e 'procurar' apenas uma. Isso pode ser executado com um simples: ether=0,0,eth1 Note que os valores de zero para os valores de IRQ e base de E/S no exemplo acima, diz ao controlador para executar autoverificacao. O 'Ethernet-HOWTO' possui extensa documentacao sopbre como usar multiplas placas e sobre a implementacao especifica de 'param_n' de placas/controladores, onde utilizados. Leitores interessados devem encaminhar-se a secao daquele documento referente especificamente a suas placas. The floppy disk driver There are many floppy driver options, and they are all listed in Documentation/blockdev/floppy.txt (or Documentation/floppy.txt in older kernels, or drivers/block/README.fd for ancient kernels) in the Linux kernel source. See that file for the details. Controlador de som The sound driver can also accept boot arguments to override the compiled-in values. This is not recommended, as it is rather complex. It is described in the Linux kernel source file Documentation/sound/oss/README.OSS (drivers/sound/Readme.linux in older kernel versions). It accepts a boot argument of the form: sound=device1[,device2[,device3...[,device10]]] onde cada valor 'deviceN' e um dos seguintes, no formato '0xTaaaId', e usados como segue: T - tipo de dispositivo: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401 aaa - endereco de E/S em hexa. I - linha de interrupcao em hexa (i.e., 10=a, 11=b, ...). d - canal de DMA. Como voce pode ver, tudo fica bastante complicado, e e melhor compilar seus proprios valores como recomendado. Usando um argumento de inicializacao 'sound=0' desabilitara o controlador de som inteiramente. The line printer driver 'lp=' Sintaxe: lp=0 lp=auto lp=reset lp=port[,port...] Voce pode ordenar ao controlador de impressao que porta usar e que portas nao usar. Em segundo lugar, mas importante e se voce nao deseja que o controlador de impressao reinvidicar todas as portas paralelas disponiveis, assim outros controladores (por exemplo, PLIP, PPA) pode entao usa-la. O formato do argumento e um multiplo de nomes de porta, Por exemplo, lp=none,parport0 para usar a primeira porta paralea para lp1, e desativar lp0. Para desativar o controlador da impresso totalmente, deve usar lp=0. VEJA TAMBEM klogd(8), mount(8) For up-to-date information, see the kernel source file Documentation/admin-guide/kernel-parameters.txt. TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Valter Ferraz Sanches e Andre Luiz Fassone Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 bootparam(7)