1.配置主机名
可以发现,在之前的rc.sysinit中设置了主机名,并且配置了IP地址。但是这两个参数 经常需要修改,不能每次要改动就来修改启动脚本,万一改错了,系统不能启动就麻烦了。
[root@centos501 sysroot]# cat etc/rc.d/rc.sysinit
#!/bin/bash
echo -e "\t Welcome to Mylinux..."
/bin/hostname localhost
echo -e "initializing network device..."
/sbin/insmod /lib/modules/e1000.ko
/sbin/ifconfig eth0 10.10.1.208/24
/sbin/ifconfig lo 127.0.0.1/8
/bin/bash
因此,可以将主机名这个参数弄到外面的一个配置文件中,比如/etc/sysconfig/network
这个
配置文件中。
[root@centos501 sysroot]# mkdir etc/sysconfig
[root@centos501 sysroot]# vim etc/sysconfig/network
[root@centos501 sysroot]# cat etc/sysconfig/network
HOSTNAME=mylinux
修改一下rc.sysinit配置文件
[root@centos501 ~]# cd /mylinux/sysroot/
[root@centos501 sysroot]# vim etc/rc.d/rc.sysinit
[root@centos501 sysroot]# cat etc/rc.d/rc.sysinit
#!/bin/bash
echo -e "\t Welcome to Mylinux..."
[ -f /etc/sysconfig/network ]&& . /etc/sysconfig/network
[ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
echo -e "initializing network device..."
/sbin/insmod /lib/modules/e1000.ko
/sbin/ifconfig eth0 10.10.1.208/24
/sbin/ifconfig lo 127.0.0.1/8
/bin/bash
[root@centos501 sysroot]#
主要过程就是获取配置文件的变量,如果没有HOSNAME变量或者为none的话就赋值localhost。
[ -f /etc/sysconfig/network ]&& . /etc/sysconfig/network
[ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
测试一下:
这下理解为啥永久修改主机名的时候需要修改/etc/sysconfig/network
这个配置文件了。
2.TTY
在centos中可以使用Ctl+Alt+Fn来切换到一个新的终端中,但是每次必须要重新输入一次 用户名和密码。
而且,一般就只有F1~F6,F7就没了,可能centos设计者认为6个已经足够了,其实个人觉得 有两个就差不多啦,哈哈。
[root@centos501 sysroot]# cat /etc/inittab
...
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
...
这几行决定的,不信删几行试试。
整两行到我们自己的新系统中
[root@centos501 sysroot]# vim etc/inittab
[root@centos501 sysroot]# cat etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
# 新系统中还没有mingetty
[root@centos501 sysroot]# cpcommand.sh
Your command: mingetty
copy /sbin/mingetty finished.
Continue: q
# 需要把rc.sysinit中的/bin/bash去掉,否则直接跳到bash中了,不执行mingetty。
[root@centos501 sysroot]# vim etc/rc.d/rc.sysinit
[root@centos501 sysroot]# cat etc/rc.d/rc.sysinit
#!/bin/bash
echo -e "\t Welcome to Mylinux..."
[ -f /etc/sysconfig/network ]&& . /etc/sysconfig/network
[ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
echo -e "initializing network device..."
/sbin/insmod /lib/modules/e1000.ko
/sbin/ifconfig eth0 10.10.1.208/24
/sbin/ifconfig lo 127.0.0.1/8
#/bin/bash
[root@centos501 sysroot]#
测试一下:出现登陆提示符,并且只有F1和F2能切换。
我们的系统还么有用户管理相关的内容,因此,这样以后没法玩了。调整一下, 使用agetty可以不用用户名和密码。
[root@centos501 sysroot]# cpcommand.sh
Your command: agetty
copy /sbin/agetty finished.
Continue: q
[root@centos501 sysroot]# vim etc/inittab
[root@centos501 sysroot]# cat etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty1
2:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty2
测试一下:
参考
- http://www.thinksaas.cn/topics/0/608/608975.html