




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于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五、基于Qemu模拟器的运行111,基于如下命令运行刚才制作的ttylinux可启动光盘镜像112,以下为启动界面113,以下为基于Qemu模拟器的ttylinux运行界面12六、基于Bochs X86 PC模拟器的运行121,基于如下命令运行刚才制作的ttylinux可启动光盘镜像122,以下为在Bochs模拟器中的启动界面133,以下为基于Bochs模拟器的ttylinux运行界面14一、需要准备的东西Linux内核源代码下载地址 这里下载的是linux-2.6.36.2.tar.bzBusybox源代码下载地址这里下载的是busybox-1.18.0.tar.bz2Unetbootin工具下载地址这里可以在Fedora 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内核编译配置,输入如下所示的命令:#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配置内核时,里面的选项有很多,如果不确定的话就将所有选项都编译进内核,当然最好能针对性的配置内核,这样产生出的内核镜像不至于太大。还有一点就是配置时一定要将选定的选项编译进内核,而不要编译成模块,也就是说在前面带有M选项时,要么直接静态编译进内核,要么去掉。同时,为了支持initrd内存盘文件系统,有两个选项是必须的。一个是General Setup Initial RAM filesystem and RAM disk support另一个是 Device Drivers Block Devices RAM block device support这个选项的子选项保持默认就可以了,如下图所示:然后退出配置界面,在退出时会提示你是否保存刚才的配置,选择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命令来安装内核了。好!内核编译完成,我们将编译好的内核镜像拷贝到主目录下,以供后面使用。# 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 (配置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的目录)当我们进入了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/syssysfsdefaults00#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 (删除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,一定要加-showcustom=y选项,否则不会出现自定义那个选项#unetboot -showcustom=y在自定义里面选择内核为刚才我们制作的bzImage,initrd为刚才制作的initrd.gz。我这里是把它们安装在了U盘上,这样方便携带。然后确定,就会把我们刚才的东西装在U盘上,最后会出现一个重启的画面,你就可以重新启动,把启动项改为从U盘启动,就可以进入自己制作的linux了。四、制作可启动的光盘镜像和磁盘镜像制作一个基于grub引导的ttylinux LiveCD1、创建livecd目录作为制作LiveCD的根的目录,并在其中创建grub所需的目录# mkdir -pv /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 by 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 bochsrc.txt其中配置文件bochsrc.txt的主要内容为,关键是光盘启动,颜色为红色部分memory:guest=512,host=256romimage: file=$BXSHARE/BIOS-bochs-latestvgaromimage: file=$BXSHARE/VGABIOS-lgpl-latestata0: enabled=1, ioaddr1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 树脂制备安全教育培训手册
- 铁路试验检测设备维修工职业技能鉴定经典试题含答案
- 甲醇装置操作工实操任务书
- 服装水洗工技能测试题库及答案
- 汽车维修检验工安全技术操作规程
- 卷烟生产人员实操任务书
- 小学生读书爱书课件
- 小学生说题课件
- 小学生语文认字课件
- 二零二五年城市环境监测系统搭建与数据分析服务协议
- 星级班长评定管理办法
- 2025年社区专职干部招聘考试真题及答案
- 2025年天津市中考英语真题 (原卷版)
- 脑室腹腔分流术护理
- 2025至2030中国预涂膜行业项目调研及市场前景预测评估报告
- 2025年重庆出版集团招聘笔试冲刺题2025
- 开展打击电信网络诈骗知识培训
- 慢性呼吸疾病肺康复护理专家共识
- 2025至2030中国黄金珠宝首饰行业市场发展分析及发展前景与投资报告
- 跨文化冲突技术缓解方案-洞察及研究
- 《山东省房屋市政施工安全监督要点》及《安全监督“二十要”》2025
评论
0/150
提交评论