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

相关推荐

  • 跟我一起学man page、history的使用,剖析FHS(文件系统目录标准)

    跟我一起学man page、history的使用,剖析FHS(文件系统目录标准) 描述 从Linux小白鼠成长为高(lao)高(hei)手(shu)的过程中,无论如何都要学会自个儿施法解决问题,法力的高深体现了解决问题的能力,这里的法力指的是在没有互联网的环境下如何使用man page或相关文档找到命令的使用方法和配置文件的修改方法。本文第一部分总结了在Li…

    Linux干货 2016-07-29
  • Linux文件查找之find命令详解

    文件查找 文件查找就是在在文件系统上查找符合条件的文件; 文件查找分为: 实时查找:遍历所有文件进行条件匹配 非实时查找:根据所以查找 locate: 1、查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 2、locate属于非实时查找,依赖于事先构建的索引; 索引的构建是在系统较为空闲时自动进行(周期性任务);管理员手…

    Linux干货 2016-08-18
  • 基于mysql的数据库分析系统(rsyslog)

    rsyslog:日志收集和存储系统 1.事件在电脑中的日志记录格式为:     日期时间 主机 进程[pid]:事件内容 2.rsyslog的特性:     多线程;     UDP,TCP,SSL/TLS,RELP; &nbsp…

    Linux干货 2016-10-23
  • N22-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; # fdisk /dev/sda n p 3 w # partx -a /dev/sda  # partx -a /dev/sda # mke2fs -t ext4 -b&nbs…

    Linux干货 2016-10-09
  • sed工具

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来…

    2017-08-26
  • 初学者通过VMware安装CentOS7并实现本机windows端Xshell远程登陆

    这是我这个菜鸟在学习Linux过程中写的第一篇Blog。内容主要是通过VMware安装CentOS7系统,并且在本机的Windows端通过Xshell5来远程登陆安装好的虚拟机CentOS7系统。 首先通过VMware安装完CentOS7并进入系统。 使用root权限操作,通过 ~]#ifconfig or ~]#ip addr list 命令查询到虚拟机系…

    2017-10-11