我想修改linux内核,以便它可以挂载vhd文件并从中启动...请给我一些想法!正如我们所知,Linux 内核在加载 initrd.gz 后挂载硬盘分区...我希望不是挂载 Linux 分区,而是挂载位于硬盘中某个位置的 vhd 文件,其中包含已安装的 ubuntu 并从中启动系统。 Windows 7 支持从 vhd 启动的功能,但 ubuntu 不支持。所以我问我们如何为此目的修改内核。谢谢您
最佳答案
这绝非易事。
要开始加载 Linux,需要使用引导加载程序。该程序找到 vmlinux 或 vmlinuz 文件以及 initrd 文件并将它们加载到 RAM 中。
我假设您的 VHD 文件存储在 NTFS 文件系统上。 VHD 文件内是 vmlinuz 和 initrd 文件。
首先,引导加载程序需要了解 NTFS。接下来,引导加载程序需要了解 VHD。
只有在那之后 Linux 才能开始加载。
此时,事情会变得更容易,因为 Linux 具有可供您使用的 NTFS 文件系统驱动程序。可能是 NTFS-3G 用户空间驱动程序与 FUSE 结合。我不确定 VHD 格式,但您可以使用 VirtualBox 中的 vdfuse 来安装它。
NTFS 和 VHD 挂载程序必须进入 initrd 内部。然后 initrd 可以从 VHD 挂载根分区并进入正常的 Linux 用户空间。
关于linux - 如何修改linux内核以在启动时挂载vhd文件并从中加载系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111233/