在虚拟机中启动我的内核?

在虚拟机中启动我的内核?

我现在正在学习如何编译和启动Linux 内核。有没有办法在虚拟机中启动内核,而不是弄乱我的系统?我在 Windows 8 上使用 VMWare Workstation。我可以用它来启动我的 Linux 内核吗?

答案1

我现在正在学习如何编译和启动Linux 内核。有没有办法在虚拟机中启动内核,而不是弄乱我的系统?我在 Windows 8 上使用 VMWare Workstation。

根据您的措辞,我假设您没有类UNIX工作环境。要构建您自己的内核,您必须有一个,因此在这种情况下您可以在两者之间进行选择:

  1. 通过在虚拟机管理程序(即 VMWare Workstation)下的虚拟机中安装 GNU/Linux 发行版来创建一个
  2. 或者采取黑客的方式,然后按照从零开始的Linux为自己创建一个(!!不建议初学者)。

有了工作环境后,编译和测试您自己的内核就像执行以下操作一样简单(例如):

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz
tar -xzf linux-3.9.3.tar.xz
cd linux-3.9.3
make menuconfig
make
make modules
make modules_install
make install

然后reboot(可能会稍微复杂一些,比如制作ramdisk,因此以上仅作为示例)。

这里有两个关于如何编译 Linux 内核的指南乌班图并为架构Linux

答案2

如果您有一个 Linux 虚拟机,那么您可以在该虚拟机内构建内核并以这种方式启动它。这就是我一直在做的事情,以免弄乱我的主系统。

答案3

我建议做一个根图安装在虚拟机中。它会教你如何配置,使用引导加载程序编译并引导 Linux 内核。很棒的学习体验(尽管不如虚拟机之外的真实硬件安装)。

Gentoo手册拥有您入门所需的所有文档。当然还有他们的维基百科也很有用。

PS 不要使用根内核,这不会教您如何配置内核。


更新:

  • 你提到视窗,因此我们假设您没有安装 Linux(在虚拟机或其他方式中)。
  • Genkernel 是一个已知良好内核配置由 Gentoo 开发人员维护。您的问题是关于学习编译内核,因此我不鼓励您采取简单的方法并手动配置它(通过反复试验)。
  • ArchLinux根图两者都使用 kernel.org 中的内核很少修补。你当然可以抓住来自上游的 vanilla 资源如果你想。
  • 混合来自不同发行版的内核是偶然的。有时有效,有时无效,而且通常只是部分有效。即使在 ArchLinux 上将较新的内核与较旧的 initrd 混合在一起也行不通;该 ramdisk 包含未编译到内核中的模块。
  • Ubuntu 和自定义内核不能很好地结合在一起。他们的内核有大量补丁,所以你会想要抓住他们的来源而不是上游。
  • 如果你只想为 Ubuntu 编译最新的内核,你可以尝试这个苯丙胺

相关内容