您的位置:首页 > 运维架构 > Linux

linux 系统裁剪,教你怎样用虚拟机裁剪一个小系统

2014-04-23 00:00 281 查看
linux这种开放性的架构对于计算机界来说是相当重要的,因为很多人由于特殊的要求,需要修改自己的系统,使系统符合自己的要求。怎样裁剪一个小系统以备自己的不时之需,那就先了解一下linux的启动流程吧。我这里是以我当前的系统为例,我用的是CentOS 6.4的版本。

linux的系统启动流程:

POST-->BIOS(boot Sequence)-->MBR(boot loader)-->Kenrel(CentOS6:initramfs)-->/sbin/init(CentOS6:/etc/inittab,/etc/init/*.conf)

#加载BIOS的硬件信息与进行自我测试

#读取并执行第一个启动设备内的MBR的boot loader

#依据boot loader的设置加载kenrel,kenrel会检测硬件与加载驱动程序

#在硬件启动成功后,kenrel会主动调用init进程

#init会执行/etc/rc.d/rc.sysinit文件准备软件环境,以后都会交给init来执行

1.加电以后BIOS会指定启动好的设备让我们可以读取磁盘中的操作系统内核文件。但由于不同的操作系统的文件 系统格式不相同,因此我们必须要以一个引导程序来处理内核文件加载的问题 ,因这个此引导程序就被称为 boot loader。通过boot loader的管理面开始读取内核文件,接下来linux会将内核解压到内存当中,并且利 用核的功能驱动各个周边设备。此时内核会以自己的功能重新检测一次硬件,此时内核才开始接管BIOS后的工 作了。一般来说,它会放置到/boot下面,并且取名为/boot/vmlinuz.





2.init系统初始化流程:

#取得网络环境和主机类型:读取/etc/sysconfig/network配置文件

#测试与挂载内存设备/proc及usb设备/sys

#设置启动过程中的欢迎界面

#用户自定义模块加载:可以在/etc/syscofig/modules/*.modules中定义加载模块

#加载内核的相关设置:系统会自动读取/etc/sysctl.conf这个文件的设置值

#设置主机名与初始化电源管理模块

#初始化磁盘阵列:主要是通过/etc/mdadm.conf来设置的

#检验磁盘文件系统

#重新以可读方式挂载系统磁盘

#启动系统伪随机数生成器

#清除启动过程当中的临时文件

#将启动相关的信息加载/var/log/dmesg文件中

3.配置grub.conf配置文件





前面是系统的启动流程,感兴趣的朋友可以看一下,不想看就skip,下面才是我们的真正演示,这是在虚拟机上进行的,想按着操作的朋友注意了,下面操作很危险,如在自已系统上出现任何问题后果自负。

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

1给目标磁盘分区

2安装grub到目标磁盘

3复制内核和initrd文件

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

5为grub提供配置文件

第一步先添加一块磁盘





























至此我们就创建好了一个20G的硬盘,下面我们就给磁盘分一下区先用fdisd -1 /dev/sd*查看一下我们的磁盘名称





看这里的/dev/sdb就是我们创建的磁盘





然后对磁盘进行分区,用fdisk /dev/sdb要是你自己创建的话一定要看清自已的设备名





下面就是我们要分的区









记得分完区之后一定要先择W键保存退出,要我们的分区就没了,保存好后,用fdisk /dev/sdb然后键入p看一下我们的分区情况:



下面是我们对分区的格式化





格式化完成之后我们创建两个目录





创建完成之后我们要把前面的磁盘挂载到这两个目录下面





下面我们按装grob





复制内核和initrd文件

























到此我们的系统就裁剪完成了,别忘了最后再执行几下:sync sync
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息