Como inicializar o Ubuntu 18.04 no modo de emergência e resgate

Como inicializar o Ubuntu 18.04 no modo de emergência e resgate

Objetivo

Aprendendo sobre metas de emergência e resgate do Systemd e como inicializar o sistema neles

Requisitos

  • nenhum requesito especial

Dificuldade

FÁCIL

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

Atualmente, o Systemd se tornou o padrão de fato Sistema init Para todas as principais distribuições Linux.

Substituindo Sysv e Upstart, ele também substituiu a maneira clássica de definir o sistema níveis de execução, usando o sistema alvos, um tipo especial de unidade.

Neste tutorial, veremos como inicializar um Ubuntu 18.04 Sistema no emergência e resgatar metas de sistema e que tipo de ambiente eles oferecem aos usuários.

Systemd Targets vs Classic Runlevels

Systemd introduziu o conceito de alvos que substituiu os níveis clássicos do sistema.

Como exemplo, o que sabia como RUNLEVEL 0 no SYSV, que representa o HALT estado da máquina, é o equivalente ao Systemd desligar alvo.

De forma similar,
RUNLEVEL 1 ou Modo de usuário único encontra seu SystemD equivalente no resgatar alvo.

Finalmente, os níveis 5 e 6, usados ​​respectivamente para o modo gráfico e para reiniciar o sistema, foram agora substituídos pelo gráfico e reinício alvos. O resgatar e o semelhante emergência metas, são sobre o que falaremos neste tutorial: eles são muito úteis para consertar algumas situações críticas.



O alvo de emergência

O emergência Target é o ambiente mais mínimo em que o sistema pode ser inicializado em.

Uma vez atingido esse alvo, uma concha de emergência é iniciada no console principal.

Fora isso, apenas Systemd Ele está disponível para o usuário: apenas o sistema de arquivos raiz é montado (no modo somente leitura) e nenhum serviço é iniciado (isso também significaria que você não terá acesso à rede).

Este é o alvo em que lançamos quando o processo de inicialização não pode ser concluído com sucesso (quando uma verificação do sistema de arquivos falhar, por exemplo).

Como o alvo de emergência é definido

Para verificar como o alvo de emergência é definido, devemos inspecionar o Systemd dedicado unidade.

Podemos usar o Systemctl Cat comando para realizar esta tarefa:

$ SystemCTL CAT Emergência.Target #/lib/Systemd/System/Emergência.Target # Este arquivo faz parte do Systemd. # # Systemd é software livre; Você pode redistribuí -lo e/ou modificá -lo # nos termos da Licença Pública Geral GNU menor, conforme publicado pela # The Free Software Foundation; A qualquer versão 2.1 da licença, ou # (por sua opção) qualquer versão posterior. [Unidade] Descrição = Modo de emergência Documentação = Man: Systemd.Especial (7) requer = Emergência.serviço depois = emergência.Serviço Allowisolate = Sim 
cópia de

Como podemos ver na saída acima, a emergência.alvo requer a emergência relacionada.serviço como uma dependência. Vamos dar uma olhada também:

$ SystemCTL CAT Emergência.Serviço #/lib/Systemd/System/Emergência.Serviço # Este arquivo faz parte do Systemd. # # Systemd é software livre; Você pode redistribuí -lo e/ou modificá -lo # nos termos da Licença Pública Geral GNU menor, conforme publicado pela # The Free Software Foundation; A qualquer versão 2.1 da licença, ou # (por sua opção) qualquer versão posterior. [Unidade] Descrição = Documentação de Shell de emergência = Homem: Sulogin (8) DefaultDependências = sem conflitos = desligamento.conflitos de destino = resgate.serviço antes = desligamento.alvo antes = resgate.serviço [serviço] ambiente = home =/root workingDirectory =-/root execStart =-/lib/systemd/systemd-sulogin-shell type = standardInput de inatividade = tty-force standardOutput = herde standarderror = herde killmode = processo ignoresigpipe = sem sendsighup = sim 
cópia de

A definição do serviço nos fornece informações muito claras.

Primeiro de tudo, o LAR A variável de ambiente é definida através do Ambiente palavra -chave e corresponde ao diretório inicial do usuário raiz.

Este também é o diretório de trabalho usado por padrão quando a emergência.O alvo é alcançado.

Quando este serviço é iniciado, o /lib/Systemd/Systemd-Sulogin-Shell O executável é chamado, que, por sua vez, invoca /usr/sbin/sulogina, Responsável por nos fornecer um login para o shell de usuário único.



Como acessar emergência.alvo na inicialização

Para forçar o sistema a inicializar na emergência.Target, devemos modificar o menu Grub.

Esta é uma operação muito fácil. Quando o menu Grub aparecer, basta selecionar a primeira entrada e pressionar e editar:

Depois de pressionar o e Chave, você poderá modificar os parâmetros de inicialização e a linha de comando do kernel.

Procure a linha começando com Linux:

Neste ponto, acerte Ctrl-e Para chegar ao final da linha, exclua $ VT_HANDOFF e adicione o Systemd.unidade = emergência.alvo Diretiva (você também pode usar apenas emergência Como pseudônimo, para compatibilidade com SYSV), para que sua linha pareça desta maneira:

Se você agora pressionar Ctrl-x ou F10, O sistema irá inicializar no modo de emergência:

Ubuntu 18.04 Modo de emergência

O resgate.alvo

Este é o alvo Systemd que pode ser associado ao modo de usuário único antigo.

Ao contrário do que acontece com a emergência.Target, quando esse alvo é alcançado, o sistema base é puxado: todos os sistemas de arquivos são montados e os serviços mais básicos são lançados e disponibilizados para o usuário.

O resgate.O alvo é definido no/lib/systemd/system/resgate.Arquivo de destino:

#/lib/Systemd/System/Rescue.Target # Este arquivo faz parte do Systemd. # # Systemd é software livre; Você pode redistribuí -lo e/ou modificá -lo # nos termos da Licença Pública Geral GNU menor, conforme publicado pela # The Free Software Foundation; A qualquer versão 2.1 da licença, ou # (por sua opção) qualquer versão posterior. [Unidade] Descrição = Modo de resgate Documentação = Man: Systemd.especial (7) requer = sysinit.Target Rescue.serviço depois = sysinit.Target Rescue.Serviço Allowisolate = Sim 
cópia de

O resgate.alvo, exatamente como o que acontece para a emergência.alvo, requer o relacionado resgatar.serviço, mais o sysinit.alvo.

O primeiro, assim como a emergência.Serviço, basicamente fornece o login de usuário único, enquanto o último puxa os serviços necessários para a inicialização do sistema (diferentemente da emergência.alvo, o resgate.O alvo é mais do que um shell simples).



Inicialize no resgate.alvo

O procedimento para inicializar o sistema em resgate.O alvo é o mesmo que seguimos para fazê -lo inicializar no alvo de emergência.

A única coisa que precisa ser alterada é o argumento adicionado à linha de comando do kernel: em vez de systemd.unidade = emergência.alvo, vamos usar Systemd.unidade = resgate.alvo; Novamente, também podemos usar um alias para compatibilidade do SYSV, substituindo a diretiva por apenas 1.

Uma vez iniciado, o sistema inicializará no resgate.Target, onde podemos administrar o sistema no modo de usuário único:

Ubuntu 18.04 Modo de resgate

Conclusões

Examinamos rapidamente o que são as metas de emergência e resgate do Systemd, no que são diferentes e que tipo de ambiente fornecer ao usuário.

Também vimos como editar o menu Grub para alterar a linha de comando do kernel e inicializar o sistema diretamente para esses alvos.

É importante dizer que os alvos do Systemd também podem ser alcançados, de um sistema já em execução, "isolando", eles, usando o SystemCTL.

Por exemplo, executando:

# SystemCTL isolate resgate.alvo

trará o sistema ao alvo de resgate.

Para um conhecimento mais profundo do sistema unidades especiais, Podemos consultar a Manpage Related e muito clara (Systemd.Especial (7)).

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • Linux pode obter vírus? Explorando a vulnerabilidade do Linux…
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Loging e auditoria avançados no Linux
  • Como fazer bota dupla kali linux e windows 10
  • Download do Linux
  • Mastering Bash Script Loops