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

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

wKioL1MazYWxCnZaAADJzi0i4vQ756.jpg

wKioL1MazhiTxrx9AAES4HEkptA522.jpg

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

  mke2fs /dev/sdb1

 mke2fs /dev/sdb2

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

wKiom1Ma0Fqyn3t7AACEfNwE3JA555.jpg

4、安装grub至目标磁盘

wKioL1Ma0H7gslflAAEiye4MgCU712.jpg

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

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

wKioL1Ma2AjyXHmgAAMRC4UxxUk723.jpg

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

wKioL1Ma1m-hHuw_AAJX44jdFJs241.jpg

注意:移植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、新建一个虚拟机

wKioL1Ma3DihOStcAADitzBM3Ys107.jpg


wKioL1Ma3Dux18kHAAGFmneRjCs661.jpg

wKiom1Ma3GKyfeWTAADBjNfb7Y4780.jpg

wKiom1Ma3GKzpauNAADYLe7Q7aw470.jpg

10、启动系统、找到内核

wKioL1Ma3DzDizBuAAEo3LB7QOo533.jpg


wKiom1Ma3GORpWkQAAFraoASrnw766.jpg

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

wKioL1Ma3HbwJ5b6AADczr1BjXA503.jpg

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

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

wKioL1Ma9CHh5mN7AAEBb2v9KJc733.jpg

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

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、重新启动之后效果如下图:

wKioL1Ma9kXyiBSGAAJJWUiAu6Q679.jpg

wKiom1Ma9mzxCgnBAAHsucGzwyA070.jpg

wKiom1Ma9m2jgd91AAFRZ1wRfis246.jpg