使用linux内核打造属于自己的linux

本文发布时间: 2019-Mar-22
首先要了解Linux的开机过程,如图开机自检(BIOS)这个跟硬件相关,不需要我们做,我们要做的有“MBR引导——GRUB菜单——加载内核(kernel)——运行INIT进程——inittab配置文件——rc.sysinit脚本”,做完后一个非常简单的裸系统linux就成型了,但此时的系统什么功能都没有,如果要使用某些功能,比如ftp服务,vim命令等,需要添加配置文件制作方法:在原有linux系统(宿主机)下添加一块硬盘,把添加的硬盘做成linux系统,做好后移植到其他地方当做新的linux系统,就可以使用了 1,添加硬盘:2,分区按照宿主机的模式分区,共分根,boot,swap三个分区分区保存后会有如下提示‘新盘将在重启后才能使用’,除了重启还有另一种方法,使用命令partprobe/deb/sdb命令完成后就可以直接使用了3,建立光盘挂载点[root@localhost~]#mkdir/mnt/boot(相当于boot)[root@localhost~]#mkdir/mnt/sysroot(相当于/)[root@localhost~]#mount/dev/sdb1/mnt/boot/[root@localhost~]#mount/dev/sdb2/mnt/sysroot/4,构建grub[root@localhost~]#grub-install--root-directory=/mnt//dev/sdb编写grub.conf前要把内核和驱动镜像拷入/mnt/boot/下[root@localhostboot]#cp/boot/vmlinuz-2.6.18-164.el5./[root@localhostboot]#cp/boot/initrd-2.6.18-164.el5.img./但是驱动镜像需要更改一下,不然很有可能系统启动不起来首先创建临时目录把驱动镜像移动过去,并展开在当前目录下[root@localhostboot]#mkdir/mnt/boot/tmp[root@localhostboot]#mvinitrd-2.6.18-164.el5.imgtmp/[root@localhostboot]#zcattmp/initrd-2.6.18-164.el5.img|cpio-id(不加管道后面的命令会出现乱码,cpio程序可以使其正常显示,-id参数选项意思为如果有目录的话建立相应的目录)展开后如图打开init文件并修改在87行首加个#禁掉此行就OK了修改完后,删掉原文件initrd-2.6.18-164.el5.img,重新打包[root@localhosttmp]#find.|cpio-o(表示输入)-H(格式)newc--quiet(静默模式)|gzip-9>initrd.gz打包后复制到/mnt/boot/目录下[root@localhosttmp]#cpinitrd.gz/mnt/boot/最后编辑grub.conf并修改权限使其可执行此时已经做到了第四步加载内核,下面移植INIT进程5,创建跟分区所需要的目录[root@localhostsysroot]#ldd/sbin/init(查看init依赖于哪些库,并拷贝到硬盘2上)linux-gate.so.1=>(0x005aa000)libsepol.so.1=>/lib/libsepol.so.1(0x006fc000)libselinux.so.1=>/lib/libselinux.so.1(0x00854000)libc.so.6=>/lib/libc.so.6(0x001c0000)libdl.so.2=>/lib/libdl.so.2(0x0065c000)/lib/ld-linux.so.2(0x004f0000)一个一个复制太麻烦,所以就制作一个脚本,针对某个命令会复制所有的库文件脚本文件如图在/mnt/sysroot/etc/下编辑inittab配置文件并修改为可执行文件查询bash指令的库文件,并复制,使用刚才编写的复制脚本复制做完后基本已经完成了同步配置,准备移植新系统6,下面开始准备启动盘打开一个新的linux系统,把原有的硬盘删除,挂载新的硬盘(刚才所制作的硬盘)添加硬盘添加刚才创建的磁盘文件然后打开此虚拟机显示如图说明一个简易的linux已经打造成功优化:添加开机背景图片(由于新的系统不支持一些命令,所以首先在宿主机上做好图片,然后再复制到新的linux系统中使用)添加图片,使用xshell上传[root@localhost~]#convert-resize640x480!1.jpg1.jpg(忽略图片的原有比例,不然有可能铺满全屏)[root@localhost~]#convert1.jpg-colors14-geometry640x480splash.xpm(转换图片的像素大小,格式)[root@localhost~]#gzipsplash.xpm(压缩文件)[root@localhost~]#cpsplash.xpm.gz/mnt/boot/grub/(复制到新的linux系统中)应用到配置文件/boot/grub/grub.conf中效果图如图


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表