内核编译及制作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

相关推荐

  • 私人定制—linux系统

    自制Linux系统: 1、分区并创建文件系统 [root@localhost6 ~]# fdisk  /dev/sdb 分两个必要的分区 /dev/sdb1对应/boot /dev/sdb2对应根/ 创建文件系统: [root@localhost6 ~]# mkfs.ext4 /dev/s…

    Linux干货 2016-09-26
  • shell脚本之变量、运算、条件测试。

    概述 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令; 编程语言: 低级:             汇编 高级:…

    Linux干货 2016-08-15
  • ansible的入门使用手册

    ansible1

    2018-01-15
  • Linux find命令使用详则

    find命令 find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录欲文件。并且将查找到的子目录和文件全部进行显示。 语法 find(选项)(参数) 选项 -amin<分钟>:查找在指定时间曾被存取过的文件或者目录,单位以分钟计算; -ane…

    2017-08-03
  • 在CentOS 6上编译安装LAMP

    在CentOS 6上编译安装LAMP     在生产中如果需要使用较新的服务,而系统提供的rpm包又较老时该怎么办呢?其实应用程序的安装方式有多种,如:使用系统发行商提供rpm包或者下载源码包手动编译安装也是可以的。今天我们编译的服务不是一个单独的而是一套。这套黄金搭档从诞生之初到现在已经经过无数用户的验证,各大电商站点、门户网站、以及各…

    Linux干货 2017-04-23
  • 人志建,则无敌—磁盘、LVM2和简单脚本练习

    马哥网络班21期-第七周博客 1、创建一个10G分区,并格式为ext4文件系统;  disk /dev/sdb         Command (m for help): n    &nbs…

    Linux干货 2016-08-19