Я перепаковываю Debian Buster Live ISO. Сначала я распаковываю filesystem.squashfs
, затем chroot
в распакованной системе вношу свои изменения.
Я хочу, чтобы мой ISO автоматически входил в систему (терминал). Я следовалэта техника, но мне это не удалось, потому что я получаю ошибку:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Поэтому я не могу использовать systemctl
, что приводит к этой ошибке.
Ответы, которые я нашел здесь, чтобы обойти ошибку, говорят о необходимости использовать service
вместо systemctl
, что в моем случае не применимо.
Можно ли выполнить автоматический вход, используя другой метод?
Возможно ли добиться systemctl
функционирования внутри chroot
, чтобы я мог применить вышеописанную технику?
Предварительный ответ:
[email protected]
Я создал файл /lib/systemd/system
и сделал системную ссылку в /etc/systemd/system/multi-user.target.wants/
. Содержимое файла.
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
Это привело меня к автологину. Я подожду понимания, прежде чем ответить на свой собственный вопрос.
решение1
Примечание: Это может быть связано или не связано с вашей проблемой, но проблема, которую я здесь описываю, приведет к тем же сообщениям об ошибках, которые вы показывали из-за отсутствующей символической ссылки.
Я не эксперт, но в Debian 10 (Buster) система инициализации по умолчанию — , systemd
что означает, что /sbin/init
( /usr/sbin/init
) будет ссылаться на systemd
.
К сожалению, есть ошибка, которую я заметил при запуске нескольких гостевых систем KVM, из-за которой удаляется символическая ссылка /sbin/init
, которая ссылается на /lib/systemd/systemd
. Я не знаю причины этого, однако я подозреваю, что org.freedesktop.systemd1
(я абсолютно не знаю, что это) может быть причиной.
Правильная символическая ссылка
Правильный вывод будет таким:
root@vpstest:~# ls -la /sbin/init
lrwxrwxrwx 1 root root 20 Jan 29 19:07 /sbin/init -> /lib/systemd/systemd
Отсутствует символическая ссылка
Если это так, возможно, что-то не так:
root@vps1:~# ls -la /sbin/init
-rwxr-xr-x 1 root root 53016 Feb 14 2019 /sbin/init
Исправить
Чтобы это исправить, я просто удаляю этот файл и перестраиваю символическую ссылку:
rm /sbin/init && ln -s /lib/systemd/systemd /sbin/init
При использовании virsh вам необходимо уничтожить, а затем запустить гостевую систему:
virsh destroy vps1 && virsh start vps1