Processo de inicialização do sistema operacional Linux

Processo de inicialização do sistema operacional Linux

 

índice

Processo de inicialização do sistema operacional Linux

PUBLICAR

Inicialização MBR

Menu GRUB

Carregue o kernel Linux

inicialização do processo init

Processo de inicialização do sistema

processo de inicialização

Tipo de unidade Systemd

Resolver falhas de inicialização

Reparar falha do setor MBR

Corrigir falha de inicialização do GRUB

Esqueci a senha do usuário root


PUBLICAR

Depois que o host do servidor é ligado, a CPU, memória, placa de vídeo, teclado e outros dispositivos serão testados inicialmente de acordo com as configurações no BIOS da placa-mãe. Após o teste ser bem sucedido, o controle do sistema será transferido de acordo com a inicialização predefinida seqüência e, na maioria das vezes, será transferido para o disco rígido local.
Resumo: O primeiro dispositivo capaz de inicializar o sistema é detectado, como um disco rígido ou uma unidade óptica

Inicialização MBR

Ao iniciar o sistema a partir do disco rígido local, primeiro transfira o controle do sistema diretamente para a partição que contém os arquivos de inicialização do sistema operacional de acordo com a configuração MBR (Master Boot Record) no primeiro setor do disco rígido ou diretamente de acordo com a inicialização no registro MBR As informações chamam o menu de inicialização (como GRUB).
Resumo: Execute o programa de inicialização GRUB colocado no setor MBR

Menu GRUB

Para o sistema operacional Linux, GRUB (Unified Boot Loader) é o programa de bootloader de vários sistemas mais amplamente usado. Depois que o controle do sistema é passado para o GRUB, o menu de inicialização será exibido para o usuário escolher, e o arquivo do kernel do Linux será carregado de acordo com a opção selecionada (ou o valor padrão), e então o controle do sistema será transferido para o kernel.
CentOS 7 usa o carregador de boot GRUB2.
Resumo: O programa de inicialização do GRUB lê o arquivo de configuração do GRUB /boot/grub2/grub.cfg para obter o kernel e as configurações do sistema de arquivos de espelho e os locais do caminho

Carregue o kernel Linux

O kernel Linux é um arquivo binário especial pré-compilado, entre vários recursos de hardware e programas de sistema, responsável pela alocação e programação de recursos. Depois que o kernel assumir o controle do sistema, ele controlará totalmente o processo de execução de todo o sistema operacional Linux.
No sistema CentOS 7, o arquivo kernel padrão está localizado em "/boot/vmlinuz-3.10.0-514.el7.x86_64".
Resumo: Carregue o kernel e o sistema de arquivos de espelho na memória

inicialização do processo init

Para completar o processo de inicialização do sistema, o kernel do Linux carrega primeiro o programa "/ sbin / init" no sistema na memória para executar (o programa em execução é chamado de processo), o processo init é responsável por completar a inicialização de todo o sistema e, finalmente, espera que o usuário faça o login.
Resumo: carregue o driver de hardware, o kernel carrega o processo init na memória para executar

O sysvinit tradicional depende da execução serial de scripts Shell para iniciar os serviços, resultando em baixa eficiência e inicialização lenta do sistema. O
Systemd pode iniciar mais processos de serviço em paralelo e tem a capacidade de fornecer serviços de inicialização sob demanda, para que menos processos possam ser iniciados , melhorando assim a velocidade de inicialização do sistema.

Processo de inicialização do sistema

processo de inicialização

O programa / sbin / init
é carregado e executado pelo kernel do Linux. O processo init é o primeiro processo no sistema. O número
PID (tag do processo) do processo init é sempre 1

Systemd

Systemd é um tipo de software init do sistema operacional Linux.
CentOS7 adota um novo método de inicialização Systemd, substituindo o SysVinit tradicional
. O primeiro processo init em execução no CentOS é / lib / systemd / systemd

Tipo de unidade Systemd

  1. .services: Uma unidade de serviço descreve como gerenciar um serviço ou aplicativo no servidor. Isso incluirá como iniciar ou interromper o serviço, sob quais circunstâncias ele deve ser iniciado automaticamente e dependências de software relacionadas e informações de sequenciamento.
  2. .socket: Um arquivo de unidade de socket descreve uma rede ou socket IPC ou um buffer FIFO usado pelo systemd para ativação de socket básico. O arquivo .services iniciará quando o socket definido nesta unidade estiver ativo.
  3. .devic: Descreve um dispositivo designado por udev ou sysfs como a unidade do gerenciador do systemd. Nem todas as configurações têm arquivos .device. Em alguns casos, a unidade de dispositivo pode ser necessária para comandar, montar e acessar o dispositivo.
  4. .mount: Esta unidade define um ponto de montagem gerenciado pelo systemd no sistema. Esses arquivos são nomeados após o caminho de montagem e as barras são alteradas para travessões. As entradas em / etc / fstab terão unidades criadas automaticamente.
  5. .automount: Uma unidade .automount é configurada com um ponto de montagem que será montado automaticamente. Eles devem ser solicitados de acordo com o ponto de montagem envolvido e devem ter uma unidade .mount correspondente para definir os detalhes da montagem.
  6. .swap: Esta unidade descreve o espaço de troca no sistema. Os nomes desses arquivos devem refletir o dispositivo ou arquivo de espaço.
  7. .target: Uma unidade alvo fornece pontos de sincronização para outras unidades quando ela inicia ou muda de estado. Eles também podem ser usados ​​para colocar o sistema em um novo estado. Outras unidades especificam seus alvos equivalentes para vincular as operações do alvo.
  8. .path: esta unidade define um caminho que pode ser usado para ativação baseada em caminhos. Por padrão, uma unidade .service com o mesmo nome de base será iniciada quando o caminho atingir o estado especificado. Isso usa o inotify para monitorar as mudanças de caminho.
  9. .timer: uma unidade .timer define um cronômetro gerenciado pelo systemd, semelhante a um cron job para atrasar ou agendar a ativação. Uma unidade correspondente será iniciada quando o cronômetro chegar.
  10. .snapshot: Uma unidade .snapshot é criada automaticamente pelo comando systemctl snapshot. Ele permite que você reconstrua o estado atual do sistema após fazer alterações. Os instantâneos não sobrevivem nas sessões. Os instantâneos são usados ​​para reverter o estado temporário.
  11. .slice: Uma unidade .slice está associada ao nó do Grupo de Controle do Linux, permitindo que recursos sejam restritos ou atribuindo fatias de tempo correspondentes ao processo associado. O nome reflete sua posição hierárquica na árvore cgroup. As unidades são colocadas em certas posições por padrão, de acordo com seu tipo.
  12. .scope: A unidade do osciloscópio é criada automaticamente pelo systemd com base nas informações recebidas de sua interface de barramento. Eles são usados ​​para o conjunto de gerenciamento de processos de sistema criados externamente.
  13. .target descreve um conjunto de unidades systemd

Resolver falhas de inicialização

Reparar falha do setor MBR

causa do problema

Danos causados ​​por vírus, cavalos de Tróia, etc., operações incorretas de partição, erros de leitura e gravação de disco

Fenômeno de falha

Não é possível encontrar o programa de inicialização, início interrompido, não é possível carregar o sistema operacional, tela preta após a inicialização

Soluções

O arquivo de backup deve ser preparado com antecedência, inicialize no modo de emergência com o CD de instalação e, em seguida, restaure a partir do arquivo de backup

Corrigir falha de inicialização do GRUB

causa do problema

O programa de inicialização GRUB no MBR está danificado, o arquivo grub.conf está ausente e a configuração de inicialização está incorreta

Fenômeno de falha

A inicialização do sistema trava e o prompt "grub>" é exibido

Soluções

Tente inserir manualmente o comando de inicialização para entrar no modo de recuperação, reescrever ou restaurar grub.conf do backup e, em seguida, reconstruir o programa grub no setor MBR

Corrigir falha de inicialização do GRUB

O pacote no diretório / boot / grub / é usado para a imagem de fundo e estilo do menu de inicialização

/boot/grub2/grub.cfg #GRUB arquivo de configuração

Método 1: insira manualmente o comando de guia (desajeitado e incômodo, não recomendado)

grub> insmod xfs # carregue o módulo especificado para o kernel

grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root = UUID = 8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG = zh_CN.UTF-8 # Nome e localização do kernel e outras informações

grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img # Arquivo de sistema do espelho

grub> boot #boot boot

Método 2: entrar no modo de emergência e restaurar o programa de inicialização GRUB

MBR está localizado no primeiro setor físico do primeiro disco rígido (/ dev / sda), um total de 512 bytes, os primeiros 466 bytes são o registro mestre de inicialização, a tabela de partição é armazenada nos 477-510 bytes no MBR setor em.

mkdir / look

montar / dev / sdb1 / bak

dd if = / dev / sda de = / bak / grub.bak bs = 446 contagem = 1

#Simula a destruição do programa de inicialização GRUB no MRB, mas não destrói a tabela de partição

dd se = / dev / zero de = / dev / sda bs = 446 contagem = 1

# A interface de inicialização entra no modo de emergência e restaura o programa de inicialização GRUB do arquivo de backup

sh-4.2 # mkdir / backupdir

sh-4.2 # mount / dev / sdb1 / backupdir

sh-4.2 # dd if = / backupdir / grub.bak de = / dev / sda

sh-4.2 # exit

Método 3: entrar no modo de emergência e reconstruir o arquivo de configuração do menu GRUB

rm -rf /boot/grub2/grub.cfg

# Entre no modo de resgate, sistema de carregamento de imagem, o sistema é alternado para o ambiente raiz
sh-4.2 # chroot / mnt / sysimage

# Reinicialização do GRUB instalado no primeiro disco rígido (/ dev / sda) do bash-4.2 do setor MRB

# Reconstruir o arquivo de configuração do menu GRUB
bash-4.2 # grub2-mkconfig -o /boot/grub2/grub.cfg

# Saia do ambiente chroot e reinicie o
bash-4.2 # Saia do
SH-4.2 # reboot

Esqueci a senha do usuário root

Entre no modo de emergência, carregue a imagem do sistema, mude para o ambiente raiz do sistema
sh-4.2 # chroot / mnt / sysimage
redefina a senha do usuário root
bash-4.2 # passwd root

ferramenta systemctl

Não fornece janelas interativas e visuais e gerencia um único serviço de forma mais eficiente

Ver o status de inicialização dos serviços do sistema

systemctl is-enabled service name

Defina o status de inicialização do serviço do sistema ligado / desligado

systemctl ativar / desativar nome do serviço

Modificar permanentemente o nome do host

hostnamectl set-hostname newname

Ver o status do nome do host

status hostnamectl

Defina o idioma do sistema para chinês

localectl set-locale LANG = zh_CN.utf8

Veja o idioma usado pelo sistema atual

localectl [status]

Ver o tempo de inicialização do sistema

systemd-analyse

 

 

 

 

Acho que você gosta

Origin blog.csdn.net/Alen686/article/details/113931815
Recomendado
Clasificación