在VMware上制作一个简单的Linux

大体思路

bootroot

initrd.gzgrubvmlinuz-2.6.18-308.el5bin sbin lib etc proc sys dev boot

有以上内容我们就可以运行一个非常简单的Linux,只需要往里面添加各种配置文件,就可以启动我们所需要的各种服务。在制作之前,我们先做一些准备工作。

1、在VMware上添加一块新的IDE磁盘

2、将这块盘分区,/dev/hdb1 /dev/hdb2,美国空间,美国服务器,之后格式化为ext3的文件系统

3、挂载/dev/hdb1到/mnt/boot;挂载/dev/hdb2到/mnt/sysroot

前提工作做完之后,我们就可以分别制作boot和root了!那么我们就开始吧

制作boot分区:

●initrd.gz

initrd.gz其实是一个小的root,它也包含bin sbin lib etc proc sys dev mnt这些目录,并且还有一个重要的脚本文件init,实现从这个小root到我们真正的root的转换的功能。最终为了保证我们的Linux体积足够小,我们就把以上的全部压缩成了initrd.gz。

但是为了保证我们的小linux能够实现各种功能,我们只添加目录是不够的,因此我们使用busybox来虚拟bin sbin usr下的各种程序。因此我们要先制作一个busybox。

我们下载稳定版的busybox版本busybox-1.20.2.tar.bz2

进入图形界面后,重要的一项是把busybox所依赖的库文件做进busybox本身,这个库只提供给busybox调度使用;

makeinstall要确保在/tmp/busybox-1.20.2/目录下使用命令

但是我们会发现安装并不成功

因此我需要下载一个更高版本的内核头文件,然后把它放在/tmp/busybox-1.20.2/include/mtd/

,因为我虚拟机上有linux-2.6.38.5的内核头文件,所以我就直接复制到上面目录下就可以了

安装完成后,会在/tmp/busybox-1.20.2/目录下生成一个_install的目录,这表明我们的busybox安装成功了,并且_install目录下有我们所需要的bin sbin usr目录和各种程序脚本。

cp./_install/*/mnt/boot-a把_install目录下的所有文件复制到/mnt/boot目录下cd/mnt/boot在切换到/mnt/boot目录下,即我们的小linux的boot

可以说现在才开始编写我们真正的initrd.gz

我们发现/mnt/boot目录下缺少很多目录,所以我们手动添加几个进去

mkdiretcprocsyslib/modules/devmnt/sysroottmp-p 创建mnt/sysroot是为了实现根的切换

创建我们的dev设备文件conlole和null

mknoddev/consolec51mknoddev/nullc13

我为了能够真正的驱动我们的根文件系统,因此我们需要让initrd.gz有能够驱动根分区的ext3模块,因此我们需要复制ext3的模块到/mnt/boot/lib/modules目录下。

modinfoext3查看ext3文件系统所以来的库文件都有哪些

modinfojbd查看jbd是否依赖其他的模块

把ext3和jbd的模块都放在对应的/mnt/lib/modules/目录下

cp/lib/modules/2.6.18-308.el5/kernel/fs/ext3/ext3.ko/mnt/lib/modules/cp/lib/modules/2.6.18-308.el5/kernel/fs/jbd/jbd.ko/mnt/lib/modules/

接下来是要编辑init的脚本文件,init关系到我们能否把initrd的root转换成真正的root,关系到能否驱动我们真正的root文件系统,关系到能够装载我们已经安装的ext3和jbd模块,因此init脚本非常的重要,也是initrd.gz的核心。

vim/mnt/boot/init创建init脚本chmod+xinit给init执行权限

至此我们看到的内容是:

我们把这些全部的内容都打包并且压缩起来,就是我们一直所说的initrd.gz

●grub

grub目录下包含寻找内核和启动内核所需要的各个阶段的文件,这些文件不需要我们去编写,只要用grub-install命令就可以实现;但是我们需要写grub的配置文件grub.conf来设定一些参数;

cd/mnt/boot/grub切换到grub目录下

我们来编写配置文件grub.conf

vim/mnt/boot/grub/grub.conf

到此我们的grub文件也算是配置完毕了

●vmlinuz-2.6.18-308.el5

梦想让我与众不同,奋斗让我改变命运!

在VMware上制作一个简单的Linux

相关文章:

你感兴趣的文章:

标签云: