2009年12月9日

initrd中的init script

init script不是init process,他是initrd中執行的一個script,做一些很重要的工作,使用的是nash這個shell,好處大概就是小、快,但功能有限。init script執行了底下的工作
  1. 掛載系統檔案
  2. 建立設備(device)所需要的檔案系統
  3. 初始化設備檔案
  4. 載入相關模組
  5. 切換到作業系統
掛載系統檔案
init會掛載/proc/sys,/proc主要放置執行跟一些硬體的資訊,比方說process info或者cpuinfo 。 /sys在2.6後產生的,主要是對付設備(/dev)檔案混亂跟處理過去procfs放了太多資料,還有hotplug的設備
建立設備(device)所需要的檔案系統
會產生/dev/pts/dev/shm/dev/mapper這三個目錄
初始化設備檔案
內有產生很多設備檔案的script,比方說
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
...
載入相關模組
會看到很多
...
echo "Loading ext3.ko module"
insmod /lib/ext3.ko
echo "Loading scsi_mod.ko module"
insmod /lib/scsi_mod.ko
...
載入一些預設的硬體裝備的driver
切換到作業系統
最後是chroot跟switchroot

沒有留言: