Capítulo 3. A inicialização do sistema

Índice

3.1. Uma visão geral do processo de boot strap
3.2. Estágio 1: a BIOS
3.3. Estágio 2: o gestor de arranque (boot loader)
3.4. Estágio 3: o mini-sistema Debian
3.5. Estágio 4: o sistema Debian normal
3.5.1. O significado do runlevel
3.5.2. A configuração do runlevel
3.5.3. O exemplo de gestão do runlevel
3.5.4. O parâmetro predefinido para cada script de init
3.5.5. O nome da máquina
3.5.6. O sistema de ficheiros
3.5.7. Inicialização da interface de rede
3.5.8. Inicialização do serviço de rede
3.5.9. A mensagem do sistema
3.5.10. A mensagem do kernel
3.5.11. O sistema udev
3.5.12. A inicialização de módulos do kernel

É inteligente para si como o administrador do sistema conhecer aproximadamente como o sistema Debian é arrancado e configurado. Apesar dos detalhes exactos estarem nos ficheiros de fonte dos pacotes instalados e nas suas documentações, é um pouco opressivo para a maioria de nós.

Eu fiz o meu melhor para disponibilizar uma visão geral breve dos pontos chave do sistema Debian a da sua configuração para sua referência, baseando-me em conhecimentos actuais e anteriores meus e de outros. Como o sistema Debian é um alvo em movimento, a situação sobre o sistema pode ter mudado. Antes da fazer quaisquer alterações ao sistema, você deve consultar a documentação mais recente de cada pacote.

3.1. Uma visão geral do processo de boot strap

O sistema do computador passa por várias fases de processos de boot strap desde o ligar da energia até que oferece o sistema operativo (OS) totalmente funcional ao utilizador.

Para simplicidade, eu limito a discussão à plataforma PC típica com a instalação predefinida.

O processo de boot strap típico é como um foguete de quatro etapas. Cada etapa do foguete entrega o controle do sistema à próxima etapa.

É claro que, estes podem ser configurados de modo diferente. Por exemplo, se você compilou o seu próprio kernel, você pode estar a saltar o passo com o mini sistema Debian. Portanto por favor não assuma que é este o caso para o seu sistema até que o verifique por si próprio.

[Nota] Nota

Para uma plataforma de PC não-legacy como o sistema SUN ou o Macintosh, a BIOS em ROM e o particionamento do disco podem ser bastante diferentes (Secção 9.3.2, “Configuração das partições do disco”). Por favor procure noutro lado a documentação específica da plataforma para tais casos.

3.2. Estágio 1: a BIOS

A BIOS é o 1ª etapa do processo de boot que é iniciado com o evento de ligar a energia. A BIOS que reside na read only memory (ROM) é executada a partir de um endereço de memória particular no qual o contador de programa da CPU é inicializado pelo evento de ligar a energia.

Esta BIOS executa a inicialização básica do hardware (POST: power on self test) e entrega o controle do sistema ao próximo passo que você disponibiliza. A BIOS é normalmente disponibilizada com o hardware.

O ecrã de arranque da BIOS geralmente indica que tecla(s) pressionar para entrar no ecrã de configuração da BIOS para configurar o comportamento da BIOS. As teclas populares são F1, F2, F10, Esc, Ins, e Del. Se o seu ecrã de arranque da BIOS está escondido por um ecrã gráfico bonito, você pode pressionar algumas teclas como a Esc para o desactivar. Estas teclas dependem fortemente do hardware.

A localização do hardware e prioridade do código iniciado pela BIOS pode ser seleccionado no écran de configuração da BIOS. Tipicamente, os primeiros poucos sectores do primeiro dispositivo seleccionado encontrado (disco rijo, disquete, CD-ROM, ...) são carregados para a memória e este código inicial é executado. Este código inicial pode ser um dos seguintes.

  • O código do gestor de arranque

  • O código de kernel do SO da idade da pedra como o FreeDOS

  • O código do kernel do SO de destino se ele couber neste pequeno espaço

Tipicamente, o sistema é arrancado a partir da partição especificada das partições do disco rijo principal. Os primeiros 2 sectores do disco rijo em PCs legacy contêm o master boot record (MBR). A informação de partições do disco incluindo a selecção de arranque é gravada no final deste MBR. O código do primeiro gestor de arranque executado pela BIOS ocupa o resto deste MBR.

3.3. Estágio 2: o gestor de arranque (boot loader)

O gestor de arranque é o 2º estágio do processo de arranque que é iniciado pela BIOS. Ele carrega a imagem de kernel do sistema e a imagem initrd para a memória e passa o controle para eles. Esta imagem initrd é a imagem do sistema de ficheiros raiz e o seu suporte depende do gestor de arranque utilizado.

O sistema Debian normalmente usa o kernel Linux como kernel predefinido do sistema. A imagem initrd para o kernel Linux 2.6 actual é tecnicamente a initramfs (sistema de ficheiros de RAM inicial). A imagem initramfs é um arquivo cpio gzipado de ficheiros no sistema de ficheiros raiz.

A instalação predefinida do sistema Debian coloca código da primeira etapa do gestor de arranque GRUB no MBR para a plataforma PC. Existem muitos gestores de arranque e opções de configuração disponíveis.

Tabela 3.1. Lista de gestores de arranque

gestor de arranque pacote popcon tamanho initrd descrição
GRUB Legacy grub-legacy * V:0.19, I:0.7 1741 Suportado Isto suficientemente inteligente para compreender partições de disco e sistemas de ficheiros como vfat, ext3, ... (predefinição em lenny
GRUB 2 grub-pc * V:7, I:64 300 Suportado Isto suficientemente inteligente para compreender partições de disco e sistemas de ficheiros como vfat, ext3, ...
GRUB 2 grub-rescue-pc * V:0.04, I:0.4 3860 Suportado Isto são imagens de arranque de recuperação do GRUB 2 (CD ou disquete) (Versão PC/BIOS)
Lilo lilo * V:0.3, I:1.7 704 Suportado Isto baseia-se nas localizações de sectores de dados no disco rijo. (Antigo)
Isolinux syslinux * V:1.1, I:8 132 Suportado Isto compreende o sistema de ficheiros ISO9660. É usado pelo CD de arranque.
Syslinux syslinux * V:1.1, I:8 132 Suportado Isto compreende o sistema de ficheiros MSDOS (FAT). É usado pela disquete de arranque.
Loadlin loadlin * V:0.03, I:0.3 144 Suportado Novo sistema é iniciado a partir do sistema FreeDOS/MSDOS.
MBR por Neil Turton mbr * V:0.3, I:3 92 Não suportado Isto é software livre que substitui o MBR do MSDOS. Isto apenas compreende partições de disco.

[Atenção] Atenção

Não brinque com os boot loaders sem ter discos de arranque de recuperação (CD ou disquete) criados a partir de imagens do pacote grub-rescue-pc. Eles são capazes de arrancar o seu sistema mesmo sem um boot loader funcional no disco rijo.

Para o GRUB Legacy, o ficheiro de configuração do menu está localizado em "/boot/grub/menu.lst". Por exemplo, tem entradas como a seguinte.

title           Debian GNU/Linux
root            (hd0,2)
kernel          /vmlinuz root=/dev/hda3 ro
initrd          /initrd.img

Para o GRUB 2, o ficheiro de configuração do menu está localizado em "/boot/grub/grub.cfg". É gerado automaticamente pelo "/usr/sbin/update-grub" usando modelos de "/etc/grub.d/*" e definições de "/etc/default/grub". Por exemplo, tem entradas como as que se seguem.

menuentry "Debian GNU/Linux" {
        set root=(hd0,3)
        linux /vmlinuz root=/dev/hda3
        initrd /initrd.img
}

Para estes exemplos, estes parâmetros do GRUB significam o seguinte.

Tabela 3.2. O significado dos parâmetros do GRUB

Parâmetro do GRUB significado
root usa a 3ª partição no disco primário a defini-la como "(hd0,2)" no GRUB Legacy ou como "(hd0,3)" no GRUB 2
kernel usa o kernel localizado em "/vmlinuz" com parâmetro de kernel: "root=/dev/hda3 ro"
initrd usa a imagem initrd/initramfs localizada em "/initrd.img"

[Nota] Nota

O valor do número de partição usado pelo programa GRUB legacy é menos um que o normal usado pelo kernel Linux e ferramentas utilitárias. O programa GRUB 2 corrige este problema.

[Dica] Dica

Pode ser usado o UUID (veja Secção 9.3.3, “Aceder a partição usando UUID”) para identificar um dispositivo especial de bloco em vez do seu nome de ficheiro como "/dev/hda3", ex. "root=UUID=81b289d5-4341-4003-9602-e254a17ac232 ro".

[Dica] Dica

Você pode iniciar um gestor de arranque a partir de outro gestor de arranque usando técnicas chamadas chain loading.

Veja "info grub" e grub-install(8).

3.4. Estágio 3: o mini-sistema Debian

O mini-sistema Debian é o 3º estágio do processo de arranque que é iniciado pelo gestor de arranque. Ele corre o o kernel do sistema com o seu sistema de ficheiros raiz na memória. Este é um estágio preparatório opcional do processo de arranque.

[Nota] Nota

O termo "mini-sistema Debian" é cunhado pelo autor para descrever este 3º estágio do processo de arranque para este documento. Este sistema é geralmente referido como o initrd ou sistema initramfs. Sistema semelhante em memória é usado pelo Instalador de Debian.

O script "/init" é executado como o primeiro programa neste sistema de ficheiros raiz em memória. É um programa script de shell que inicializa o kernel no espaço de utilizador e entrega o controle ao próximo estágio. Este mini-sistema Debian oferece flexibilidade ao processo de arranque tal como adicionar módulos de kernel antes do processo de arranque principal ou montar o sistema de ficheiros raiz como um encriptado.

Você pode interromper esta parte do processo de arranque para obter a shell de root ao fornecer "break=init" etc. ao parâmetro de arranque do kernel. Veja o script "/init" para mais condições de interrupção. Este ambiente shell é suficientemente sofisticado para fazer uma boa inspecção do hardware da sua máquina.

Os comandos disponíveis neste mini-sistema Debian são versões reduzidas e disponibilizados principalmente por uma ferramenta GNU chamada busybox(1).

[Cuidado] Cuidado

Você precisa de usar a opção "-n" para o comando mount quando está no sistema de ficheiros raiz apenas de leitura.

3.5. Estágio 4: o sistema Debian normal

Tabela 3.3. Lista de utilitários de arranque para o sistema Debian

pacote popcon tamanho descrição
initscripts * V:90, I:99 152 scripts para inicializar e desligar o sistema
sysvinit * V:87, I:99 170 utilitários de init(8) estilo System-V
sysv-rc * V:90, I:99 130 mecanismo de mudança de runlevel estilo System-V
sysvinit-utils * V:90, I:99 189 utilitários estilo System-V (startpar(8), bootlogd(8), …)
lsb-base * V:90, I:99 36 Linux Standard Base funcionalidade de script de init 3.2
insserv * V:59, I:67 288 ferramenta para organizar a sequência de arranque usando dependências dos scripts init.d LSB
upstart * V:0.10, I:0.15 696 daemon de eventos baseado em init(8) para a concorrência (alternativa a sysvinit)
readahead-fedora * V:0.5, I:0.7 144 readahead(8) para pré-carregar os ficheiros do processo de arranque
uswsusp * V:1.5, I:7 514 ferramentas para usar a suspensão de software no espaço de utilizador disponibilizadas pelo Linux
kexec-tools * V:0.2, I:0.7 280 ferramenta kexec para re-arranques kexec(8) (re-arranque a quente)
bootchart * V:0.05, I:0.7 132 analisador de performance do processo de arranque
bootchart-view * V:0.06, I:0.4 280 analisador de performance do processo de arranque (visualização)
mingetty * V:0.16, I:0.4 64 getty(8) apenas de consola
mgetty * V:0.13, I:0.5 416 substituto inteligente de modem getty(8)

[Nota] Nota

Esta secção descreve o clássico sistema de arranque de estilo System V em lenny. Debian está a mover-se para o sistema de arranque movido a eventos. Veja O futuro do sistema de arranque em Debian e Sequência de arranque baseada em dependências.

[Dica] Dica

Todos os mecanismos de arranque são compatíveis através dos scripts "/etc/init.d/rc", "/etc/init.d/rcS", "/usr/sbin/update-rc.d", e "/usr/sbin/invoke-rc.d".

[Dica] Dica

O pacote readahead-fedora pode acelerar o arranque de um sistema com uma quantidade decente de DRAM.

O sistema Debian normal é o 4º estágio do processo de arranque que é iniciado pelo mini-sistema Debian. O kernel do sistema para o mini-sistema Debian continua a correr no seu ambiente. O sistema de ficheiros raiz é mudado daquele em memória para o que está no sistema de ficheiros do disco rijo real.

O programa "/sbin/init" é executado como o primeiro programa e executa o processo de arranque principal. Normalmente o Debian usa o esquema tradicional sysvinit com o pacote sysv-rc. Veja init(8), inittab(5), e "/usr/share/doc/sysv-rc/README.runlevels.gz" para a explicação exacta. Este processo de arranque principal passa essencialmente pelo seguinte.

  1. O sistema Debian entra em runlevel N (nenhum) para inicializar o sistema ao seguir a descrição de "/etc/inittab".

  2. O sistema Debian entra em runlevel S para inicializar o sistema sob o modo de único-utilizador para completar a inicialização do hardware e etc.

  3. O sistema Debian vai para um dos runlevels de multi-utilizador (2 a 5) especificado para arrancar os serviços do sistema.

O runlevel inicial usado para modo de multi-utilizador é especificado com o parâmetro "init=" de arranque do kernel ou na linha "initdefault" de "/etc/inittab". O sistema Debian como instalado arranca no runlevel 2.

Todos os ficheiros script actuais executados pelo sistema init estão localizados no directório "/etc/init.d/".

3.5.1. O significado do runlevel

Cada runlevel usa um directório para a sua configuração e tem um significado específico como o seguinte.

Tabela 3.4. Lista de runlevels e descrição da sua utilização

runlevel directório descrição da utilização do runlevel
N nenhum arranque do sistema em NENHUM nível (nenhum directório "/etc/rcN.d/")
0 /etc/rc0.d/ parar o sistema
S /etc/rcS.d/ modo de utilizador singular no arranque (alias: "s")
1 /etc/rc1.d/ modo de utilizador singular trocado a partir do modo de multi utilizador
2 /etc/rc2.d/ modo de multi-utilizador
3 /etc/rc3.d/ ,,
4 /etc/rc4.d/ ,,
5 /etc/rc5.d/ ,,
6 /etc/rc6.d/ reiniciar o sistema
7 /etc/rc7.d/ modo de multi-utilizador válido mas normalmente não usado
8 /etc/rc8.d/ ,,
9 /etc/rc9.d/ ,,

Você pode mudar o runlevel a partir da consola para, por exemplo 4, com o seguinte.

$ sudo telinit 4
[Cuidado] Cuidado

O sistema Debian não pré-atribui nenhumas diferenças de significado especiais entre os runlevels 2 e 5. O administrador de sistema no sistema Debian pode mudar isto. (Isto é, Debian não é Red Hat Linux nem Solaris da Sun Microsystems nem HP-UX da Hewlett Packard nem AIX da IBM nem …)

[Cuidado] Cuidado

O sistema Debian não povoa os directórios para os runlevels entre 7 e 9 quando o pacote é instalado. As variantes Unix tradicionais não usam estes runlevels.

3.5.2. A configuração do runlevel

[Nota] Nota

No Debian squeeze, é usada a ordem de arranque baseada em dependências disponibilizada pelo pacote insserv em vez da ordem alfabética clássica. O valor "CONCURRENCY" em "/etc/default/rcS" controla a sua concorrência. "none" para nenhuma concorrência, "startpar" para concorrência dentro do mesmo número de sequência, ou "makefile" para concorrência total. Veja "/usr/share/doc/insserv/README.Debian".

O nome do link simbólico em cada directório runlevel tem o formato "S<número-de-2-dígitos><nome-original>" ou "K<número-de-2-dígitos><nome-original>". O número-de-2-dígitos é usado para determinar a ordem sobre a qual correr os scripts. "S" é para "Start" (iniciar) e "K" é para "Kill" (terminar).

Para "CONCURRENCY=none", quando os comandos init(8) ou telinit(8) vão para o runlevel para "<n>", executam os seguintes scripts.

  1. Os scripts cujos nomes começam com um "K" em "/etc/rc<n>.d/" são executados em ordem alfabética com o único argumento "stop". (matando os serviços)

  2. Os scripts cujos nomes começam com um "S" em "/etc/rc<n>.d/" são executados por ordem alfabética com o único argumento "start". (iniciando os serviços)

Por exemplo, se você tiver os links "S10sysklogd" e "S20exim4" num directório de runlevel, o "S10sysklogd" que está simbolicamente ligado a "../init.d/sysklogd" irá correr antes de "S20exim4" que está simbolicamente ligado a "../init.d/exim4".

Para "CONCURRENCY=makefile" (nova predefinição), a dependência de pacotes definida no cabeçalho de scripts init é usada para as ordenar.

[Atenção] Atenção

Não é aconselhável fazer quaisquer alterações nos links simbólicos em "/etc/rcS.d/" a menos que você saiba mais que o responsável.

3.5.3. O exemplo de gestão do runlevel

Por exemplo, vamos configurar o sistema runleve algo como o Red Hat Linux com o seguinte.

  • init arranca o sistema em runlevel=3 por predefinição

  • O init não arranca o gdm(1) nos runlevel (0,1,2,6).

  • init arranca o gdm(1) em runlevel=(3,4,5).

Isto pode ser feito ao usar o editor no ficheiro "/etc/inittab" para alterar o runlevel de arranque e usar ferramentas de gestão do runlevel amigas do utilizador como o sysv-rc-conf ou o bum para editar o runlevel. Se você usar apenas a linha de comandos, aqui está como fazê-lo (após a instalação predefinida do pacote gdm e seleccioná-lo para ser o gestor de ecrã escolhido).

# cd /etc/rc2.d ; mv S21gdm K21gdm
# cd /etc ; perl -i -p -e 's/^id:.:/id:3:/' inittab

Por favor note que o ficheiro "/etc/X11/default-display-manager" é verificado quando se arranca daemons de gestor de ecrã: xdm, gdm, kdm, e wdm.

[Nota] Nota

Você ainda pode arrancar o X a partir de qualquer consola de shell com o comando startx(1).

3.5.4. O parâmetro predefinido para cada script de init

O parâmetro predefinido para cada script de init em "/etc/init.d/" é dado pelo ficheiro correspondente em "/etc/default/" o qual contém apenas atribuições das variáveis de ambiente. Esta escolha de nome de directório é específica do sistema Debian. É grosseiramente o equivalente ao directório "/etc/sysconfig" encontrado em Red Hat Linux e outras distribuições. Por exemplo, "/etc/default/cron" pode ser usado para controlar como o "/etc/init.d/cron" funciona.

O ficheiro "/etc/default/rcS" pode ser usado para personalizar as predefinições no momento de arranque para motd(5), sulogin(8), etc.

Se não consegue obter o comportamento que deseja ao alterar tais variáveis então você pode modificar os scripts de init. Estes são ficheiros de configuração editáveis por administradores de sistemas.

3.5.5. O nome da máquina

O kernel mantém o nome-de-máquina do sistema. O script init em runlevel S which é ligado simbolicamente a "/etc/init.d/hostname.sh" e define o nome de máquina durante o arranque (usando o comando hostname) para o nome armazenado em "/etc/hostname". Este ficheiro deve conter apenas o nome de máquina do sistema, e não um nome de domínio totalmente qualificado.

Para escrever o nome de máquina actual corra hostname(1) sem argumentos.

3.5.6. O sistema de ficheiros

Apesar do sistema de ficheiros raiz ser montado pelo kernel quando arranca, outros sistemas de ficheiros são montados no runlevel S pelos seguintes scripts de init.

  • "`/etc/init.d/mountkernfs.sh" para sistemas de ficheiros do kernel em "/proc", "/sys", etc.

  • "`/etc/init.d/mountdevsubfs.sh" para sistemas de ficheiros virtuais em "/dev"

  • "`/etc/init.d/mountall.sh" para sistemas de ficheiros normais usando o "/etc/fstab"

  • "`/etc/init.d/mountnfs.sh" para sistemas de ficheiros de rede usando o "/etc/fstab"

As opções de montagem do sistema de ficheiros são definidas em "/etc/fstab". Veja Secção 9.3.6, “Optimização do sistema de ficheiros por opções de montagem”.

[Nota] Nota

A montagem actual de sistemas de ficheiros de rede espera que a interface de rede arranque.

[Atenção] Atenção

Após montar todos os sistemas de ficheiros, os ficheiros temporários em "/tmp", "/var/lock", e "/var/run" são limpos para cada arranque.

3.5.7. Inicialização da interface de rede

As interfaces de rede são iniciadas no runlevel 5 pelo script de init simbolicamente ligado a "/etc/init.d/ifupdown-clean" e "/etc/init.d/ifupdown". Veja Capítulo 5, Configuração de rede para como os configurar.

3.5.8. Inicialização do serviço de rede

Muitos serviços de rede (veja Capítulo 6, Aplicações de rede) são iniciados sob modo de multi-utilizador directamente como processos daemon durante o arranque pelo script de init, ex., "/etc/rc2.d/S20exim4" (para RUNLEVEL=2) o que é um link simbólico para "/etc/init.d/exim4".

Alguns serviços de rede podem ser iniciados a pedido usando o super-servidor inetd (ou o seu equivalente). O inetd é iniciado durante o arranque pelo "/etc/rc2.d/S20inetd" (para RUNLEVEL=2) o qual é um link simbólico para "/etc/init.d/inetd". Essencialmente, o inetd permite que um daemon a correr possa invocar vários outros, reduzindo a carga do sistema.

Sempre que um pedido para serviço chega ao super-servidor inetd, o seu protocolo e serviço é identificado ao procura-lo nas bases de dados em "/etc/protocols" e "/etc/services". O inetd então procura um serviço de Internet normal na base de dados "/etc/inetd.conf", ou um serviço baseado em Open Network Computing Remote Procedure Call (ONC RPC)/Sun RPC em "/etc/rpc.conf".

Por vezes, o inetd não arranca o servidor pretendido directamente mas arranca o programa wrapper de TCP, tcpd(8), com o nome do servidor pretendido como seu argumento em "/etc/inetd.conf". Neste caso, o tcpd corre o programa servidor apropriado após registar em log o pedido e fazer algumas verificações adicionais usando "/etc/hosts.deny" e "/etc/hosts.allow".

Para segurança do sistema, desactive o máximo possível de programas de serviço de rede. Veja Secção 4.6.3, “Restringindo acesso a alguns serviços de servidor”.

Veja inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8), hosts_access(5), hosts_options(5), rpcinfo(8), portmap(8), e "/usr/share/doc/portmap/portmapper.txt.gz".

3.5.9. A mensagem do sistema

The system message can be customized by "/etc/default/rsyslog" and "/etc/rsyslog.conf" for both the log file and on-screen display. See rsyslogd(8) and rsyslog.conf(5). See also Secção 9.2.2, “Analizador de log”.

3.5.10. A mensagem do kernel

A mensagem do kernel pode ser personalizada pelo "/etc/default/klogd" para ambos o ficheiro de registo e a amostragem no ecrã. Defina "KLOGD='-c 3'" neste ficheiro e execute "/etc/init.d/klogd restart". Veja klogd(8).

Você pode alterar directamente o nível de mensagens de erro fazendo o seguinte.

# dmesg -n3

Tabela 3.5. Lista de níveis de erro do kernel

valor de nível de erro nome de nível de erro significado
0 KERN_EMERG sistema está inutilizável
1 KERN_ALERT acção tem de ser tomada imediatamente
2 KERN_CRIT condições críticas
3 KERN_ERR condições de erro
4 KERN_WARNING condições de aviso
5 KERN_NOTICE condição normal mas significante
6 KERN_INFO informativa
7 KERN_DEBUG mensagens de nível de depuração

3.5.11. O sistema udev

Para o kernel Linux 2.6, o sistema udev disponibiliza um mecanismo para a descoberta automática de hardware e sua inicialização (veja udev(7)). Após a descoberta de cada dispositivo pelo kernel, o sistema udev arranca um processo de utilizador que usa informação a partir do sistema de ficheiros sysfs (veja Secção 1.2.12, “procfs e sysfs”), carrega os módulos de kernel necessários para o suportar usando o programa modprobe(8) (veja Secção 3.5.12, “A inicialização de módulos do kernel”), e cria os nós de dispositivo correspondentes.

[Dica] Dica

Se "/lib/modules/<versão-de-kernel>/modules.dep" não foi gerado de modo apropriado pelo depmod(8) por alguma razão, os módulos podem não carregar como esperado pelo sistema udev. Execute "depmod -a" para o corrigir.

OS nomes dos nós de dispositivos podem ser configurados pelos ficheiros de regras do udev em "/etc/udev/rules.d/". As regras predefinidas actuais tentem a criar nomes gerados dinamicamente resultando em nomes de dispositivos não estáticos excepto par dispositivos de cd e rede. Ao adicionar os seus ficheiro personalizados de modo semelhante ao que é feito pelos dispositivos de cd e rede, você também pode gerar nomes estáticos para dispositivos para outros dispositivos como canetas de memória USB. Veja "Escrever regras do udev" ou "/usr/share/doc/udev/writing_udev_rules/index.html".

Como o sistema udev é de certa maneira um alvo em movimento, eu deixo os detalhes para outras documentações e descrevo a informação mínima aqui.

[Dica] Dica

Para regras de montagem em "/etc/fstab", os nós de dispositivo não precisam de ser os estáticos. Você pode usar o UUID para montar os dispositivos em vez dos nomes de dispositivo como "/dev/sda". Veja Secção 9.3.3, “Aceder a partição usando UUID”.

3.5.12. A inicialização de módulos do kernel

O programa modprobe(8) permite-nos configurar o kernel Linux em execução a partir do processo de utilizador ao adicionar e remover módulos do kernel. O sistema udev (veja Secção 3.5.11, “O sistema udev”) automatiza a sua invocação para ajudar na inicialização dos módulos de kernel.

Existem módulos de não-hardware e módulos driver de hardware especial como os seguintes que precisam de ser pré-carregados ao listá-los no ficheiro "/etc/modules" (veja modules(5)).

Os ficheiros de configuração para o programa modprobe(8) estão localizados sob o directório "/etc/modprobes.d/" como explicado em modprobe.conf(5). (Se você deseja evitar que alguns módulos do kernel sejam carregados automaticamente, considere metê-los em lista negra no ficheiro "/etc/modprobes.d/blacklist".)

O ficheiro "/lib/modules/<version>/modules.dep" gerado pelo programa depmod(8) descreve as dependências dos módulos usados pelo programa modprobe(8).

[Nota] Nota

Se você está a ter problemas com a carga de módulos durante o arranque ou com o modprobe(8), "depmod -a" pode resolver esses problemas ao reconstruir "modules.dep".

O programa modinfo(8) mostra informação sobre um módulo do kernel Linux.

O programa lsmod(8) formata lindamente o conteúdo de "/proc/modules", e mostra que módulos do kernel estão actualmente carregados.

[Dica] Dica

Você pode identificar o hardware exacto no seu sistema. Veja Secção 9.6.3, “Identificação do hardware”.

[Dica] Dica

Você pode configurar o hardware durante o arranque par activar as funcionalidades esperadas do hardware. Veja Secção 9.6.4, “Configuração do hardware”.

[Dica] Dica

Você pode adicionar suporta para o seu dispositivo ao recompilar o kernel. Veja Secção 9.7, “O kernel”.