linux这些开放性的构架对于计算机界来说是相当重要的,由于好多人因为特殊的要求,须要更改自己的系统,使系统符合自己的要求。如何裁切一个小系统以备自己的不时之需,那就先了解一下linux的启动流程吧。我这儿是以我当前的系统为例,我用的是CentOS6.4的版本。
linux的系统启动流程:
POST-->BIOS(bootSequence)-->MBR(bootloader)-->Kenrel(CentOS6:initramfs)-->/sbin/init(CentOS6:/etc/inittab,/etc/init/*.conf)
#加载BIOS的硬件信息与进行自我测试
#读取并执行第一个启动设备内的MBR的bootloader
#根据bootloader的设置加载kenrel,kenrel会检查硬件与加载驱动程序
#在硬件启动成功后,kenrel会主动调用init进程
#init会执行/etc/rc.d/rc.sysinit文件打算软件环境,之后就会交给init来执行
1.加电之后BIOS会指定启动好的设备让我们可以读取c盘中的操作系统内核文件。但因为不同的操作系统的文件系统格式不相同,因而我们必需要以一个引导程序来处理内核文件加载的问题,因这个此引导程序就被称为bootloader。通过bootloader的管理面开始读取内核文件,接出来linux会将内核解压到显存当中,而且借助核的功能驱动各个周边设备。此时内核会以自己的功能重新检查一次硬件,此时内核才开始接管BIOS后的工作了。通常来说,它会放置到/boot下边,但是起名为/boot/vmlinuz.
2.init系统初始化流程:
#取得网路环境和主机类型:读取/etc/sysconfig/network配置文件
#测试与挂载显存设备/proc及usb设备/sys
#设置启动过程中的欢迎界面
#用户自定义模块加载:可以在/etc/syscofig/modules/*.modules中定义加载模块
#加载内核的相关设置:系统会手动读取/etc/sysctl.conf这个文件的设置值
#设置主机名与初始化电源管理模块
#初始化c盘阵列:主要是通过/etc/mdadm.conf来设置的
#检验c盘文件系统
#重新以可读形式挂载系统c盘
#启动系统伪随机数生成器
#消除启动过程当中的临时文件
#将启动相关的信息加载/var/log/dmesg文件中
3.配置grub.conf配置文件
后面是系统的启动流程,感兴趣的同学可以看一下,不想看就skip,下边才是我们的真正演示,这是在虚拟机上进行的linux系统虚拟界面,想按着操作的同学注意了,下边操作很危险,如在自已系统上出现任何问题后果自负。
基于HOST制做一个简单的可启动的Linux:
1给目标c盘分区
2安装grub到目标c盘
3复制内核和initrd文件
4创建目标主机的根文件系统
5为grub提供配置文件
第一步先添加一块c盘
至此我们就创建好了一个20G的硬碟linux系统虚拟界面linux 常用命令,下边我们就给c盘分一下区先用fdisd-1/dev/sd*查看一下我们的c盘名称
看这儿的/dev/sdb就是我们创建的c盘
之后对c盘进行分区,用fdisk/dev/sdb要是你自己创建的话一定要认清自已的设备名
下边就是我们要分的区
记得分完区以后一定要先择W键保存退出64位linux,要我们的分区就没了,保存好后,用fdisk/dev/sdb之后键入p看一下我们的分区情况:
下边是我们对分区的低格
低格完成以后我们创建两个目录
创建完成以后我们要把上面的c盘挂载到这两个目录下边
下边我们按装grob
复制内核和initrd文件
到此我们的系统就剪裁完成了,别忘了最后再执行几下:syncsync