萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 基本制作過程

基本制作過程

基本制作過程 創建目錄和文件 在imgae目錄下創建dev, proc , sys , etc ,mnt 四個目錄   創建如下兩個設備文件    mknod  -m 600 dev/console c 5 1   mknod -m 600 dev/null c  1 3  proc,dev,sys都是用來mount內核信息的。   etc是用來放配制文件的。   更詳細請看“Linux 目錄詳解” 測試一下 加載內核信息 首先要加載內核信息。其中$INITRD為一環境變量,保存鏡像文件夾的位置如“/initrd”。   mount -v --bind /dev $INITRD/dev mount -vt devpts devpts $INITRD/dev/pts  mount -vt tmpfs shm $INITRD/dev/shm  mount -vt proc proc $INITRD/proc mount -vt sysfs sysfs $INITRD/sys 更改根文件系統 chroot $INITRD /bin/sh  命令進入busybox的環境。出現shell的命令提示符,可以試著輸入幾個命令,看看執行結果。例如,輸入 fdisk -l 命令看看是否能顯示 mdev自動生成/dev下的設備文件 上節用chroot方法試驗busybox時,為了簡單,是用“綁定”的方式把主機的/dev中的設備文件映射到image目錄下的dev目錄。在initramfs上,這種方法顯然不能使用。   生成系統的設備文件,現在通常都是用udev動態生成,而initramfs為了做到通用,動態生成的要求是必須的。在busybox中有一個mdev命令,就是用來動態生成設備文件,填充到/dev目錄的。   在系統啟動時,用    mdev -s  命令可以根據內核的sysfs文件系統在/dev目錄中自動生成相應的設備文件。   命令執行前,需要先掛載內核的proc和sysfs虛擬文件系統。 最簡init文件 在image目錄下寫一個最簡單的init腳本,這也默認我們是用initramfs制作鏡像了,linuxrc文件可以刪除,只有在制作initrd時都用它。   #!/bin/sh  mount -t proc proc /proc  mount -t sysfs sysfs /sys  mdev -s  /bin/sh  系統最終會啟動到一個shell交互環境,和測試一下中類似。前提是dev,proc,sys目錄已經創建。   為init文件設置可執行權限,當前目錄為鏡像根目錄:   chmod +x init  有些busybox配置中,mdev命令需要讀取/etc/mdev.conf文件,為了避免出錯信息,我們創建一個空文件。   touch etc/mdev.conf  mdev.conf文件是用 來控制mdev生成的設備文件的讀寫權限的,在這裡我們不需要對設備文件設置特別的權限,就使用mdev缺省的660的權限設置。有關mdev的設備文件 權限的控制詳細信息,可參考busybox源碼樹docs目錄下的mdev.txt文件。 
copyright © 萬盛學電腦網 all rights reserved