Linux根文件系統搭建二

構建文件系統

dev 目錄

init 進程需要用到“/dev/console”和“/dev/null”這兩個設備文件,所以,需要在製作文件系統時靜態創建這兩個設備文件

mknod console c 5 1

mknod null c 1 3

etc 目錄

fstab :指明需要掛載的文件系統

group:用戶組

inittab:init進程的配置文件

shadow :使用passwd命令創建密碼時需要該文件的參與

passwd:密碼文件

profile:用戶環境配置文件

mdev.conf:因爲2.6.18版本開始Linux放棄使用devfs而採用udev(mdev是udev的簡化版本),這裏的mdev.conf

                    文件可以是空,也可以按照一定規則來編寫,這裏添加了自動掛載和卸載SD卡和U盤的腳本文件在其中

resolv.conf:存放DNS信息的文件,訪問外網時需要DNS的信息

init.d 目錄:啓動文件目錄,該目錄下面有個 rcS的文件裏面存放了系統啓動時配置以及自動加載的進程等

sysconfig目錄:存放HOSTNAME的文件,

rc.d目錄用來存放一些自啓動所要調用的腳本等

完整文件系統內容呢如下

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
ramfs        /dev        ramfs    defaults        0    0

group

root:*:0:
daemon:*:1:
bin:*:2:
sys:*:3:
adm:*:4:
tty:*:5:
disk:*:6:
lp:*:7:lp
mail:*:8:
news:*:9:
uucp:*:10:
proxy:*:13:
kmem:*:15:
dialout:*:20:
fax:*:21:
voice:*:22:
cdrom:*:24:
floppy:*:25:
tape:*:26:
sudo:*:27:
audio:*:29:
ppp:x:99:
500:x:500:sky
501:x:501:sky

inittab

# /etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::once:/usr/sbin/telnetd -l /bin/login
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

shadow

內容爲空即可 

說明:當使用passwd命令時需要該文件的參與

passwd

root::0:0:root:/:/bin/sh
ftp::14:50:FTP User:/var/ftp:
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
nobody:*:99:99:Nobody:/:
lzc:$1$8GIZx6d9$L2ctqdXbYDzkbxNURpE4z/:502:502:Linux User,,,:/home/lzc:/bin/sh

注意:lzc:$1$8GIZx6d9$L2ctqdXbYDzkbxNURpE4z/:502:502:Linux User,,,:/home/lzc:/bin/sh  密碼是不可逆的編碼,獲取方法

使用passwd lzc命令然後設定密碼,再打開這個文件時就存在密碼信息了,然後將密碼複製到pc中的文件系統即可

profile

# Ash profile 
# vim: syntax=sh

# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1

#export set HOME=/root
#export set QTDIR=/opt/PDA
#export set QPEDIR=/opt/PDA
#export set QWS_DISPLAY="LinuxFB:/dev/fb0"
#export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
#export set QWS_KEYBOARD="TTY:/dev/tty1"
#if [ -f /sys/devices/virtual/input/input1/uevent ] ; then
#    export set TSLIB_TSDEVICE=/dev/event1
#    export set TSLIB_CALIBFILE=/etc/pointercal
#    export set TSLIB_CONFFILE=/etc/ts.conf
#    export set TSLIB_PLUGINDIR=/lib/ts
#    export set QWS_MOUSE_PROTO="TSLIB:/dev/event1 MouseMan:/dev/mice"
#else
#    export set QWS_MOUSE_PROTO="MouseMan:/dev/mice"
#fi
#export set QT_PLUGIN_PATH=$QTDIR/plugins/
#export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
#export set PATH=$QPEDIR/bin:$PATH
#export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_PATH

USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH

HOSTNAME=`/bin/hostname`

export USER LOGNAME PS1 PATH


mdev.conf

sd[a-z]*[0-9]        0:0    0660    @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /udisk)
sd[a-z]*[0-9]        0:0    0660    *(umount /udisk)
mmcblk[0-9]*p[0-9]    0:0    0660    @(mount -t vfat -o iocharset=cp936 /dev/$MDEV /sddisk)
mmcblk[0-9]*p[0-9]    0:0    0660    *(umount /sddisk)
dsp            0:0    0660    =sound/

resolv.conf

nameserver 202.96.128.86
nameserver 202.96.134.133

init.d/rcS

#!/bin/sh


PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

#
#    Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#

mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
mount -n -t usbfs none /proc/bus/usb
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock

#hwclock -s
#EmbedSky_wdg &

#pda &

#insmod /lib/input-polldev.ko
#insmod /lib/mac80211.ko
#TL-WN321G+
#insmod /lib/rt2x00lib.ko
#insmod /lib/rt2x00usb.ko
#insmod /lib/rt73usb.ko
#TL-WN322G+
#insmod /lib/zd1211rw.ko

#insmod /lib/ov9650.ko
#insmod /lib/camera.ko
#modprobe zd1211rw
#modprobe rt73usb
#modprobe rt5370sta

#ifconfig lo 127.0.0.1
#net_set &

#/etc/rc.d/init.d/leds start
#/etc/rc.d/init.d/netd start
#/etc/rc.d/init.d/httpd start

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

home目錄

建立一個名爲"lzc"的文件夾和前面的passwd對上

lib目錄

用來存放常用的庫文件

cp -f /arm-none-linux-gnueabi/libc/armv4t/usr/lib/*.so* lib -a

rm -f lib/libwv* lib/libuniconf* 

大概8M

https://github.com/liuzhanchun/rootfs

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章