一、进入终端
- 免登录方式:先执行 profile 文件,再执行 /bin/sh ,然后就会出现命令行
::respawn:-/bin/sh
- 登录方式:使用 /bin/login 或者 /sbin/getty 来代替 /bin/sh
::respawn:/bin/login
::respawn:/sbin/getty -L tty 115200 vt100
最常见的用于登录的程序是/sbin/getty,在busybox中/sbin/getty和/bin/login差别不大。
二、修改inittab
下面使用getty方式登录,首先要知道系统中的tty是哪一个设备文件,我的串口设备文件有以下四个。注意不同的系统由于串口驱动不同,所以设备文件名会不一样。
查找控制台在使用哪一个串口设备文件的方法是:先找到类似的四五个比较像的串口设备名,然后依次执行echo hi > /dev/s3c2410_serialx
,控制台有响应的串口设备就是我要找的那个设备。
inittab文件登录部分修改为:
#::askfirst:-/bin/sh
::respawn:/sbin/getty -L s3c2410_serial2 115200 vt100
重新启动系统,发现已经出现了登录提示,但是这里是登录不进去的,因为系统中还没有为用户设置密码。
三、添加passwd和shadow文件
passwd文件中存储用户的密码设置,shadow文件存储的是加密后的文件,采用密文存储。这两个文件可以从ubuntu系统中复制粘贴过来,做一些修改就可以用了。
root@ubuntu:/etc# cp passwd shadow /root/rootfs_zht/rootfs/etc/
修改passwd文件为以下内容,重点是:第一个/root
表示当前用户的主目录,登录之后会默认切换到此目录,因为目前rootfs下还没有root目录,所以需要手动创建root目录;/bin/sh
表示当前用户的默认脚本,登录之后加载此脚本。
root:x:0:0:root:/root:/bin/sh
改到这里就可以进行登录了,root用户的密码和ubuntu中的一样。
四、重置密码
打开shadow文件,将第一行以下不用的东西删掉,保留第一行,再把第一个冒号和第二个冒号之间的内容(即为加密之后的密码)删掉,剩下了如下所示内容:
root::14610:0:99999:7:::
这个时候再使用root用户登录时,不需要输入密码就可以进入系统,使用passwd命令为root用户重新设置密码,到这里密码重置就完成了。
参考资料: 朱老师嵌入式Linux