簡體   English   中英

有沒有辦法等到根文件系統掛載?

[英]Is there a way to wait until root filesystem is mounted?

我在內核中有一個靜態鏈接代碼(不是模塊),應該掛載根文件系統啟動內核線程。 問題是我不知道如何在不修改prepare_namespace()內核函數的情況下執行此操作。 我認為可以通過initcalls來做,但是在內核處理rootfs之前它們已經被執行了。 有誰知道最好的方法嗎?

更新[1]: @ BenVoigit在評論中提出了以下解決方案: 好像你應該在它上面打開/ proc / mounts和poll_wait。 查看`mounts_poll'的來源

更新[2]:我查看了RSBAC補丁,RSBAC修改了prepare_namespace()函數,以便掛載文件系統執行一些操作。 這似乎是最簡單的方法。

那么,目前的Linux映像太大了,無法適應PC啟動扇區。 像grub這樣的現代引導程序會在真正的引導程序之前在RAM中安裝一個小文件系統。

要了解底層發生的情況,可以打開位於/ boot下的磁盤映像。 例如,在Ubuntu中:

mkdir test
cd test
zcat /boot/initrd.img-2.6.35-24-generic > image.cpio
cpio -i < image.cpio
vim init

最后,它只是一堆shell腳本 - 簡單幾乎是詩意的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM