自己动手创建最精简的、最具特色linux(2)

来源:未知 责任编辑:责任编辑 发表时间:2015-01-01 13:17 点击:

          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

              展开之后我们会发现一个init的脚本文件,将其用vim打开,将以mkrootdev -t ext3 -o defaults,ro开头行ro

            后面的内容改成sda2,保存退出,即可(sda2为我们小linux系统单独运行时根文件系统所在的分区,在此我们告诉init进程,真正的根文件系统在sda2上面,让内核去进行根文件系统的加载,需要注意的是ro和sda2之间有一个空格)

            修改 完成之后,我问就该对其进行封装复原了(封装复原前最好先将此目录中的initrd-2.6.18-164.el5.img文件删除,使用命令:rm -rf initrd-2.6.18-164.el5.img),使用命令:

             find . | cpio -H newc -o | gzip -9 > /mnt/boot/initrd.gz

                   (注:find . 为当前目录的所有内容

                               cpio -H news -o 将目录下的所有内容进行cpio打包

                               gzip -9 打包之后进行gzip压缩,因为这个文件必须是压缩的格式

                               > /mnt/boot/initrd.gz 将打包压缩好的文件放在/mnt/boot目录下,并命名为initrd.gz,重命名同样是为了方便使用  )

            3、向我们小linux磁盘安装grub引导程序。(关于grub的作用在我刚刚提到的文章里有介绍,此处不再说明)

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  • nginx主主集群
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • 学习笔记:ACL详解
  •  LVM逻辑卷管理器
  • suse linux双网卡双网关配置
  •  Nginx主主负载均衡架构
  • ubuntu学习Mysql

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1