基于HOST制作一个简单的可启动Linux

1、给host添加一块硬盘并划分为两个分区

Linux—定制内核_第1张图片

Linux—定制内核_第2张图片

2、格式化为ext4文件系统格式

  mke2fs /dev/sdb1

 mke2fs /dev/sdb2

3、创建/mnt/boot,/mnt/sysroot目录,并把/dev/sdb1,/dev/sdb2挂载

Linux—定制内核_第3张图片

4、安装grub至目标磁盘

Linux—定制内核_第4张图片

5、复制内核和initrd文件wKioL1Ma1KTQTxfRAACaKEj19g0881.jpg

6、创建目标主机的根文件系统

Linux—定制内核_第5张图片

7、写移植bash的脚本,通过脚本来移植bash以及常用的命令

Linux—定制内核_第6张图片

注意:移植bash之后为其创建一个sh的链接,因为很多程序用到sh

wKiom1Ma4J-yq6h7AABXzN92WiA653.jpg

8、为grub创建配置文件

# vim /mnt/boot/grub/grub.conf

default=0

timeout=5

title MageEdu Little Linux

root (hd0,0)

kernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/bin/bash

initrd /initramfs.img

9、新建一个虚拟机

Linux—定制内核_第7张图片


Linux—定制内核_第8张图片

Linux—定制内核_第9张图片

Linux—定制内核_第10张图片

10、启动系统、找到内核

Linux—定制内核_第11张图片


Linux—定制内核_第12张图片

11、登录到bash,可以输入一些简单的命令

Linux—定制内核_第13张图片

到此一个基本的可引导的Linux内核就做好了,我们尝试给他写一个简单的init脚本

12、切换到/mnt/sysroot/sbin下写一个init脚本

Linux—定制内核_第14张图片

注意:脚本中用到的命令需要用上边的脚本把命令移植过去

13、拷贝网卡驱动到/mnt/sysroot/lib/modules目录

cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/modules/

14、重新启动之后效果如下图:

Linux—定制内核_第15张图片

Linux—定制内核_第16张图片

Linux—定制内核_第17张图片