页次: 1
我隐约记得很早的sysvinit好象是可以通过传递内核参数改变默认的runlevel让系统启动到一个root权限的shell不需要任何密码的。
现在systemd怎么办啊?我刚才实验了传入systemd.unit=emergency.target内核参数但是没用啊还是要输root密码否则进不去shell。
另外,按照默认的配置,如果向/etc/mkinitcpio.conf添加了base HOOK,在Archlinux启动的时候,在早期用户空间,如果不能挂载根文件系统或者挂载了找不到init,会把我抛到一个shell中(我查了/usr/lib/initcpio/init_function,好象就是sh?)。但是如果把HOOK换掉,换成systemd HOOK,那好像就不提供这种shell了,怎么办才能搞到这个shell(我不想添加base HOOK了)。
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
你改 runlevel 进去之后还是一样要 root 密码的。要直接进 shell 加 init=/bin/bash 就可以。
那个是 ash,加个 break=(pre|post)mount 也可以进去的。如果删除 base hook 的话,按 systemd 的说法是进不到 ash 了的。
离线
你改 runlevel 进去之后还是一样要 root 密码的。要直接进 shell 加 init=/bin/bash 就可以。
这个我很久之前试过,但是记得并没有成功。明日我再实验一次吧。(也没有十分久,当时已经是systemd时代了)
那个是 ash,加个 break=(pre|post)mount 也可以进去的。
我打开init_function看到的写的是sh我也觉得有点奇怪,按理说了早期用户空间里面只有base hook添加的busybox应该只有ash才对,也没有看见哪里做过符号链接。
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
另外还有一个想法就是修改emergency.service让它调用ash,把它加进去的话,initcpio中运行的systemd会不会就能进入ash了。估计就算行也很麻烦……
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
那个软链接是 base hook 做的。你不用 base 的话估计连 busybox 都没有的。
离线
页次: 1