Linux

是否可以在核心啟動時將子目錄掛載為根文件系統?

  • August 25, 2010

我正在嘗試從我的主目錄中的原始碼安裝 linux(與創建專用分區相反)。基本系統(glibc、核心和 init)安裝在 $HOME/lfs/root 中。我正在使用安裝在我的 USB 驅動器中的 grub 啟動這個系統,這是 grub.cfg 中的相關部分(我必須將 grub root 更改為 hd1,因為 hd0 是我的 USB 棒):

menuentry “Custom linux HD” { set root=’(hd1,1)’ linux /home/thiago/lfs/root/boot/bzImage root=/dev/sda1/home/thiago/lfs/root ro }

似乎只有設備才是“root=”的有效參數。有什麼辦法可以解決這個問題嗎?我不想弄亂我目前的分區。

我沒有測試它,但理論上(使用最近的發行版和核心)你可以選擇使用 initramfs 或 initrd。核心將首先以 root 身份執行 initramfs,然後執行其引導腳本。引導腳本做的最後一件事應該是呼叫pivot_root掛載的“真實”根目錄,然後執行真實的/sbin/init.

如果您可以使 initramfs 或 initrd 正常工作,也許您可以調整引導腳本在您想要的子目錄中執行 pivot_root ?

我不認為你能做到這一點。但也許是時候看看虛擬化了?您將擁有一個磁碟文件並在該磁碟中啟動一個虛擬機。

引用自:https://serverfault.com/questions/174347