Localização do script Fsck

2

Eu preciso descobrir que tipo de script executa o fsck durante a inicialização no CentOS 7? Eu sei que todos os cenários estão localizados no diretório /etc/rc.d. Mas eu não tenho ideia sobre onde está esse script.

    
por fuser 18.10.2015 / 13:44

2 respostas

10

I know that all scenarios are located in /etc/rc.d directory.

O que você sabe está errado.

Bem-vindo ao CentOS 7. O mundo mudou. Em particular, sua base do Red Hat Enterprise Linux 7 mudou. Você está usando um sistema operacional Linux systemd. Muito da sabedoria recebida sobre o Linux não é verdadeira para esses sistemas.

fsck não é executado por nenhum script nos sistemas operacionais Linux do systemd.

O formato nativo do systemd é a unidade , que pode ser, entre outras coisas, uma unidade de serviço ou uma unidade de montagem . O gerenciamento de serviço do systemd opera somente em termos daqueles que ele lê em um dos nove diretórios em que (em todo o sistema) .service e .mount arquivos podem viver. /etc/systemd/system , /run/systemd/system , /usr/local/lib/systemd/system e /usr/lib/systemd/system são quatro desses diretórios.

Seu banco de dados /etc/fstab é convertido em unidades de montagem por um programa denominado systemd-fstab-generator . Este programa é listado no diretório /usr/lib/systemd/system-generators/ e, portanto, é executado automaticamente pelo systemd no início do processo de autoinicialização a cada inicialização e, novamente, toda vez que o systemd for instruído a recarregar sua configuração posteriormente.

Este programa é um gerador , um tipo de utilitário auxiliar cujo trabalho é criar arquivos de unidade em tempo real, em um tmpfs onde mais três desses nove diretórios (que se destinam a ser usados somente por geradores) estão localizados. systemd-fstab-generator gera .mount unidades que montam os volumes. Estas, por sua vez, referenciam .service unidades que executam fsck .

Essas unidades de serviço fsck não existem como arquivos no sistema de arquivos (nem mesmo em um tmpfs) e não são produtos de um gerador. Eles são instanciados pelo systemd a partir de um arquivo de unidade de serviço modelo , denominado [email protected] , usando o nome do dispositivo como o nome da instância da unidade de serviço. A instanciação acontece por causa das referências Requires= e After= a systemd-fsck@device.service das .mount unidades geradas.

Este modelo instanciado é um serviço que executa um programa chamado systemd-fsck , que configura uma conexão cliente-servidor para exibir informações de progresso e, em seguida, executa fsck . systemd-fsck é um programa C compilado, não um script interpretado.

Leitura adicional

por 18.10.2015 / 15:50
0

Se o CentOS 7 ainda estiver usando a configuração do SysV, sob /etc/rc.d são todos os scripts, um rápido grep deve mostrar onde é chamado. Os próprios scripts são vinculados (sob seus nomes, precedidos por precedência) nos diretórios /etc/rc/X , o desembaraçamento não é muito difícil. Entender os roteiros é outra chaleira de peixe ...

Se já estiver usando systemd (veja, por exemplo, aqui para obter uma visão geral), os arquivos de configuração estão em /lib/systemd e configuração específica está em /etc/systemd . Mais uma vez, confira grep(1) e entre.

    
por 18.10.2015 / 14:53

Tags