systemd를 제거했습니다

systemd를 제거했습니다

저는 데비안 사용자입니다.

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/initsysvinit-coresystemd

빈 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 systemdCommandline: apt autoremove systemd. 해당 항목 아래에 나타나는 제거된 패키지를 확인 Remove:하고 아직 누락되었을 수 있는 패키지를 다시 추가하세요.

관련 정보