手动构建一个小linux系统
手动构建一个小linux系统 实验环境VMware 6.02 系统REHL5.4 (宿主机) 我们在这个系统上添加一块新硬盘来作为新系统的存储盘,将硬盘分为为两个区,一个用来存放系统内核,另一个用来存放init命令和bash等二进制文件. 具体操作过程如下: 添加一块硬盘,用fdisk –l 查看结果:.nit方 对新添加的硬盘进行分区: 分为sdb1,sdb2两个区,使用partprobe命令让内核重读分区表,用cat /proc/partitions查看分区情况,没问题吧! 将sdb1,sdb2格式化为ext3文件系统: 下面开始挂载分区,我们选择在/mnt目录下,这个目录可以是任意的.在/mnt目录下创建的两个挂载点/boot (放置grub 的目录)、/sysroot(系统根分区,). 在sdb分区上装grub,默认就装在/mnt/boot/目录下. 查看boot目录下的文件,有grub了吧 看看grub目录下的配置配置文件,发现了没?缺了一个grub.conf主配置文件,这个我待会儿再创建. 把系统的内核拷贝到当前的boot目录下,重命名为vmlinuz.注意是在boot目录下,这里我犯了一个错误,直接拷到grub目录下,不过在后面又将vmlinuz挪到boot下了. 还需要initrd文件吧?我们没有,需要将系统的initrd修改后拷贝过来.注意系统的initrd不能直接使用,需要修改.我们在tmp目录下创建一个initrd目录,将系统的initrd拷过来展开. 我们查看一下init文件,用不到的行删去或者注释掉都行. 我们再查看一下lib目录下的文件,将用不到的统统删去,如图: 将修改后initrd重新封装输出到/mnt/boot/initrd.gz.. 查看boot目录,看!我们的内核和initrd文件都准备好了吧!这样我们就可以编辑grub.conf文件了. 编辑完成后,把数据从内存中同步到硬盘上,查看grub.conf的内容,就那么简单几句话 下面开始准备我们的根文件系统,在sysroot目录下创建文件目录 将系统/sbin/bin目录下的init文件拷贝到当前的init目录下 将系统/bin/bash目录下的bash文件拷贝到当前的bin目录下 查看一下当前目录 同时还要把两个文件所依赖的库文件拷贝到当前的lib目录下. 使用ldd查看文件依赖的库 将库文件拷贝过来 init要想真正运行,我们还需要一个配置文件inittab,这里我们在当前的etc目录下创建一个inittab文件并编辑. 发现了没?用来做系统初始化的rc.sysinit文件没有,我们依然需要动手创建.创建完成后,需要赋予其执行的权限,然后再同步一下. 这样,一个简单的小linux就完成了.将宿主机挂起,我们新建一个虚拟机使用刚刚配置完成的这块硬盘试一下,看!已经成功启动: 当然,这个小系统仅仅是能够正常启动,不能做任何事情. 我们来添加一个ls命令吧,把系统/bin下ls命令所依赖的库文件拷贝到/mnt/sysroot/lib目录下 重新试一下,看!ls命令能够正常运行了吧! 当然,这个linux小系统仅仅是通过拷贝的方式完成了正常的启动功能,尚不能做任何事情,需要我们在后面逐步去完善. 本文出自 “諸葛草廬” 博客,请务必保留此出处http://lyp0909.blog.51cto.com/508999/474617 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |