我正在重新打包 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
,這會引發此錯誤。
我在這裡找到的繞過錯誤的答案是使用 useservice
而不是systemctl
,這不適用於我的情況。
是否可以使用其他技術自動登入?
是否可以systemctl
在 a 內部運行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) 中,預設的 init 系統是,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 時,您需要銷毀然後啟動 guest 虛擬機器:
virsh destroy vps1 && virsh start vps1