Usando a segunda inicialização do init / systemd na partição diferente

1

Temos a seguinte configuração:

  • Uma partição do sistema somente leitura a partir da qual o kernel é inicializado. (Debian Jessie)
  • Uma partição de leitura / gravação que possui software adicional para ser iniciado como daemons.
  • Um script de inicialização personalizado simples na partição do r / w para iniciar os daemons. Este script é iniciado como o último serviço do systemd na partição r / o.

Como posso aproveitar uma variante init moderna (systemd / init / initng / ...) para (independentemente do r / o systemd) iniciar as coisas na partição r / w?

    
por astifter 14.06.2018 / 09:34

1 resposta

0

Você pode usar uma montagem de sobreposição para atuar nos dois conjuntos de scripts de inicialização de forma transparente, com a ressalva de que os serviços especificados na partição RW Sombreie aqueles no RO.

Suponha para concretude nesta descrição que você está usando systemd , que a partição RO é a partição raiz e que a partição RW está montada em /rw e contém dois diretórios, systemd e work . Você pode fazer uma montagem de sobreposição da seguinte forma:

mount -t overlay -o lowerdir=/etc/systemd,upperdir=/rw/systemd,workdir=/rw/work overlay /etc/systemd

Isso pode ser especificado em /etc/fstab :

# Previous fstab entries to ensure /rw is mounted
overlay /etc/systemd overlay lowerdir=/etc/systemd,upperdir=/rw/systemd,workdir=/rw/work 0 0

Com essa entrada fstab , os dois diretórios serão mesclados na inicialização e aparecerá para systemd (e todo o resto) como um único conjunto de scripts de inicialização. As tentativas de gravar em /etc/systemd serão redirecionadas para a partição RW.

Este método não é específico para systemd . Ele é generalizado para qualquer sistema init que atue no conteúdo de algum diretório.

    
por 14.06.2018 / 10:28