内核编译及制作Linux系统

    用自己编译的linux内核自己制作一个很简单的启动盘,能够成功启动且能有简单的shell环境。

    第一步:从内核官网www.kernel.org 下载相应的内核版本,现在到本地后,将它解压(我是解压到/usr/src目录下),解压后进入目录。由于编译的选项太多,为了简化设置编译选项,直接将本地的/boot/config-*文件复制到目录下并改名为.config,使用命令“make menuconfig”进入编译设置界面:

blob.png     进入“General setup”设置编译的版本号:blob.png

    进入“File Systems”设置ntfs文件格式为“M”,将其编译成模块:

blob.png

    完成相应的相关设置后,保存退出。使用命令“make”开始编译(这需要很长的是时间)。注意:在使用make命令之前要确保系统已经安装了“Server Platform Development”和“Development Tools”两个包组,如果没有安装,编译会因为却库文件报错。完成后要安装相关模块使用命令“make modules_install”。最后使用“make install”完成编译。

    编译完成后,可以在/boot目录下看见编译的内核和initramfs文件:

blob.png

    并且在/lib/modules目录下面也有相应版本的模块:blob.png

    为了验证编译时候成功,将系统重启。

blob.png

    如上图,启动的时候已经有了对应的启动命令,选择并启动。

blob.png

    能够正常启动,编译完成。

    下面将做好的内核迁移至一块新的磁盘,做成一个及其简易的系统,能够启动起来并且能够运行一些简单的bash命令。

    首先在刚才编译内核的机器上新增一块磁盘,大小120G(尽量设置大点),如下图的方式让机器找到设备:

blob.png    将/dev/sdf设备分区,这里简单点,分成两个分区,一个作为/boot的分区,一个作为/的分区。格式化为ext4格式的文件系统。将作为/boot的/dev/sdb1挂载到/mnt/boot目录下,注意,这个挂载点的基名一定要为boot,否则不能将grub安装进去:

blob.png

    将刚才编译好的内核和initramfs文件复制进入/mnt/boot目录下,编辑/mnt/boot/grub/grub.conf文件如下:

blob.png

    由于启动设置的直接使用bash,不用init程序程序用户空间,因此指定init为/bin/bash,并且要停用selinux。然后在另一个分区将/mnt/sysroot下面建立根文件系统应该有的目录:

blob.png

    并从宿主机上面复制bash、ls、ip等命令及其依赖的库文件到/mnt/sysroot下面,复制完后的目录如下:

blob.png

blob.png

    完成后,新建一台虚拟机,使用该磁盘,启动结果:

blob.png

    成功进入grub,开始引导:

blob.png

    成功启动,并且能使用几个简单的命令,整个过程完成。

原创文章,作者:王更生,如若转载,请注明出处:http://www.178linux.com/60609

(1)
王更生王更生
上一篇 2016-11-24
下一篇 2016-11-24

相关推荐

  • 06文本工具简单介绍

    在Linux系统中,一个核心理念就是:一切皆文件。正确的对系统中文本的编辑配置与管理是Linux系统得以稳定运行的一个重要大前提。 因此Linux系统中的文件与管理特别重要,下面简单说一下在对文件处理过程中经常用到的一些命令工具。 文本查看命令:cat,tac,rev,more,less cat [option]…[file]… -E…

    Linux干货 2016-10-31
  • Linux基础知识之逻辑卷管理器(LVM)

    逻辑卷管理器(LVM)        允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小     允许在多个物理设备间重新组织文件系统将设备指定为物理卷     用一个或者多个物理卷来创建一个卷组  &n…

    Linux干货 2016-09-01
  • Heartbeat高可用http

    Heartbeat高可用http 实验图 heartbeat高可用http 一、实验图: 二、heartbeat高可用http(Heartbeat V1 haresource) heartbeat节点ssh互信 heartbeat节点名称相互解析,uname -n heartbeat节点时间一致性 安装前准备: ssh多节点互信 [root@node4&nb…

    Linux干货 2016-07-07
  • linux文件系统创建

    件系统管理 格式化:低级格式化(分区之前,划分磁道)         高级格式化:在分区之后进行,创建文件系统         元数据(也是放在块上(block)):inode  &nbsp…

    Linux干货 2016-08-29
  • 系统管理中的三大利刃(htop glances dstat)

    工欲善事情,必先利其器,生产环境中的服务器在处理请求并生成回应数据的时间主要消耗在服务器端,包括了众多的环节,如何全面了解我们linux服务器的CPU使用率、使用时间、内存占用比例、磁盘IO数据、网络相关数据等等众多指标,保证我们的linux服务器顺利完成每一个请求,怎能没有几个趁手的利刃,而今天就让我们见识一下系统管理中三大利刃。 相传一把三尺长的软剑,叫…

    Linux干货 2015-11-18
  • LVM逻辑卷管理相关命令的用法

    前提:创建分区,文件或添加硬盘作为LVM的物理卷 pv(物理卷) 命令用法 1、pvcreate创建pv pvcreate -s    指定PE大小,默认为4M 2、pvremove删除pv 3、pvs,pvdisplay显示pv pvs 显示pv摘要 pvdisplay 详细显示pv 4、pvmove:把卷组中一个物…

    Linux干货 2016-08-30