方法 1.
grub 中直接 init=/bin/bash
方法 2.
代码:
mv /sbin/init /sbin/init.bak
ln -s /bin/bash /sbin/init
方法 3.
inittab 中 /sbin/mingetty tty1 改为
/bin/bash
或
/sbin/mingetty -n -l /bin/bash tty1
区别是用 tty 还是直接用 console 设备
方法 4.
代码:
mv /bin/login /bin/login.bak
ln -s /bin/bash /bin/login
或
代码:
mv /bin/login /bin/login.bak
cat > /bin/login << EOF && chmod +x /bin/login
/bin/bash
EOF
方法 n 多,关键是要清楚 SysVinit 原理或 Linux 启动原理
大致来说 kernel 启动后如果没有指定 init (即方法1)
默认会执行 /sbin/init (方法2);
init 会调用 /etc/inittab 信息(方法3);
mingetty/agetty/getty 会调用 /bin/login(方法4);
login 会最终把控制权交给 /bin/bash
修改中间任何一个环节都可以达到目的
总结起来是两类方式:
1. 不执行 getty
2. 让 getty 不执行 login
http://www.linuxsir.org/bbs/thread358516.html
文章评论(0条评论)
登录后参与讨论