我需要在不使用systemd
和使用 Jessie 的情况下使用initramfs
.
但似乎存在一些不兼容的地方。在启动过程中,我得到:
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... /scripts/init-premount/devpts: line 21: mountpoint: not found
看来用途 /usr/share/initramfs-tools/scripts/init-top/udev
(systemd
我从系统中卸载并替换为sysvinit
):
#Content of udev
/lib/systemd/systemd-udevd --daemon --resolve-names=never
#Content of udev (to be continued)
因此,它无法正确安装系统并为devpts
下一个脚本做好准备。因此启动时会出现错误。
重新使用initramfs
以前的 Debian 版本(wheezy)中的脚本(从 init-top 到 init-bottom)可以吗?
或者是否有另一种(更简单的方法)使我当前的 initramfs 工作(仅修改某些文件)?
编辑: 我使用名为 Armbian 的 Debian 风格。我没有任何桌面环境,仅将其用作无头服务器
答案1
首先你需要安装Sysvinit
包:
apt-get install sysvinit-core sysvinit-utils
cp /usr/share/sysvinit/inittab /etc/inittab
配置grub:
编辑/etc/default/grub
文件并将其更改GRUB_CMDLINE_LINUX_DEFAULT
为:
GRUB_CMDLINE_LINUX_DEFAULT="init=/lib/sysvinit/init console=hvc0 console=ttyS0"
更新grub
:
update-grub
重新启动,然后删除所有 systemd 软件包:
apt-get remove --purge --auto-remove systemd
要防止apt
将来安装 systemd 软件包,请运行:
echo -e 'Package: systemd\nPin: release *\nPin-Priority: -1' > /etc/apt/preferences.d/systemd
echo -e '\n\nPackage: *systemd*\nPin: release *\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd
将重要包固定到 wheezy:
echo deb http://ftp.debian.org/debian/ wheezy main contrib non-free >/etc/apt/sources.list.d/wheezy.list
echo -e '\n\nPackage: policykit-1\nPin: origin "wheezy"\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd
echo -e '\n\nPackage: libpolkit-*\nPin: origin "wheezy"\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd
echo -e '\n\nPackage: upower\nPin: origin "wheezy"\nPin-Priority: -1' >> /etc/apt/preferences.d/systemd
安装 polkit:
apt-get install polkit-1 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 upower udisks
重启