Sumário
Resumo
O boot de um sistema Linux envolve componentes diferentes. O próprio hardware é inicializado pelo BIOS, que inicia o Kernel por meio de um carregador de boot. Depois disso, o processo de boot com init e os níveis de execução são totalmente controlados pelo sistema operacional. O conceito de nível de execução permite que você mantenha configurações para uso diário, e também execute tarefas de manutenção no sistema.
O processo de boot do Linux consiste em vários estágios, cada um deles representado por um componente diferente. A lista a seguir resume o processo de boot e apresenta todos os principais componentes envolvidos.
BIOS. Após ligar o computador, o BIOS inicializa a tela e o teclado e testa a memória principal. Até esse estágio, a máquina não acessa nenhuma mídia de armazenamento em massa. Em seguida, as informações sobre a data e o horário atuais e sobre os periféricos mais importantes são carregadas dos valores do CMOS. Quando o primeiro disco rígido e sua geometria são reconhecidos, o controle do sistema passa do BIOS para o carregador de boot.
Carregador de boot. O primeiro setor de dados físico de 512 bytes do primeiro disco rígido é carregado na memória principal e o carregador de boot existente no início desse setor assume o controle. Os comandos executados pelo carregador de boot determinam a parte restante do processo de boot. Desse modo, os primeiros 512 bytes do primeiro disco rígido são chamados de MBR (Master Boot Record). O carregador de boot passa o controle para o sistema operacional real, neste caso, o Kernel do Linux. Mais informações sobre o GRUB, o carregador de boot do Linux, podem ser encontradas no Capítulo 11, O carregador de boot GRUB.
Kernel e initramfs.
Para passar o controle do sistema, o carregador de boot carrega na memória o Kernel e um sistema de arquivos inicial baseado em RAM (initramfs). O conteúdo do initramfs pode ser usado diretamente pelo Kernel. O initramfs contém um pequeno executável chamado init que faz a montagem do sistema de arquivos raiz real. Se forem necessários drivers de hardware especiais para acessar o armazenamento em massa, eles deverão estar em initramfs. Para obter mais informações sobre o initramfs, consulte a Seção 10.1.1, “initramfs”.
init no initramfs.
Este programa executa todas as ações necessárias para montar o sistema de arquivos raiz apropriado, por exemplo, passar a funcionalidade de Kernel para o sistema de arquivos e os drivers de dispositivo necessários aos controladores de armazenamento em massa com udev. Uma vez encontrado o sistema de arquivos raiz, ele é verificado quanto a erros e montado. Se esse procedimento for bem-sucedido, o initramfs será limpo e o programa init no sistema de arquivos raiz será executado. Para obter mais informações sobre o init, consulte a Seção 10.1.2, “init no initramfs”. Há mais informações a respeito do udev no Capítulo 15, Gerenciamento dinâmico de dispositivos do Kernel com udev.
init.
O init realiza a inicialização do sistema em diversos níveis, oferecendo funcionalidades diferentes. O init está descrito na Seção 10.2, “O processo do init”.
initramfs¶
initramfs é um pequeno arquivo cpio que pode ser carregado pelo Kernel em um disco RAM. Ele fornece um ambiente Linux mínimo que permite a execução de programas antes da montagem do sistema de arquivos raiz. Esse ambiente Linux mínimo é carregado na memória pelas rotinas de BIOS e não têm requisitos de hardware específicos, além de memória suficiente. O initramfs deve sempre fornecer um executável chamado init que deve executar o programa init real no sistema de arquivos raiz para a continuação do processo de boot.
Antes da montagem do sistema de arquivos raiz e da inicialização do sistema operacional, o Kernel precisa dos drivers correspondentes para acessar o dispositivo em que o sistema de arquivos raiz está localizado. Esses drivers podem incluir drivers especiais para determinados tipos de unidades de disco rígido ou até drivers de rede para acesso a um sistema de arquivos de rede. Os módulos necessários para o sistema de arquivos raiz podem ser carregados pelo init no initramfs. Depois de carregados os módulos, o udev fornecerá os dispositivos necessários ao initramfs. Posteriormente no processo de boot, depois de mudar o sistema de arquivos raiz, será necessário gerar novamente os dispositivos. Isso é feito através de boot.udev com o comando udevtrigger.
Se você precisar mudar o hardware (por exemplo, discos rígidos) em um sistema instalado e esse hardware necessitar da presença de drivers diferentes no Kernel durante o boot, será necessário atualizar o initramfs. Isso é feito da mesma maneira que com seu antecessor, init—chamando o mkinitrd. A chamada de mkinitrd sem argumentos cria um initramfs. Chamar o mkinitrd -R cria um init. No SUSE® Linux Enterprise Desktop, os módulos a serem carregados são especificados pela variável INITRD_MODULES em /etc/sysconfig/kernel. Após a instalação, essa variável é definida automaticamente para o valor correto. Os módulos são carregados na mesma ordem em que são exibidos em INITRD_MODULES. Isso só é importante quando você depende da configuração correta dos arquivos de dispositivo /dev/sd?. No entanto, em sistemas atuais, também é possível usar os arquivos de dispositivo em /dev/disk/ que são classificados em vários subdiretórios, chamados by-id, by-path e by-uuid, e que sempre representam o mesmo disco. Isso também é possível na hora da instalação, especificando a respectiva opção de montagem.
![]() | Atualizando o initramfs ou o init |
|---|---|
O carregador de boot carrega o | |
initramfs¶
O principal objetivo do init no initramfs é preparar a montagem e o acesso ao sistema de arquivos raiz real. Dependendo da configuração do sistema, o init será responsável pelas tarefas a seguir.
Dependendo da configuração do seu hardware, drivers especiais podem ser necessários para acessar os componentes de hardware do computador (sendo que o componente mais importante é a unidade de disco rígido). Para acessar o sistema de arquivos raiz final, o Kernel precisa carregar os drivers adequados do sistema de arquivos.
Para cada módulo carregado, o Kernel gera eventos de dispositivo. O udev gerencia esses eventos e gera os arquivos de bloco especiais necessários em um sistema de arquivos RAM em /dev. Sem esses arquivos especiais, o sistema de arquivos e outros dispositivos não estariam acessíveis.
Se você tiver configurado o sistema para armazenar o sistema de arquivos raiz no RAID ou no LVM, o init configurará o LVM ou o RAID para permitir acesso posterior ao sistema de arquivos raiz. Obtenha informações sobre RAID e LVM no Capítulo 12, Advanced Disk Setup (↑Guia de Implantação).
Se você tiver configurado o sistema para usar um sistema de arquivos raiz montado em rede (via NFS), o init deverá verificar se os drivers de rede corretos foram carregados e estão configurados para permitir acesso ao sistema de arquivos raiz.
Quando o init é chamado durante o boot inicial como parte do processo de instalação, suas tarefas são diferentes das que foram mencionadas acima:
Quando o processo de instalação é iniciado, a máquina carrega um Kernel de instalação e um init especial com o instalador do YaST localizado na mídia de instalação. O instalador do YaST, executado em um sistema de arquivos em RAM, necessita das informações sobre a localização do meio de instalação para acessá-lo e instalar o sistema operacional.
Como mencionado na Seção 10.1.1, “initramfs”, o processo de boot é iniciado com um conjunto mínimo de drivers que pode ser usado com a maioria das configurações de hardware. O init inicia um processo de exploração de hardware que determina o conjunto de drivers adequado à sua configuração de hardware. Os nomes dos módulos necessários ao processo de boot são gravados em INITRD_MODULES, localizado em /etc/sysconfig/kernel. Esses nomes são usados para gerar um initramfs personalizado necessário para inicializar o sistema. Se os módulos não forem necessários para o boot, mas forem para coldplug, eles serão gravados em /etc/sysconfig/hardware/hwconfig-*. Todos os dispositivos descritos com arquivos de configuração nesse diretório são inicializados durante o processo de boot.
Assim que o hardware for reconhecido corretamente, os drivers adequados serão carregados, o udev criará os arquivos de dispositivos especiais e o init iniciará o sistema de instalação com o instalador real do YaST ou o sistema de recuperação.
Por fim, o init inicia o YaST, que inicia a instalação do pacote e a configuração do sistema.
init¶
O programa init tem ID de processo 1. Ele é responsável por inicializar o sistema da maneira necessária. O init é iniciado diretamente pelo Kernel e resiste ao sinal 9, que normalmente elimina processos. Todos os outros programas são iniciados diretamente pelo init ou por um de seus processos filho.
O init é configurado centralmente no arquivo /etc/inittab em que os níveis de execução são definidos (consulte a Seção 10.2.1, “Níveis de execução”). O arquivo também especifica os serviços e os daemons disponíveis em cada um dos níveis de execução. Dependendo das entradas em /etc/inittab, vários scripts são executados pelo init. Por padrão, o primeiro script iniciado após o boot é o /etc/init.d/boot. Após concluída a fase de inicialização do sistema, o nível de execução do sistema muda para o padrão com o script /etc/init.d/rc. Para fins de clareza, esses scripts, chamados scripts init, residem no diretório /etc/init.d (consulte a Seção 10.2.2, “Scripts Init”).
Todo o processo de inicialização e encerramento do sistema é mantido pelo init. Desse ponto de vista, o Kernel pode ser considerado um processo em segundo plano para manter todos os outros processos e ajustar o tempo de CPU e o acesso ao hardware de acordo com as solicitações de outros programas.
No Linux, os níveis de execução definem como o sistema é iniciado e quais serviços estão disponíveis no sistema em execução. Após o boot, o sistema é iniciado conforme definido em /etc/inittab na linha initdefault. Normalmente, é 3 ou 5. Consulte a Tabela 10.1, “Níveis de execução disponíveis”. Como alternativa, é possível especificar o nível de execução durante o boot (adicionando o número do nível de execução no prompt de boot, por exemplo). Os parâmetros que não forem avaliados diretamente pelo próprio Kernel serão passados para o init. Para inicializar no nível de execução 3, adicione o número 3 ao prompt de boot.
Tabela 10.1. Níveis de execução disponíveis¶
|
Nível de execução |
Descrição |
|---|---|
|
0 |
Desligamento do sistema |
|
S ou 1 |
Modo de usuário único |
|
2 |
Modo multiusuário local sem rede remota (NFS, etc.) |
|
3 |
Modo multiusuário completo com rede |
|
4 |
, não usado a menos que o administrador configure este nível de execução. |
|
5 |
Modo multiusuário completo com rede e gerenciador de exibição X — KDM, GDM ou XDM |
|
6 |
Reinicialização do sistema |
![]() | evite o Nível de execução 2 com uma partição montada via NFS |
|---|---|
Você não deverá usar o nível de execução 2 se seu sistema montar uma partição como | |
Para mudar os níveis de execução durante a execução do sistema, digite telinit e o número correspondente como um argumento. Somente o administrador do sistema pode fazer isso. A lista a seguir resume os comandos mais importantes na área de nível de execução.
O sistema muda para o modo de usuário único. Esse modo é usado para manutenção do sistema e tarefas de administração.
Todos os programas e serviços essenciais (incluindo a rede) são iniciados, e os usuários comuns podem efetuar login e trabalhar no sistema sem um ambiente gráfico.
O ambiente gráfico é habilitado. Geralmente um gerenciador de exibição como XDM, GDM ou KDM é iniciado. Se o login automático estiver habilitado, o usuário local será conectado ao gerenciador de janelas pré-selecionado (GNOME ou KDE ou qualquer outro gerenciador de janelas).
O sistema é desligado.
O sistema é desligado e, em seguida, reinicializado.
O nível de execução 5 é o nível de execução padrão em todas as instalações padrão do SUSE Linux Enterprise Desktop. É solicitado o login dos usuários com uma interface gráfica ou o usuário padrão está conectado automaticamente.
Geralmente, há duas situações quando os níveis de execução são mudados. Primeiro, os scripts de parada do nível de execução atual são iniciados, fechando alguns programas essenciais ao nível de execução atual. Em seguida, os scripts do novo nível de execução são iniciados. Na maioria dos casos, vários programas são iniciados. Por exemplo, ocorre o seguinte quando o nível de execução 3 muda para 5:
O administrador (root) solicita que o init mude para um nível de execução diferente digitando telinit 5.
O init verifica o nível de execução atual (runlevel) e determina se ele deve iniciar /etc/init.d/rc com o novo nível de execução como parâmetro.
Agora, rc chama os scripts de parada do nível de execução atual para os quais não há script de início no novo nível de execução. Neste exemplo, todos os scripts residem em /etc/init.d/rc3.d (o nível de execução antigo era 3) e iniciam com K. O número após K especifica a ordem de execução dos scripts com o parâmetro stop, pois algumas dependências devem ser consideradas.
Os scripts do novo nível de execução são os últimos a serem iniciados. Neste exemplo, eles estão em /etc/init.d/rc5.d e começam com S. Mais uma vez, o número após S determina a sequência de início dos scripts.
Ao mudar para o mesmo nível de execução que o atual, o init somente verifica as mudanças em /etc/inittab e inicia as etapas apropriadas, por exemplo, para iniciar um getty em outra interface. A mesma funcionalidade pode ser obtida com o comando telinit q.
Há dois tipos de scripts em /etc/init.d:
init
Isso só ocorrerá durante o processo de boot ou se for iniciado um encerramento imediato do sistema (falha de energia ou pressionamento de Ctrl+Alt+Del pelo usuário). A execução desses scripts é definida em /etc/inittab.
init
São executados durante a mudança do nível de execução e sempre chamam o script master /etc/init.d/rc, que garante a ordem correta dos scripts relevantes.
Todos os scripts estão localizados em /etc/init.d. Scripts que são executados durante o boot são chamados através de links simbólicos de /etc/init.d/boot.d. Os scripts para mudança do nível de execução são chamados através de links simbólicos em um dos subdiretórios (/etc/init.d/rc0.d para /etc/init.d/rc6.d). Isso só serve para fins de clareza, além de evitar scripts duplicados se forem usados em vários níveis de execução. Como todos os scripts podem ser executados como de início ou de parada, eles devem entender os parâmetros start e stop. Os scripts também entendem as opções restart, reload, force-reload e status. Essas diversas opções são explicadas na Tabela 10.2, “Opções possíveis do script init”. Os scripts executados diretamente pelo init não têm esses links. Eles são executados independentemente do nível de execução, quando necessário.
Tabela 10.2. Opções possíveis do script init¶
|
Opção |
Descrição |
|---|---|
|
|
Iniciar serviço. |
|
|
Interromper serviço. |
|
|
Se o serviço estiver sendo executado, vai pará-lo ou reiniciá-lo. Se não estiver, vai iniciá-lo. |
|
|
Recarregar a configuração sem parar e reiniciar o serviço. |
|
|
Recarregar a configuração se o serviço suportá-la. Caso contrário, age como se |
|
|
Mostrar o status atual do serviço. |
Os links em cada subdiretório específico de nível de execução possibilitam a associação de scripts a diferentes níveis de execução. Durante a instalação ou desinstalação de pacotes, esses links são adicionados e removidos com a ajuda do programa insserv (ou usando /usr/lib/lsb/install_initd, que é um script que chama esse programa). Consulte man 8 insserv para mais detalhes.
Todas essas configurações também podem ser mudadas com a ajuda do módulo do YaST. Se precisar verificar o status na linha de comando, use a ferramenta chkconfig, descrita na página de manual de man 8 chkconfig.
Veja a seguir uma pequena apresentação dos scripts de boot e de parada iniciados primeiro e por último, respectivamente, bem como uma explicação do script de manutenção.
boot
Executado na inicialização do sistema usando diretamente o init. É independente do nível de execução escolhido e só é executado uma vez. Aqui, os sistemas de arquivos /proc e /dev/pts são montados, e blogd (boot logging daemon — daemon de registro de boot) é ativado. Se o sistema for inicializado pela primeira vez após uma atualização ou instalação, a configuração inicial do sistema será iniciada.
O daemon blogd é um serviço iniciado por boot e rc antes de qualquer outro. Ele é interrompido após a conclusão das ações acionadas por esses scripts (que executam vários subscripts, por exemplo, disponibilizando arquivos de bloco especiais). blogd grava qualquer saída de tela no arquivo de registro /var/log/boot.msg, mas somente se e quando /var for montado como leitura-gravação. Caso contrário, o blogd armazenará no buffer todos os dados de tela até que /var se torne disponível. Obtenha mais informações sobre o blogd com man 8 blogd.
O script boot também é responsável pela inicialização de todos os scripts em /etc/init.d/boot.d cujos nomes começam com S. Nesse local, todos os sistemas de arquivos são verificados e os dispositivos de loop são configurados se necessário. O horário do sistema também é definido. Se ocorrer um erro durante a verificação e o reparo automáticos do sistema de arquivos, o administrador do sistema poderá intervir após digitar a senha raiz. O último script executado é boot.local.
boot.local
Digite aqui comandos adicionais a serem executados na inicialização antes de mudar para um nível de execução. Ele pode ser comparado ao AUTOEXEC.BAT em sistemas DOS.
halt
Esse script é executado apenas ao mudar para o nível de execução 0 ou 6. Aqui, ele é executado como init ou como init. O modo como halt é chamado determina se o sistema deve ser encerrado ou reinicializado. Se houver necessidade de comandos especiais durante o encerramento, adicione-os ao script init.
rc
Este script chama os scripts de parada adequados do nível de execução atual e os scripts de início do nível de execução recém-selecionado. Assim como o script /etc/init.d/boot, esse script é chamado de /etc/inittab com o nível de execução desejado como parâmetro.
Você pode criar seus próprios scripts e integrá-los facilmente no esquema descrito acima. Para obter instruções sobre como formatar, nomear e organizar scripts personalizados, consulte as especificações do LSB e as páginas de manual de init, init.d, chkconfig e insserv. Além disso, consulte as páginas de manual do startproc e killproc.
![]() | Scripts Init com falha podem desligar o sistema |
|---|---|
Scripts | |
Para criar um script init personalizado para determinado programa ou serviço, use o arquivo /etc/init.d/skeleton como modelo. Grave uma cópia desse arquivo com o novo nome e edite o programa relevante e nomes de arquivos, caminhos e outros detalhes necessários. Você também pode precisar aprimorar o script com suas próprias partes, de modo que as ações corretas sejam acionadas pelo procedimento init.
O bloco INIT INFO na parte superior é uma parte necessária do script e deve ser editada. Consulte o Exemplo 10.1, “Um bloco INIT INFO mínimo”.
Exemplo 10.1. Um bloco INIT INFO mínimo¶
### BEGIN INIT INFO # Provides: FOO # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ ### END INIT INFO
Na primeira linha do bloco INFO, após Provides:, especifique o nome do programa ou serviço controlado pelo script init. Nas linhas Required-Start: e Required-Stop:, especifique todos os serviços que precisam continuar em execução quando o próprio serviço for interrompido. Essas informações são usadas posteriormente para gerar a numeração dos nomes de script, como encontrada nos diretórios de nível de execução. Depois de Default-Start: e Default-Stop:, especifique os níveis de execução em que o serviço deve ser iniciado ou parado automaticamente. Por fim, para Description:, forneça uma breve descrição do serviço em questão.
Para criar os links dos diretórios de nível de execução (/etc/init.d/rc?.d/) para os scripts correspondentes em /etc/init.d/, digite o comando insserv new-script-name. insserv avalia o cabeçalho INIT INFO para criar os links necessários aos scripts de início e parada nos diretórios de nível de execução (/etc/init.d/rc?.d/). O programa também se encarrega da ordem correta de início e parada para cada nível de execução, incluindo os números necessários nos nomes desses links. Se você preferir uma ferramenta gráfica para criar esses links, use o editor de nível de execução fornecido pelo YaST, conforme descrito na Seção 10.2.3, “Configurando o System Services (Runlevel) com o YaST”.
Se um script já presente em /etc/init.d/ precisar ser integrado ao esquema de nível de execução existente, crie os links nos diretórios de nível de execução imediatamente com insserv ou habilitando o serviço correspondente no editor de nível de execução do YaST. As mudanças serão aplicadas durante a próxima reinicialização, e o novo serviço será iniciado automaticamente.
Não defina esses links manualmente. Se houver algum erro no bloco INFO, surgirão problemas quando insserv for executado posteriormente para algum outro serviço. O serviço adicionado manualmente será removido na próxima execução de insserv para esse script.
Após iniciar esse módulo do YaST em ++, ele exibirá uma visão geral listando todos os serviços disponíveis e o status atual de cada um (desabilitado ou habilitado). Decida se o módulo deve ser usado no ou no . O padrão deve ser suficiente na maior parte dos casos. A coluna à esquerda mostra o nome do serviço, a coluna ao centro indica seu status atual e a coluna à direita fornece uma descrição resumida. Para o serviço selecionado, uma descrição mais detalhada é fornecida na parte inferior da janela. Para habilitar um serviço, selecione-o na tabela e, em seguida, selecione . As mesmas etapas se aplicam para desabilitar um serviço.
Para ter mais controle sobre os níveis de execução em que um serviço é iniciado ou parado ou para mudar o nível de execução padrão, selecione primeiro . O nível de execução padrão atual ou o “initdefault” (o nível de execução em que o sistema é inicializado por padrão) é exibido na parte superior. Normalmente, o nível de execução padrão de um sistema SUSE Linux Enterprise Desktop é o 5 (modo multiusuário completo com rede e X). Uma alternativa adequada poderia ser o nível de execução 3 (modo multiusuário completo com rede).
Esta caixa de diálogo do YaST permite a seleção de um dos níveis de execução (conforme listado na Tabela 10.1, “Níveis de execução disponíveis”) como o novo padrão. Além disso, use a tabela mostrada nessa janela para habilitar ou desabilitar serviços e daemons individuais. A tabela lista os serviços e daemons disponíveis, mostra se eles estão habilitados no sistema e, se estiverem, para quais níveis de execução. Após selecionar uma das linhas com o mouse, clique nas caixas de seleção que representam os níveis de execução (, , , , , , e ) para definir os níveis de execução em que o serviço ou daemon selecionado deve estar em execução. O nível de execução 4 é indefinido para permitir a criação de um nível de execução personalizado. Uma breve descrição do serviço ou daemon selecionado no momento é fornecida abaixo da visão geral da tabela.
![]() | Configurações de nível de execução defeituosas podem danificar o sistema |
|---|---|
Configurações de nível de execução defeituosas podem tornar o sistema inutilizável. Antes de aplicar as mudanças, tenha absoluta certeza sobre suas consequências. | |
Com , decida se um serviço deve ser ativado. verifica o status atual. permite selecionar se você deseja aplicar as mudanças ao sistema ou restaurar as configurações existentes antes de inicializar o editor de nível de execução. Selecione para gravar as configurações modificadas no disco.
/etc/sysconfig¶
A configuração principal do SUSE Linux Enterprise Desktop é controlada pelos arquivos de configuração em /etc/sysconfig. Os arquivos individuais em /etc/sysconfig são lidos somente pelos scripts para os quais são relevantes. Isso garante que as configurações de rede, por exemplo, somente precisem ser analisadas pelos scripts relacionados à rede.
Há duas maneiras de editar a configuração do sistema. Use o Editor sysconfig do YaST ou edite os arquivos de configuração manualmente.
O editor sysconfig do YaST fornece um front end fácil de usar para a configuração do sistema. Quando não souber a localização real da variável de configuração que precisa ser mudada, você pode apenas usar a função de pesquisa interna desse módulo, mudar o valor dessa variável conforme necessário e permitir que o YaST se encarregue de aplicar essas mudanças atualizando as configurações que dependem dos valores definidos no sysconfig e reiniciando os serviços.
![]() | a modificação dos arquivos /etc/sysconfig/* pode danificar a instalação |
|---|---|
Não modifique os arquivos | |
A caixa de diálogo do sysconfig do YaST é dividida em três partes. A parte esquerda mostra uma tela de árvore de todas as variáveis configuráveis. Quando você seleciona uma variável, a parte direita exibe a seleção e a definição atuais dessa variável. Abaixo, uma terceira janela exibe uma descrição resumida da finalidade da variável, os valores possíveis, o valor padrão e o arquivo de configuração do qual essa variável se origina. A caixa de diálogo também fornece informações sobre qual script de configuração é executado após a mudança da variável e qual novo serviço é iniciado como resultado da mudança. O YaST solicita a confirmação das mudanças e informa quais scripts serão executados depois que você sair da caixa de diálogo selecionando . Além disso, selecione os serviços e scripts que devem ser ignorados agora e iniciados mais tarde. O YaST aplica todas as mudanças automaticamente e reinicia os serviços envolvidos para que as mudanças sejam efetivadas.
Para mudar manualmente a configuração do sistema, faça o seguinte
Torne-se root.
Coloque o sistema no modo de usuário único (nível de execução 1) com telinit 1.
Mude os arquivos de configuração, conforme o necessário, com um editor de sua preferência.
Se você não usar o YaST para mudar os arquivos de configuração em /etc/sysconfig, verifique se os valores vazios das variáveis são representados por duas aspas (KEYTABLE="") e se os valores com espaços em branco estão delimitados por aspas. Os valores constituídos de somente uma palavra não precisam ficar entre aspas.
Execute SuSEconfig para verificar se as mudanças foram efetivadas.
Coloque o sistema de volta no nível de execução anterior com o comando telinit nível_de_execução_padrão. Substitua nível_de_execução_padrão pelo nível de execução padrão do sistema. Escolha 5 para retornar ao modo multiusuário completo com rede e X ou escolha 3 se preferir trabalhar no modo multiusuário completo com rede.
Esse procedimento é relevante principalmente durante a mudança das configurações em todo o sistema, como a configuração da rede. Pequenas mudanças não devem requerer alternar para o modo de usuário único, mas você pode fazer isso para ter certeza de que todos os programas em questão foram reiniciados corretamente.