(1) 新建硬盘对其分区 硬盘文件名CentOS 6.9-0.vmk

模拟自制linux系统_流程

(2)识别新加硬盘,记录设备名sdb

模拟自制linux系统_系统启动_02

(3)对其新建硬盘sdb分区(fdisk /dev/sdb),至少有以及boot分区

模拟自制linux系统_系统启动_03

(4)对分区创建文件系统

设备sdb分区如下sdb1作为boot分区 sdb2作为根所在分区

[root@kami6 ~]# mkfs.ext4 /dev/sdb1

[root@kami6 ~]# mkfs.ext4 /dev/sdb2

模拟自制linux系统_linux_04

(5)创建一级目录,并挂载

注:新建sdb1对应挂载目录名必须是boot命令,否则执行安装grub出错

新建sdb2对应挂载目录名为sdb2,此处为自制linux的"根"

模拟自制linux系统_流程_05

(6)在/mnt/boot 下创建相关配置文件

生成grub文件

注:grub-install 指定目录是mnt下boot目录 对应硬盘是/dev/sdb 不是/dev/sdb1

模拟自制linux系统_系统启动_06

恢复内核和initramfs文件

模拟自制linux系统_系统启动_07

创建grub.conf文件

[root@kami6 ~]# vim /mnt/boot/grub/grub.conf

模拟自制linux系统_流程_08

注:此块磁盘是宿主机上的第二块磁盘,所以这里是/dev/sdb,而到时候挂载到目标主机的时候,因为那里只有这一块磁盘,所以在目标主机上的名称应该是/dev/sda,这个不能搞混了。后面要把selinux关掉,而且init要使用/bin/bash,告诉内核不要再去找init程序了。如果不指定这一步,在启动过程中就会报kernel panic(内核恐慌),以为系统就它一个了,没有init进程。

(7)在/mnt/sdb2下创建“根”相应的目录

创建目录

模拟自制linux系统_linux_09

复制bash、相关的命令以及相关库文件

注:复制命令以及相关库文件参照脚本

模拟自制linux系统_linux_10

模拟自制linux系统_系统启动_11

(8)拷贝网络驱动模块

[root@kami6 ~]# cp /lib/modules/2.6.32-696.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sdb2/lib64

(9)启动测试

硬盘文件名CentOS 6.9-0.vmk启动

模拟自制linux系统_系统启动_12