您好,登錄后才能下訂單哦!
本篇內容主要講解“Linux initrd系統怎么掌握”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux initrd系統怎么掌握”吧!
定義主目錄(root)的路徑
mkrootdev指令是nash這一支shell所提供的功能,主要就是在要轉換之前先行將主目錄定義清楚,默認會將GRUB中kernel command line所設置root=xxx中的xxx路徑先建立好。
將root 路徑mount到/sysroot下將剛剛找到的root 路徑mount到Linux initrd中的/sysroot下,但要注意,這時的/sysroot就好像rescue mode的/mnt/sysimage目錄,是一樣的意思,都只是先將實體操作系統存在的實體路徑mount到一個虛擬操作系統(在這里是initrd)的暫存目錄中,再通過切換的方式轉為實體的主目錄。不同的是,在rescue mode中用的是chroot;但在Linux initrd用的則是switchroot指令,之所以會有這樣的差異,是因為rescue mode直接使用了操作系統的指令,而initrd在加載時,并沒有操作系統的指令可用,因此是通過nash內置的指令。或許有人會問,rescue mode不也是以Linux initrd的方式加載的嗎?是的,但要在此補充說明的是,雖然都是Linux initrd,但rescue mode中的initrd是光盤直接提供的,而這里所說的Linux initrd則是安裝操作系統后由操作系統直接產生的,兩者有很多不同之處。您若有興趣,不妨將光盤的initrd文件打開來看(如圖4-45所示),將會發現該Linux initrd中的init文件并不是一個腳本文件,而是一個真正可以在操作系統下執行的程序。
當然,存放在CD或DVD中的Linux initrd文件是為用戶安裝操作系統所使用的,會遇到許多軟、硬件的不同需求,因此,initrd的文件所需存放的資料(像module)遠比操作系統開機所需加載的Linux initrd文件多得多。像圖4-46 中Fedora Core 6安裝光盤中的initrd文件幾乎是操作系統下initrd文件的4倍之多。
建立其他的文件系統
在主目錄(在initrd階段為/sysroot)建好之后,setuproot指令開始運行,將Linux initrd通過init建立好的/proc、/sys、/de目錄中所有資料轉移到/sysroot,以方便轉換到新的實體操作系統,這也是nash內置的功能,但筆者在nash的使用手冊竟無法找到任何有關setuproot的描述,不知為何獨漏這一支。
切換到新的root目錄,并開始執行實體系統下的init文件
switchroot是nash在2.6版kernel以后的版本才可使用的新功能,剛剛setuproot把所有和操作系統有關的目錄都建立在/sysroot后,setuproot會將/sysroot切換為實體操作系統下的主目錄(/),完成后會順便將所有之前Linux initrd存在內存中的資料清空,如同所有在虛擬文件系統(包括/sys、/proc或/dev等)中的資料,因此,當switchroot執行完成時,內存中就不會再有Linux initrd所建的任何目錄及文件,完全由實體操作系統來運行。
到此,相信大家對“Linux initrd系統怎么掌握”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。