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

相关推荐

  • RAID简述和Linux软RAID配置

    RAID简述和Linux软RAID配置 PS:仅为课程练习,原理和配置可能有误,仅供参考,谢谢; 1.RAID功能简述     RAID,全称(Redundant Arrays of Inexpensive Disk或Redundant Arrays of Independent Disk),现在一般多用于后面那个称呼,独立磁盘冗余阵列。RAID的基础概念大…

    Linux干货 2016-07-17
  • keepalive

    HA Cluster: 集群类型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP SPoF: Single Point of Failure 系统可用性的公式:A=MTBF/(MTBF+MTTR)(0,1), 95%几个9(指标): 99%, …, 99.999%,99.9999%;99%:…

    Linux干货 2017-05-22
  • linux 基础命令总结——文件类命令

    <span style="font-size: 18px;">linux 基础命令总结——文件类命令</span> #wmd-preview h1  {    color: #0077bb; /* 将标题改为蓝色 */} linux 基础命令总结——文件类命令 命令总结 文件类命令 l…

    Linux干货 2016-06-26
  • Mysql之主从复制

    Mysql之主从复制 节点一 修改配置文件设置唯一ID开起二进制日志 [root@node1 ~]# vim /etc/my.cnf 增加以下内容     [mysqld]     log-bin=master_bin &nbsp…

    Linux干货 2016-07-19
  • vim编辑器

                在Linux的学习中,无论是编写脚本还是修改文件内容,我们最经常用的就是vim编辑器.vim编辑器功能十分强大,如今不仅仅只应用在Linux中.今天就来介绍一下vim编辑器的功能 进入和退出vim     进入:   在终端输入vim 文件名 ,…

    Linux干货 2017-08-05
  • 马哥教育网络班20期 第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:工作于数据链路层,实现多个lan之间数据的转发,隔离冲突域,类似二层交换机。 集线器:工作于物理层,实现设备的接入,数据信号放大、中转,共享信道。把一个端口接收的所有信号向所有端口分发出去 二层交换机:工作于数据链路层,可连接多个lan,根据帧的mac来转发数据,隔离冲突域…

    Linux干货 2016-08-15