原來的系統啟動過程在initrd最後是進行根切換的。現在我不進行根切換,直接在虛拟的根檔案系統中啟動,運作在記憶體中。
是以我将.img檔案解壓,将裡面的init代碼第一行就執行exec /sbin/init。
然後按照開機流程一步一步的配。最後再打包成.img檔案啟動。
但是現在遇到了這樣一個問題:
/dev/fd/5: 1 Syntax error: Bad fd number
init: rcS post-stop process (284) terminated with status 2
然後就死在這裡了。
看提示應該是rcS.conf 的post-stop script發生了錯誤。
然後我看了一下rcS.conf的代碼,内容形式大概是這樣的:
start on upstart
stop on runlevel
task
console output
pre-start script
......
end script
exec /etc/rc.d/rc.sysinit
post-stop script
......
end script
然後我在pre-start script的最後面加上了一段代碼:echo $"xxxxxxxxx",開機的時候顯示正常。
我又在rc.sysinit的最後加了一段代碼:echo $"xxxxxx",開機的時候也顯示出來了,說明rc.sysinit已經執行完了。
然後我在post-stop script的最前面加了一句:echo $"xxxxxxxx",結果這個沒有顯示出來,顯示的是剛剛上面提到的那個錯誤資訊。說明沒有執行到post-stop script就已經挂了。
本人比較菜,這個問題已經搞了好幾天了還沒有搞出來,求大神指點,感激不盡~