天天看點

嵌入式Linux啟動配置檔案及腳本

    使用Busybox制作根檔案系統時,/etc目錄非常重要,它包含了嵌入式Linux啟動所需的配置檔案及腳本.由于init程序,或者說linuxrc程式會解析inittab檔案,是以就從/etc/inittab檔案開始說起.

(1)檔案/etc/inittab

   該檔案是init程序需要解析的檔案,它的每個條目都是一個腳本或可執行程式,詳見部落格"inittab檔案".

     ::sysinit:/etc/init.d/rcS      ::respawn:-/bin/login      ::ctrlaltdel:/bin/umount -a -r

(2)檔案/etc/init.d/rcS

   該檔案的功能主要有兩個,一個是将不同的檔案系統挂載到根檔案系統下的某個目錄内;二是建立kernel所需的目錄,這些目錄都是kernel運作過程中所必須的.

        #! /bin/sh         /bin/mount -n -t ramfs ramfs /var #在不同的目錄内挂載不同的檔案系統         /bin/mount -n -t ramfs ramfs /tmp         /bin/mount -n -t sysfs none /sys         /bin/mount -n -t ramfs none /dev                                           #在不同的目錄内建立檔案夾         /bin/mkdir /var/tmp         /bin/mkdir /var/modules         /bin/mkdir /var/run         /bin/mkdir /var/log                                           #在不同的目錄内遞歸建立檔案夾         /bin/mkdir -p /dev/pts         /bin/mkdir -p /dev/shm         /sbin/mdev -s         /bin/mount -a                     #當執行指令"mount -a"時,系統會自動讀取配置檔案fstab.         echo /sbin/mdev > /proc/sys/kernel/hotplug

(3)檔案/etc/fstab

   在檔案/etc/init.d/rcS中執行mount –a時,就會按照檔案/etc/fstab内容挂載相應的檔案系統.

        proc        /proc       proc      defaults   0 0         none        /dev/pts    devpts    mode=0622  0 0         tmpfs       /dev/shm    tmpfs     defaults   0 0

<1>fstab檔案的格式:

   device Mount Point filesystem parameters dump fsck

    proc    /proc      proc    defaults   0    0

<2>檔案/etc/fstab就是使用mount将裝置載入到系統的某個載入點所需執行的指令内容,将這些内容都寫到/etc/fstab裡,使得系統一啟動就主動載入.

<3>參數dump的值表示是否允許使用dump指令進行系統備份.dump指令會根據對/etc/fstab的設定值,去選擇是否要将該分區進行備份.0表示不要dump備份,1或2表示要進行dump備份.

<4>參數fsck的值表示是否允許以fsck檢驗分區内的檔案系統是否完整.其中,根檔案系統必須進行檢驗,其它檔案系統可以不需要檢驗.0表示不要檢驗,1或2表示要進行檢驗.

(4)檔案/etc/passwd

   當使用者以telnet或ssh登入主機時,系統會出現一login畫面來輸入賬号,此時輸入賬号和密碼後,Linux會執行以下動作:

<1>先找/etc/passwd内是否有該賬号,如果有,則将該賬号與對應的UID(user ID)和GID(Group ID)讀出,并将該賬号的家目錄與shell設定也一起讀出.

<2>核對密碼表,此時Linux會進入/etc/shadow中查找對應的賬号與UID,然後核對已輸入的密碼與裡面的密碼是否一緻.

<3>若一切相符,就進入shell控制階段.

   下面就來分别簡述這兩個檔案的含義.

<1>/etc/passwd

root:x:0:0:root:/root:/bin/sh

   該檔案的構造如上所示,每一行都表示一個賬号,有幾行就表示系統中有幾個賬号.注意,裡面的很多賬号都是系統必須使用的,稱作系統賬号.在每個Linux系統中都會有第一行,就是root系統管理者行,每行有7個部分,用":"隔開.

   1、賬号名稱:root表示預設的系統管理者的賬号名稱.

   2、密碼:x表示密碼已經移動到shadow這個加密後的檔案中了.

   3、UID:當UID=0時,表示root

   4、GID:與/etc/group有關,用于規範使用者組.

   5、使用者資訊說明欄:用于解釋該賬号的意義.

   6、家目錄:使用者的家目錄.root使用者的家目錄就是/root.

   7、Shell:預設使用/bin/bash來執行指令. <2>/etc/shadow

root:$1$HNeU8jpc$RyzTN856sZiO.LCN2BZuZ0:14880:0:99999:7:::

   該檔案屬于加密檔案,每個賬号的密碼均在該檔案中,這裡不再贅述.   (5)/etc/profle

    echo     echo -n "Processing /etc/profile... "     # no-op     echo "Done"     echo     PATH=/bin:/sbin:/usr/bin:/usr/sbin     export LD_LIBRARY_PATH=/lib:/usr/lib

繼續閱讀