編寫inittab
inittab的格式爲 終端設備:運行級別:執行條件:命令
執行條件可選有:sysinit, respawn, askfirst, wait, once,restart, ctrlaltdel, and shutdown.
sysinit:在系統引導期間執行進程
respawn:無論什麼時候進程結束,都會重啓這個進程
askfirst:和respawn的唯一區別是,在運行這個進程前,需要按下entr鍵確認
wait:進程執行,init將等待這個進程執行結束
once:進程執行
restart:重啓時執行的進程
ctrlaltdel:接收到SIGINT信號,執行進程。在系統控制終端中按下ctrl+alt+del,可以發送SIGINT信號
shutdown:關閉時,執行的操作
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
1:在系統引導的時候執行/etc/init.d/rcS
2.按下enter執行sh
3.ctrl+alt+del被按下就重啓
4.關機的時候卸載所有掛載設備
編寫rcS文件
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#設置環境變量
runlevel=S
#單用戶運行模式
prevlevel=N
umask 022
#文件創建默認權限
export PATH runlevel prevlevel
#導出環境變量
mount -a
#掛載/etc/fstab的所有配置
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
#啓用mdev
/bin/hostname -F /etc/sysconfig/HOSTNAME
#設置用戶名
#ifconfig eth0 192.168.0.88
編寫fstab文件
/etc/fstab
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
添加hostname文件
/etc/sysconfig/HOSTNAME
直接寫入主機名
minicoco
到這裏可以啓動下系統看看了,設備掛載和/dev下的驅動節點都已經生成好了,執行命令hostname可以顯示出minicoco,可是命令行開頭並沒有顯示主機名和登錄用戶名,這時候還要配置登錄行爲。
profile文件
etc/profile
這個文件配置了最大文件句柄和用戶名
# Ash profile
# vim: syntax=sh
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
這個時候有主機名了,但還缺少用戶名
passwd文件
/etc/passwd 先配個root用戶,其他的等後面再創建
root:x:0:0:root:/root:/bin/sh
shadow文件
/etc/shadow
root:::0:99999:7:::
分九段,第二段爲加密後的密碼,直接先爲空,這個時候登錄以及可以看到用戶名和主機了,但是還沒有登錄流程,下面配置一下用戶登錄。
修改inittab
之前是使用
::askfirst:-/bin/sh
直接進入了終端,下面吧這行換成getty來登錄,先看一下自己機器上的串口驅動有哪些,以及正在使用的串口驅動
cat /proc/tty/drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
usbserial /dev/ttyUSB 188 0-253 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
pty_slave /dev/ttyp 3 0-31 pty:slave
pty_master /dev/pty 2 0-31 pty:master
unknown /dev/tty 4 1-63 console
ttyAMA /dev/ttyAMA 204 64-77 serial
cat /proc/tty/driver/ttyAMA
serinfo:1.0 driver revision:
0: uart:PL011 rev3 mmio:0xC00A1000 irq:7 tx:113149 rx:5329 RTS|DTR
1: uart:PL011 rev3 mmio:0xC00A0000 irq:6 tx:0 rx:0 CTS|DSR|CD
2: uart:PL011 rev3 mmio:0xC00A2000 irq:8 tx:0 rx:0
3: uart:PL011 rev3 mmio:0xC00A3000 irq:9 tx:0 rx:0
4: uart:PL011 rev3 mmio:0xC006D000 irq:10 tx:0 rx:0
我這裏是ttyAMA,查看/dev下的驅動文件,其實是ttyAMA0,可以使用下面的方法來驗證,可以看到終端會另起一行打印123
echo 123 > /dev/ttyAMA0
因此將inittab中啓動的配置換成
ttyAMA0::respawn:/sbin/getty -L ttyAMA0 115200
這個時候重啓會讓我們登錄,先用root賬戶登錄,沒有配置密碼直接回車即可,之後就可以愉快的玩耍了。