自己动手创建最精简的Linux

发表于:2011-8-17 09:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:aceruser    来源:51Testing软件测试网采编

  Linux一大亮点就是开源,相对于Windows我们可以在Linux上发挥更大的想象力,来亲手打造拥有自己特色的Linux系统,首先我们从打造最基本的微型的Linux系统入手,通过整个打造过程的体验,你就可以将自己的完整的Linux系统进行个性化设置,然自己用的Linux系统散发着自己的气息,让其更具亲合力!!

  下面我们就来直接操作,关于原理,会在每步中说明:

  一、准备阶段:

  硬件设施:一台宿主机、一个空磁盘(或者数据不再使用的磁盘,1G就足够了,如果想对自己制作的Linux进行不断的完善,那么就选用大点的光盘,文中我们将其视为sdb,根据自己实际情况进行相应的调整)。

  1、分区、格式化我们准备的磁盘

  将我们准备的新磁盘进行分区(如果是数据不用的磁盘,使用dd if=/dev/zero of=/dev/sdb bc=512 count=1 将其磁盘引导区的数据全部进行0覆盖,这样这块磁盘也就编程了空磁盘)。

  fdisk /dev/sdb 将其分为两个区sdb1 100M 、sdb2 500M,类型为都为Linux,保存,退出

  格式化分区:根据自己属主机的文件系统类型,进行格式化我的为ext3,所以我格式化时加了个-j,如果自己的是ext2就不需要加-j了

mke2fs -j /dev/sdb1 mke2fs -j /dev/sdb2 #都将其格式化为ext3格式

  2、挂载磁盘(挂载点自己选择,但是挂载sdb1的挂载点名字必须为boot)

  创建挂载点:

mkdir -pv /mnt/{boot,myroot}
mount /dev/sdb1 /mnt/boot  #将sdb1挂载至/mnt/boot
mount /dev/sdb2 /mnt/myroot   #将sdb2挂载至/mnt/myroot

  (注:当我们挂载的这两个分区的时候也许会出现分区不存在的错误提示,主要原因为系统没能自动获取刚刚创建的分区的信息,也就是/proc/partitions文件中没有新建分区的信息,我们只需要输入命令:partproble /dev/sdb 重读分区信息,新建的分区信息将被写入/proc/parttions文件,这样就OK了)

  二、打造阶段:

  1、准备我们Linux的心脏(内核)

  查看我们宿主机中/boot目录中的内容,会发现有类似vmlinuz-2.6.18-164.el5 vmlinuz-2.6.28.10这样带有版本号的文件,这就是系统的内核文件,我们选择一个内核文件,将其拷贝到我们小Linux的/boot目录中,这样我们的Linux就有心脏了。

  命令:

cp /boot/vmlinuz-2.6.18-164.e15 /mnt/boot/vmlinuxz  #将内核改名为vlinuxz。

  (注:将内核进行改名,不仅有利于我们接下来操作的操作还可以避免因为此处内核名字和grub.conf文件中内核名字的不符而引起kernel panic(内核恐慌)问题,导致我们的小Linux无法启动,此外我曾遇到过在虚拟机里用手打出的内核名字和用Tab键写出的内核名字不符的现象,至今不知为何!所以我们尽可能的将我们小Linux的内核文件名字写的简短一点)

  2、准备我们的Linux的善意欺骗文件initrd文件。

  关于initrd文件的作用,我在有一篇名为《Linux开机流程简述》的文章中详细说明多,建议大家去看看,对我们的小Linux管理和维修是有很大帮助的。

  同样查看宿主机的/boot目录内的内容,会发现有类似initrd-2.6.18-164.el5.img initrd-2.6.28.10.img 这样以initrd开头中间是版本号,以img结尾的文件,那么这就是initrd文件了,每个版本的内核文件,就会有一个与之版本号相对应的initrd文件,将与我们刚才选择的内核版本号相对应的initrd文件拷贝到一个新建的目录内改造(此处我们在/tmp目录中创建一个名为test的目录)

cp /boot/initrd-2.6.18-164.el5.img /tmp/test/

  我们用查看这个文件的类型会发现它是一个用cpio打包,由gzip压缩的文件,我们将其展开在当前目录下。

zcat initrd-2.6.18-164.el5.img | cpio -id

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号