成功启动系统和通过nfs挂载根文件系统后进行相关的系统配置和优化

在上一次成功移植内核通过tftp方式下载内核并且通过nfs方式挂载根文件系统后,基本就可以看到在系统启动后有控制台输出,但是会一直报错,原因就是根文件系统缺少部分文件,在系统启动挂载根文件系统时需要运行相关文件,比如rcS,inittab,profile等文件,导致控制台会一直输出相关错误信息。
接下来就是对系统进行相关的配置

需要配置的文件有
在这里插入图片描述

第一步就是在根文件目录下的etc/下添加inittab文件

#first:run the system script file 运行系统时先运行的脚本
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:-/sbin/reboot
#umount all filesystem
::shutdown:/bin/umount -a -r
#restart init process
::restart:/sbin/init

这里提一下这个文件下文本的命令格式为id:runlevel:action:process
id:字段:action:process
再重新启动系统就可以看到提示,进入控制台也没有相关的报错信息输出,应该说在进入控制台后
在这里插入图片描述
首先通过分析可知,在初始化时执行 /etc/init.d/rcS ,可以看到这里的rcS就是一个初始化脚本,导出环境变量,设置runlevel即运行模式为S(单用户模式)和prevlevel
umask是设置创建目录时默认的权限,这里为022,在Linux下可以通过命令umask查出其默认创建目录的权限
接下来就是导出runlevel和prevlevel
mount -a 用来挂载文件系统的,mount -a的意思是挂载所有的应该挂载的文件系统,在busybox中mount -a时会去查找一个文件/etc/fstab、并执行这个文件
默认没有这个sysconfig目录和HOSTNAME文件,需要创建
/bin/hostname -F /etc/sysconfig/HOSTNAME下的HOSTNAME存放的就是主机名,启动后用来设置系统主机名的
ifconfig eth0 192.168.1.20设置网络ip,建议和uboot设置的一致,不然通过nfs挂载会断开重连需要时间,也很麻烦

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

runlevel=S
prevlevel=N

umask 022

export PATH runlevel prevlevel

mount -a

echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

/bin/hostname -F /etc/sysconfig/HOSTNAME

ifconfig eth0 192.168.1.20

下一个文件fstab

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#       <file system>   <mount point>   <type>  <options>       <dump>  <pass>
        proc                    /proc                   proc    defaults        0               0
        sysfs                   /sys                    sysfs   defaults        0               0
        tmpfs                   /var                    tmpfs   defaults        0               0
        tmpfs                   /tmp                    tmpfs   defaults        0               0
        tmpfs                   /dev                    tmpfs   defaults        0               0

和挂载相关的

启动后登陆login设置
还有后面需要设置启动登陆后再进入控制台的,第一需要在inittab文件下的#::askfirst:-/bin/sh替换成::askfirst:-/bin/login

#first:run the system script file
::sysinit:/etc/init.d/rcS
#::askfirst:-/bin/sh
::askfirst:-/bin/login
::ctrlaltdel:-/sbin/reboot
#umount all filesystem
::shutdown:/bin/umount -a -r
#restart init process
::restart:/sbin/init

除此之外还需要在Ubuntu下的etc/下拷贝passwd和shadow两个文件到所挂载的根文件系统下的etc/目录下,对其进行一定的修改
passwd文件
在这里插入图片描述
shadow文件
在这里插入图片描述
这里的是含有密码的,而且这个密码进行的加密,这里的这个文件下只看到了这个XEkxNPCSDuKwQ是其加密后的密文,对于我们刚移植可以不需要这个,先将其删除后发现登陆只需要输入用户名而不需要密码,回车即可进入控制台,可以通过passwd root的方式进行设置密码。
配置完成功启动后挂载根文件系统的效果
在这里插入图片描述

多提一嘴:有可能会发现系统启动后控制台输出没有init.d/rcS这个文件,可能是在在windows下编辑的这个文件,需要在串口输出的控制台下打开这个文件删除每一行后面的^M字符,太多坑了。。。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值