开发者社区> 余二五> 正文

手动构建一个小linux系统

简介:
+关注继续查看

手动构建一个小linux系统

实验环境VMware 6.02

系统REHL5.4 (宿主机)

我们在这个系统上添加一块新硬盘来作为新系统的存储盘,将硬盘分为为两个区,一个用来存放系统内核,另一个用来存放init命令和bash等二进制文件。

具体操作过程如下:

添加一块硬盘,用fdisk –l 查看结果:。nit方

clip_image002

对新添加的硬盘进行分区:

clip_image004

clip_image006

clip_image008

分为sdb1,sdb2两个区,使用partprobe命令让内核重读分区表,用cat /proc/partitions查看分区情况,没问题吧!

clip_image010clip_image012

将sdb1,sdb2格式化为ext3文件系统:

clip_image014

clip_image016

clip_image018

下面开始挂载分区,我们选择在/mnt目录下,这个目录可以是任意的。在/mnt目录下创建的两个挂载点/boot (放置grub 的目录)、/sysroot(系统根分区,)。

clip_image020

在sdb分区上装grub,默认就装在/mnt/boot/目录下。

clip_image022

查看boot目录下的文件,有grub了吧

clip_image024

看看grub目录下的配置配置文件,发现了没?缺了一个grub.conf主配置文件,这个我待会儿再创建。

clip_image026

把系统的内核拷贝到当前的boot目录下,重命名为vmlinuz。注意是在boot目录下,这里我犯了一个错误,直接拷到grub目录下,不过在后面又将vmlinuz挪到boot下了。

clip_image028

还需要initrd文件吧?我们没有,需要将系统的initrd修改后拷贝过来。注意系统的initrd不能直接使用,需要修改。我们在tmp目录下创建一个initrd目录,将系统的initrd拷过来展开。

clip_image030

我们查看一下init文件,用不到的行删去或者注释掉都行。

clip_image032

我们再查看一下lib目录下的文件,将用不到的统统删去,如图:

clip_image034

将修改后initrd重新封装输出到/mnt/boot/initrd.gz.。

clip_image036

查看boot目录,看!我们的内核和initrd文件都准备好了吧!这样我们就可以编辑grub.conf文件了。

clip_image038

编辑完成后,把数据从内存中同步到硬盘上,查看grub.conf的内容,就那么简单几句话

clip_image040

下面开始准备我们的根文件系统,在sysroot目录下创建文件目录

clip_image042

将系统/sbin/bin目录下的init文件拷贝到当前的init目录下

将系统/bin/bash目录下的bash文件拷贝到当前的bin目录下

clip_image044

查看一下当前目录

clip_image046

同时还要把两个文件所依赖的库文件拷贝到当前的lib目录下。

使用ldd查看文件所以依赖的库

clip_image048

将库文件拷贝过来

clip_image050

clip_image052

init要想真正运行,我们还需要一个配置文件inittab,这里我们在当前的etc目录下创建一个inittab文件并编辑。

clip_image054

发现了没?用来做系统初始化的rc.sysinit文件没有,我们依然需要动手创建。创建完成后,需要赋予其执行的权限,然后再同步一下。

clip_image056

这样,一个简单的小linux就完成了。将宿主机挂起,我们新建一个虚拟机使用刚刚配置完成的这块硬盘试一下,看!已经成功启动:

clip_image058

当然,这个小系统仅仅是能够正常启动,不能做任何事情。

我们来添加一个ls命令吧,把系统/bin下ls命令所依赖的库文件拷贝到/mnt/sysroot/lib目录下

clip_image060

clip_image062

重新试一下,看!ls命令能够正常运行了吧!

clip_image064

当然,这个linux小系统仅仅是通过拷贝的方式完成了正常的启动功能,尚不能做任何事情,需要我们在后面逐步去完善。










本文转自 490999122 51CTO博客,原文链接:http://blog.51cto.com/lyp0909/474617,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《高性能Linux服务器构建实战》——1.6节Nginx性能优化技巧
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第1章,第1.6节Nginx性能优化技巧,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1036 0
自己动手在Linux系统实现一个everything程序
自己动手在Linux系统实现一个everything程序
66 0
《高性能Linux服务器构建实战》——1.4节Nginx的安装与配置
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第1章,第1.4节Nginx的安装与配置,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1795 0
《高性能Linux服务器构建实战》——1.5节Nginx常用配置实例
本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第1章,第1.5节Nginx常用配置实例,作者:高俊峰,更多章节内容可以访问云栖社区“华章社区”公众号查看
1114 0
+关注
20380
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载