저는 데비안 사용자입니다.
systemd를 제거하고 다른 것을 설치하지 않았습니다.
나는 도망 갔다 sudo apt remove systemd
. 그리고 나는 도망쳤다 sudo apt autoremove systemd
.
그 후, 내 노트북은 인터넷에 연결할 수 없었고 GUI도 사용할 수 없었습니다. 명령줄 인터페이스에서 멈춰 있었습니다(로그인한 후에 명령을 실행할 수 있었습니다). 이 문제를 어떻게 해결할 수 있나요?
답변1
아래의 모든 명령은 루트로 실행된다고 가정합니다. 루트로 직접 로그인하거나, 가능하지 않은 경우 sudo
사용 및 사용이 허용된 사용자로 로그인하십시오. 끝에 a가 있는 sudo -i
루트 프롬프트가 있어야 합니다 .#
/var/log/apt
다음을 백업해야 합니다.
cp -a /var/log/apt /root/log-apt-backup
이렇게 하면 나중에 다시 설치해야 할 수 있는 제거된 다른 패키지를 찾을 수 있습니다.
System V에 대한 지원이 약해지고 있기 때문에 일부 GUI 부분이 시스템 기능에 의존하여 부팅에 실패한다고 가정할 수 있습니다.
를 다시 설치해야 하지만 이것만으로는 충분하지 않을 수 있습니다. 다른 필수 종속성을 트리거하려면 System V를 제공하는 것을 systemd
제거해야 합니다 . 교체 System V 패키지를 제거하면 설치가 트리거되는 것과 마찬가지로 이 패키지를 제거하면 systemd 에코시스템에서 교체가 트리거됩니다./sbin/init
sysvinit-core
systemd
빈 LXC 컨테이너에서 테스트되었습니다.
root@bookworm-test:~# apt remove systemd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
initscripts insserv orphan-sysvinit-scripts sensible-utils startpar sysv-rc
sysvinit-core ucf
Suggested packages:
bootchart2 bootlogd
The following packages will be REMOVED:
dbus-user-session libnss-systemd libpam-systemd systemd systemd-resolved
systemd-sysv
The following NEW packages will be installed:
initscripts insserv orphan-sysvinit-scripts sensible-utils startpar sysv-rc
sysvinit-core ucf
0 upgraded, 8 newly installed, 6 to remove and 0 not upgraded.
등을 수정하려면 나중에 다시 시작하십시오(이것을 실행하지 마십시오. 충분하지 않습니다).
# apt install systemd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
systemd-timesyncd
Suggested packages:
systemd-container systemd-homed systemd-userdbd systemd-boot
systemd-resolved libqrencode4 libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0
polkitd | policykit-1
The following NEW packages will be installed:
systemd systemd-timesyncd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
충분히 유용한 작업을 수행하지 않습니다(sys V init에 남아 있음).
대신에:
root@bookworm-test:~# apt remove sysvinit-core
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
initscripts insserv startpar sysv-rc
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
dbus-user-session libnss-systemd libpam-systemd systemd systemd-sysv
systemd-timesyncd
Suggested packages:
systemd-container systemd-homed systemd-userdbd systemd-boot
systemd-resolved libqrencode4 libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0
polkitd | policykit-1
The following packages will be REMOVED:
sysvinit-core
The following NEW packages will be installed:
dbus-user-session libnss-systemd libpam-systemd systemd systemd-sysv
systemd-timesyncd
0 upgraded, 6 newly installed, 1 to remove and 0 not upgraded.
더 유용해 보입니다. 권장 패키지 중 하나 이상을 설치해야 합니다. ( polkitd
이 작업은 끝에 추가하여 한 번의 작업으로 수행할 수 있습니다.) 마지막으로 다음을 실행하십시오.+
remove
apt remove sysvinit-core polkitd+
이를 위해서는 네트워크가 필요합니다. OP(실제로 내 LXC 테스트)에는 더 이상 기본적으로 네트워크가 없는 것 같습니다. 이 문제는 다음과 같은 유선 이더넷 인터페이스를 사용하여 쉽게 해결할 수 있습니다 eth0
(실제 이름은 ip -br link
결과에서 검색할 수 있으며 eth0
필요한 경우 아래 이름을 해당 이름으로 바꿉니다).
dhclient -v eth0
그런 다음 이전 apt
명령을 다시 시도하십시오.
최소 시스템에서는 다음과 같이 표시됩니다.
# apt remove sysvinit-core polkitd+
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
initscripts insserv startpar sysv-rc
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
dbus-user-session libduktape207 libglib2.0-0 libglib2.0-data libicu72
libnss-systemd libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0
libxml2 sgml-base shared-mime-info systemd systemd-sysv systemd-timesyncd
xdg-user-dirs xml-core
Suggested packages:
low-memory-monitor polkitd-pkla sgml-base-doc systemd-container
systemd-homed systemd-userdbd systemd-boot systemd-resolved libqrencode4
libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0 debhelper
The following packages will be REMOVED:
sysvinit-core
The following NEW packages will be installed:
dbus-user-session libduktape207 libglib2.0-0 libglib2.0-data libicu72
libnss-systemd libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0
libxml2 polkitd sgml-base shared-mime-info systemd systemd-sysv
systemd-timesyncd xdg-user-dirs xml-core
0 upgraded, 18 newly installed, 1 to remove and 0 not upgraded.
그런 다음 재부팅하고 systemd로 다시 전환하십시오. 이는 GUI를 복원할 수도 있고 복원하지 않을 수도 있지만 systemd
이를 확인하려면 다음을 실행하십시오(루트로).
ldd /proc/1/exe | grep systemd
비어 있지 않은 출력이 있어야 합니다.
위의 작업을 완료한 후 로그 백업을 확인 /root/log-apt-backup/history.log
하고 실행한 명령과 유사한 줄을 검색합니다: Commandline: apt remove systemd
및 Commandline: apt autoremove systemd
. 해당 항목 아래에 나타나는 제거된 패키지를 확인 Remove:
하고 아직 누락되었을 수 있는 패키지를 다시 추가하세요.