LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1000|回复: 5

(登录无响应)请问如何找回/bin/login程序(已解决)

[复制链接]
发表于 2007-1-30 10:00:42 | 显示全部楼层 |阅读模式
在升级gentoo system模块时:emerge --update system 发现有个名为pam-log的包block,所以一冲动把它给unmerge了,结果使得tty登录无响应。发现它缷除了一些如login,lastlog有关的命令,当时就觉得不妙,但找不回来了。
请教安装哪个包可以找回吗?
已经试过emerge pam-log可是找不到这个模块。
 楼主| 发表于 2007-1-31 13:26:02 | 显示全部楼层
哈,已解决:
1.用livecd引导mount 硬盘分区,备份inittab后,将inittab的c1:12345:respawn:/sbin/agetty 38400 tty1 linux 改为c1:12345:respawn:/bin/bash。自动登录为root
2.重启后将有一个shell可以用,此时再用emerge更新linux-utils或者busybox就可以得到一个可登录的环境了。
3.使用备份的inittab继续愉快地使用gentoo...
回复 支持 反对

使用道具 举报

发表于 2007-2-1 12:59:09 | 显示全部楼层
麻烦解释一下第一步的含义
回复 支持 反对

使用道具 举报

发表于 2007-2-1 13:17:58 | 显示全部楼层
Post by Zer4tul
麻烦解释一下第一步的含义



http://www.gentoo.org/doc/en/han ... l?part=2&chap=4

详细到家了。
回复 支持 反对

使用道具 举报

发表于 2007-2-1 13:50:41 | 显示全部楼层
可以在内核启动参数上加上 init=/bin/sh 启动系统之后再修复系统.
回复 支持 反对

使用道具 举报

发表于 2007-2-1 15:15:53 | 显示全部楼层
在内核启动的最后阶段,内核会启动第一个用户进程
首先它会看init参数,如果指定了这个参数,那么就执行这个参数所指定的程序
否则就尝试执行几个事先定好的程序
注意run_init_process会调用execve,所以调用成功后是不会返回的
/usr/src/linux/init/main.c
        if (execute_command) {
                run_init_process(execute_command);
                printk(KERN_WARNING "Failed to execute %s.  Attempting "
                                        "defaults...\n", execute_command);
        }
        run_init_process("/sbin/init");
        run_init_process("/etc/init");
        run_init_process("/bin/init");
        run_init_process("/bin/sh");

        panic("No init found.  Try passing init= option to kernel.");
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表