linux内核 精简 编译,精简Linux内核制作

Linux作为1个免费、自由软件,内核版本不断升级。新的内核修订了旧内核的bug,并增加了许多的

新特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制1个更高效,更稳定的内核,就需

要重新裁剪、编译内核。

如果说Linux的shell是用户应用程序与计算机系统的接口(作业级),则Linux内核可以看成是

shell与硬件的接口,它们之间的关系如图。

aea732ac3ad77f5778861948a5073c32.png

精简内核制作步骤:

一、添加一块儿新的硬盘,最好和你宿主机上的硬盘类型(sisc、IDE、stat)保持一致。

d1d301b66f914bcbf5886c7010e43d0a.png

bf6271c7abe6626e4c143abc256471b5.pngb399a340e9d3e00e0a8c11e3b7934696.png

801a4013fa1eba76e85347986ed65b25.png

然后启动你的宿主机。查看新的硬盘是否被系统所识别。

b40dddbd8dde2349a555c2b34b32eae8.png

给新的硬盘分区。

625cb1e790ac031cfb53f73ef43ded91.png

d7a14fab6f5ed105269efe20565f1e29.png

5d82ebe57ffc55af091f0f45c26b21b2.png

fa1d504dc6770ac7f865ae57ba816280.png

62c418b183a82a88920cd8ee13dc5aeb.png

1ab4272938d497a600c54b640d2718aa.png

392292cc64192fd8b8e79c018fff1c99.png

c421d571d7978d423a856a24a2df8268.png

41de36c25d8eb6c2c96a784428fd64a8.png

在宿主机中建立两个挂载点,将新硬盘上的前两个分区挂载到系统中。

22fdaf73750e44773744a015e41dabdf.png

Grub菜单的第二个阶段,主要是系统的标签,背景,内核,驱动。

注意:在使用 “grub-install --root-directory=/mnt  /dev/sdb ”时,/mnt后不能写

为/mnt/boot,系统会自动寻找打指定目录下的名为boot的目录,此时/mnt/boot目录下会生成一个

grub目录,里面缺少grub.conf文件

9b0c2d9e6d803e96a7490d972bd1244a.png

第二阶段基本上建立成功,只不过缺少了配置文件,在后面我们将自己来制作。接下来我们来建

立grub菜单的第一阶段。使用“grub” 命令来建立。

27eb6c9c8464c98707ab3677b9d99551.png

grub菜单基本上已经ok了,前面我们也说了,还确实grub.conf。所以我们现在就来,制作

grub.conf文件。首先将宿主机中的内核和驱动拷贝到新的硬盘的boot目录中,为我们制作grub.conf

做准备。 内核可以直接拷贝,因为内核是运行在硬件基础上的,硬件基本上没有多大的改变。但是驱

动需要我们加工一下,因为新的硬盘可能格式不一样等等。

# cp /boot/vmlinuz-2.6.18-164.e15.img /mnt/boot/

制作initrd,不能直接复制,因为宿主机上的驱动模块不一定适合新的系统。

在管理员家目录下创建一个目录     mkdir  /root/aaa

进入aaa中, cd /root/aaa

zcat /boot/initrd-2.6.18-164.el5.img |cpio  -id

注: -i:表示把数据读进来,并展开到当前目录下

-d:展开时若需要目录,则自动创建目录

5e5dc3a35073fe41fcbaff0ed46d5167.png

其中lib目录里面是库文件,init是守护进程,里面有许多的模块。

2f232ffbc714165dc0a919a4bfa745e5.png

87fff2c221cca38821d118486f091f5a.png

在/mnt/boot/grub/目录中创建文件grub.conf   vim  grub.conf

190d258d5787b8b17b517acf3239e3a3.png

在/mnt/sysroot中建立目录和老的硬盘上的/目录中的目录相同。

c7800466020b20053c736ef940616dad.png

在usr/目录中创建两目录bin  sbin ,在etc目录中创建目录rc.d。

因为系统启动要依靠依赖守护进程,所以要在sbin/目录有init文件,如果不知道init应该位于那

个文件夹,可以使用命令“which  init”在老系统中查看。然后将老系统中文件拷贝到新的硬盘的根

目录中对应的位置(/mnt/sysroot/sbin),init运行时要加载许多库文件,所有我们还要将init对应

的库文件拷贝到新硬盘中对应的lib中。 使用命令“ldd  可以查看对应的库文件”。 如果你需要的

文件很多的话,用cp命令执行的话,会很繁琐,我们可以编写一个脚本来拷贝这些文件以及相应的库

文件。

5e2479c3f963273fba2f13aca7c9e24f.png

84010452b8fce23e043bdefbedb2401b.png

做到现在,新的硬盘可以启动了,只是不可以使用关机和重启的命令。为了做的相对好点,我们

可以简单的制作一下:

在/mnt/sysroot/etc/rc.d目录中建立一个新文件inittab,设置系统的启动。

73ae421d84cbf65a55133ab8eb460117.png

脚本编写之后,因为要用的/sbin/halt和/sbin/reboot,所以我们还要将这两个文件从老系统拷

贝到新的硬盘所对应的目录下/mnt/sysroot/sbin中,以及将它们所要运行的库文件拷贝

到/mnt/sysroot/lib中。

系统启动要进行初始化,所以我们要在/mnt/sysroot/etc/rc.d/目录中创建初始化文件

rc.sysinit。

860dcb885b0a18c1c1bf6c000ccc0415.png

现在你就可以使用新的硬盘来启动系统了。注意:在虚拟机中,你创建一个新的Linux主机时,要保证硬盘和你的新硬盘类型是一样的,否则会出现这样的错误:

2dce8bda9c22576dd7632663a6d38b20.png

拷贝文件以及相关库文件的脚本:

3e2b6361ec4f45452d4dc1880b5afbb1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux内核裁剪与编译是指根据特定需求对Linux内核进行精简和修改,以提高性能、减少系统资源占用和满足特定硬件要求的过程。 首先,裁剪是指根据需求从内核中移除不需要的功能、驱动程序和模块,以减少内核的体积和运行所需的资源。裁剪可以根据具体需求进行,例如:移除不常用的文件系统、网络协议、硬件支持等,从而减少内核宿主机器的内存占用和启动时间。 其次,编译是将裁剪后的内核源代码转化成可执行的二进制形式的过程。Linux内核编译一般包括如下步骤:配置、编译和安装。首先,通过make menuconfig等工具进行配置,选择要编译内核的功能、驱动和模块等;然后执行make命令进行编译,生成内核镜像和模块文件;最后,通过make install或手动复制文件的方式将内核镜像和相关文件安装到系统中。 Linux内核裁剪与编译的好处是能够满足特定用途的需求,并且可以优化系统的性能和资源利用。裁剪后的内核具有更小的体积和更低的资源占用,适用于嵌入式设备和资源受限的环境。此外,编译过程还可以根据硬件配置、优化选项和目标平台等进行优化,从而提升系统的稳定性和性能。 总之,Linux内核裁剪与编译是根据特定需求对内核进行精简和修改的过程,通过移除不需要的功能和驱动,并根据硬件配置进行优化,以满足特定需求和提升系统性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值