Estou reembalando um ISO do Debian Buster Live. Primeiro descompacto o arquivo filesystem.squashfs
, depois, chroot
no sistema não compactado, faço minhas alterações.
Quero que meu ISO faça login automaticamente (terminal). eu seguiessas técnicas, mas falhei porque recebi o erro:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Então não posso usar systemctl
, o que gera esse erro.
As respostas que encontrei aqui para contornar o erro dizem usar service
em vez de systemctl
, o que não se aplica no meu caso.
É possível fazer login automático usando outra técnica?
É possível funcionar systemctl
dentro de um chroot
, para que eu possa aplicar a técnica acima?
Resposta provisória:
Criei o arquivo [email protected]
em /lib/systemd/system
e fiz um sysmlink em /etc/systemd/system/multi-user.target.wants/
. O conteúdo do arquivo.
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
Isso me levou ao login automático. Vou esperar por insights antes de responder minha própria pergunta.
Responder1
Observação: Isso pode estar ou não relacionado ao seu problema, mas o problema que explico aqui levará às mesmas mensagens de erro que você mostrou devido à falta de um link simbólico.
Não sou um especialista, mas no Debian 10 (Buster) o sistema init padrão é systemd
o que significa que /sbin/init
( /usr/sbin/init
) será vinculado a systemd
.
Infelizmente, notei um bug ao executar vários convidados KVM que faz com que o link simbólico /sbin/init
vinculado /lib/systemd/systemd
seja removido. Não sei o motivo disso, porém, suspeito que org.freedesktop.systemd1
(não sei absolutamente o que é) possa ser o motivo.
Link simbólico correto
A saída correta seria:
root@vpstest:~# ls -la /sbin/init
lrwxrwxrwx 1 root root 20 Jan 29 19:07 /sbin/init -> /lib/systemd/systemd
Link simbólico ausente
Se isso mostrar, pode haver algo errado:
root@vps1:~# ls -la /sbin/init
-rwxr-xr-x 1 root root 53016 Feb 14 2019 /sbin/init
Consertar
Para corrigir isso, apenas removo esse arquivo e reconstruo o link simbólico:
rm /sbin/init && ln -s /lib/systemd/systemd /sbin/init
Ao usar o virsh, você precisa destruir e iniciar o convidado:
virsh destroy vps1 && virsh start vps1