如何从内核源代码制作一个最小的可启动linux(仅限终端)?

参见英文答案 > What are the minimum root filesystem applications that are required to fully boot linux?                                    4个
我想制作一个非常小的linux操作系统,它只有一个终端接口和基本命令/应用程序(busybox是我选择的命令/应用程序).我不想在我的操作系统上安装选项.我只想让它从RAM启动并完全运行.我打算使用ISO-Linux作为引导加载程序.没有网络,没有虚拟化支持,没有不必要的驱动程序等.我希望它是非常非常基本的操作系统.我已经从kernel.org下载了最新的稳定内核(v4.5)源代码,并且已准备好构建环境.

我的另一个困惑是,默认情况下内核是否有任何用户界面(shell,终端,…),我可以在其中键入命令并查看输出?

解决方法:

从技术上讲,你可以做到这一点
虽然,内核没有任何内置的用户界面.

您需要按照以下步骤操作:

1. Create a initramfs with static busybox and nothing else.
This initramfs will have few necessary directories: like proc, sys, tmp, bin, usr, etc

2. Write a "/init" script, whose main job will be:
   a. mount the procfs,tmpfs and sysfs.
   b. Call busybox's udev i.e. mdev
   c. Install the busybox command onto virtual system by executing busybox install -s
   d. Calling /bin/sh

3. Source the initramfs directory while compiling the kernel. You can do so by flag: CONFIG_INITRAMFS_SOURCE

4. Compile your kernel.

5. Boot off this kernel and you will get the shell prompt with minimal things.

虽然,我以非常正式的方式写上面的笔记.你可以按照你想要的方式对它进行微调.

更新:

遵循this link的一些指导原则.

上一篇:linux – “自定义”initrd是否能通过yum在内核更新中存活?


下一篇:pc组装机安装centos7错误总结