基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc

上传人:ni****g 文档编号:559529168 上传时间:2023-02-27 格式:DOC 页数:11 大小:215.51KB
返回 下载 相关 举报
基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc_第1页
第1页 / 共11页
基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc_第2页
第2页 / 共11页
基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc_第3页
第3页 / 共11页
基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc_第4页
第4页 / 共11页
基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc》由会员分享,可在线阅读,更多相关《基于Linux源代码及Busybox源代码制作精简可启动内核镜像方法.doc(11页珍藏版)》请在金锄头文库上搜索。

1、基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结熊海泉一、需要准备的东西1Linux内核源代码1Busybox源代码2Unetbootin工具2二、制作Linux内核镜像及内存虚拟盘根文件系统2Linux内核镜像文件bzImage的编译制作 2基于Busybox的根文件系统虚拟盘initrd.gz的制作5三、利用unetbootin工具制作可启动U盘7unetbootin工具的获取与安装7unetbootin使用7四、制作可启动的光盘镜像与磁盘镜像9制作一个基于grub引导的ttylinux LiveCD9制作一个基于grub引导的ttylinux 磁盘镜像10

2、五、基于Qemu模拟器的运行111,基于如下命令运行刚才制作的ttylinux可启动光盘镜像112,以下为启动界面113,以下为基于Qemu模拟器的ttylinux运行界面12六、基于Bochs X86 PC模拟器的运行121,基于如下命令运行刚才制作的ttylinux可启动光盘镜像122,以下为在Bochs模拟器中的启动界面133,以下为基于Bochs模拟器的ttylinux运行界面14一、需要准备的东西Linux内核源代码下载地址 http:/www.kernel.org/pub/linux/kernel/v2.6/这里下载的是linux-2.6.36.2.tar.bzBusybox源代码

3、下载地址http:/ 13中直接用下面的命令行安装:#yum install unetbootin二、制作Linux内核镜像及内存虚拟盘根文件系统Linux内核镜像文件bzImage的编译制作 1、bzImage的制作将下载下来的内核源代码压缩包拷贝到/study/目录下,然后进入到这个目录将其解压,命令如下:#tar jxvf linux-2.6.36.2.tar.bz2然后创建一个目录,用来保存编译内核产生的目标文件#mkdir linux-2.6.36.2-objlinux-2.6.36.2-obj现在是一个空目录,在编译内核时会将目标文件输出保存到这个目录下。然后我们开始编译linux

4、内核编译配置,输入如下所示的命令:#cd /study/linux-2.6.36.2(进入到内核源码树目录)#make O=/study/linux-2.6.36.2-obj menuconfig (配置内核)这里首先将宿主机的/boot目录下的config-2.6.33.3-85.fc13.x86_64这个配置文件拷贝到/study/linux-2.6.36.2-obj/.config,作为下面内核编译配置的基础。#cp /boot/config-2.6.33.3-85.fc13.x86_64 /study/linux-2.6.36.2-obj/.config配置内核时,里面的选项有很多,如

5、果不确定的话就将所有选项都编译进内核,当然最好能针对性的配置内核,这样产生出的内核镜像不至于太大。还有一点就是配置时一定要将选定的选项编译进内核,而不要编译成模块,也就是说在前面带有M选项时,要么直接静态编译进内核,要么去掉。同时,为了支持initrd内存盘文件系统,有两个选项是必须的。一个是General Setup Initial RAM filesystem and RAM disk support另一个是 Device Drivers Block Devices RAM block device support这个选项的子选项保持默认就可以了,如下图所示:然后退出配置界面,在退出时会提

6、示你是否保存刚才的配置,选择yes就可以了(因为我们在配置时指明了O=/study/linux-2.6.36.2-obj 目录,所以配置文件会保存到这个目录下,文件名为.config)然后在linux-2.6.36.2目录下执行#make mrproper接下来我们开始编译内核:#make O=/study/linux-2.6.36.2-obj j 16 (生成内核镜像,采用多线程编译,4核八线程故开启-j 16选项,加快编译速度)通常,我们编译内核是为了更新内核,但这里我们只是为了编译出一个内核镜像,所以就不调用make install命令来安装内核了。好!内核编译完成,我们将编译好的内核镜

7、像拷贝到主目录下,以供后面使用。# cp /study/linux-2.6.36.2-obj/arch/x86/boot/bzImage /study/bootdisk (拷贝到此目录下将来由unetbootin制作启动盘)基于Busybox的根文件系统虚拟盘initrd.gz的制作接下来我们开始编译busybox。(我的busybox-1.18.0.tar.bz2存放到了/study目录下)#tar jxvf busybox-1.18.0.tar.bz2 (解压busybox压缩包)#cd busybox-1.18.0 (进入到解压后的busybox源码目录)#make menuconfig

8、 (配置busybox)注意配置时,一定要选择静态链接选项,该选项位于:Busybox Settings Build Options Build Busybox as a static binary#yum install libselinux-static libsepol-static glibc-static(具体根据系统可能还需要其它的包,这是我的系统中需要安装的几个包,是链接busybox所需要的)接下来,我们安装busybox#make install (busybox默认安装到了其源码树目录的名字为_install的目录中)#cd _install (进入安装了busybox的目

9、录)当我们进入了busybox后发现了熟悉的linux目录结构,但只有这些是不够的还需要手工添加一些基本的配置文件。这时,我们处在/root/busybox-1.18.0/_install 目录下。好了,开始我们的配置#mkdir proc sys etc dev (创建四个空目录,linux内核需要)#cd dev#mknod console c 5 1 (创建一个控制台字符设备文件)#mknod null c 1 3 (创建一个0设备文件)#cd .#cd etc# vim fstab (输入如下图内容)proc/procprocdefaults00sysfs/syssysfsdefaul

10、ts00#mkdir init.d# vim init.d/rcS (输入如下内容)#!/bin/shMount -a#chmod +x init.d/rcS (给rcS文件加上可执行权限)#vim inittab (输入如下内容):sysinit:/etc/init.d/rcSconsole:respawn:-/bin/sh:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount a -r#cd .#pwd (打印当前目录)/study/busybox-1.18.0/_install此时表明我们处在busybox安装文件的根目录下#rm linuxrc (删

11、除linuxrc链接文件)然后新创建一个指向busybox文件的链接文件,如下图所示:#ln sv bin/busybox initinit-bin/busybox我们输入如下图所示命令来创建initrd镜像.#find .| cpio quiet H newc o |gzip -9 n /study/bootdisk/initrd.gz至此就得到了两个镜像文件:bzImage : linux内核镜像文件initrd.gz : 内存盘根文件系统镜像文件三、利用unetbootin工具制作可启动U盘unetbootin工具的获取与安装unetbootin使用通过下面的命令打开unetbootin

12、,一定要加-showcustom=y选项,否则不会出现自定义那个选项#unetboot -showcustom=y在自定义里面选择内核为刚才我们制作的bzImage,initrd为刚才制作的initrd.gz。我这里是把它们安装在了U盘上,这样方便携带。然后确定,就会把我们刚才的东西装在U盘上,最后会出现一个重启的画面,你就可以重新启动,把启动项改为从U盘启动,就可以进入自己制作的linux了。四、制作可启动的光盘镜像与磁盘镜像制作一个基于grub引导的ttylinux LiveCD1、创建livecd目录作为制作LiveCD的根的目录,并在其中创建grub所需的目录# mkdir -pv /

13、study/livecd/ttylinux,boot/grub2、复制grub可引导的光盘所需的引导程序# cp -rv /usr/share/grub/x86_64-redhat/* /study/livecd/boot/grub3、将编译制作好的内核镜像bzImage以及内存虚拟盘根文件系统initrd.gz复制到/study/live/ttylinux目录下4、为grub建立配置文件# vim /study/livecd/boot/grub/grub.conf添加如下内容:default 0timeout 10title ttylinux for Bochs & Qemu (Made b

14、y Xiong Haiquan)root (cd)kernel /ttylinux/bzImage load_ramdisk=1 prompt_ramdisk=0ramdisk_size=8192 ro root=/dev/ram0initrd /ttylinux/initrd.gz5、在/study目录下执行如下命令,创建livecd镜像:# mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4-boot-info-table -o ttylinux.iso livecd好了,到此为止一个grub引导的ttylinux.iso光盘镜像,可以在Bochs和Qemu中运行启动。制作一个基于grub引导的ttylinux 磁盘镜像五、基于Qemu模拟器的运行1,基于如下命令运行刚才制作的ttylinux可启动光盘镜像./qemu-0.13.0/x86_64-softmmu/qemu-system-x86_64 cdrom ttylinux.iso boot d2,以下为启动界面3,以下为基于Qemu模拟器的ttylinux运行界面六、基于Bochs X86 PC模拟器的运行1,基于如下命令运行刚才制作的ttylinux可启动光盘镜像./bochs-2.4.5/bochs f bochs

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号