版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结熊海泉一、需要准备的东西 iLinux内核源代码 1Busybox源代码2Unetbootin 工具2二、制作Linux内核镜像及内存虚拟盘根文件系统 2Linux内核镜像文件 bzlmage的编译制作 2基于Busybox的根文件系统虚拟盘 initrd.gz的制作5三、利用 unetbootin 工具制作可启动 U 盘7unetbootin 工具的获取与安装 7unetbootin 使用7四、制作可启动的光盘镜像与磁盘镜像 9制作一个基于 grub引导的ttylinux LiveCD 9制作一个基于 grub引
2、导的ttylinux 磁盘镜像10五、 基于 Qemu模拟器的运行 111, 基于如下命令运行刚才制作的ttylinux可启动光盘镜像 112, 以下为启动界面113,以下为基于 Qemu模拟器的ttylinux运行界面 12六、基于 Bochs X86 PC模拟器的运行 121,基于如下命令运行刚才制作的ttylinux可启动光盘镜像 122,以下为在 Bochs模拟器中的启动界面 133,以下为基于 Bochs模拟器的ttylinux运行界面14一、需要准备的东西Linux内核源代码下载地址 /linux/kernel/v2.6/这里下载的是linux-Busybox 源代码下载地址这里下
3、载的是busybox-Unetbootin 工具下载地址这里可以在 Fedora 13 中直接用下面的命令行安装:#yum install unetbootin二、制作 Linux 内核镜像及内存虚拟盘根文件系统Linux 内核镜像文件 bzImage 的编译制作1、bzImage 的制作 将下载下来的内核源代码压缩包拷贝到 /study/ 目录下,然后进入到这个目录将 其解压, 命令如下 :#tar jxvf linux-然后创建一个目录,用来保存编译内核产生的目标文件#mkdir linux-linux- ,在编译内核时会将目标文件输出保存到这个目录下。然后我们开始编译 linux 内核编
4、译配置 , 输入如下所示的命令 :#cd /study/linux-#make O=/study/linux- menuconfig (配置内核 )这里首先将宿主机的 /boot 目录下的 config- ,作为下面内核编译配置的基 础。#cp /boot/config- /study/linux-配置内核时,里面的选项有很多 , 如果不确定的话就将所有选项都编译进内 核,当然最好能针对性的配置内核,这样产生出的内核镜像不至于太大。还有一 点就是配置时一定要将选定的选项编译进内核,而不要编译成模块,也就是说在 前面带有 M 选项时,要么直接静态编译进内核,要么去掉。同时,为了支持 initrd
5、 内存盘文件系统,有两个选项是必须的。一个是 Ge neral Setup - In itial RAM filesystem and RAM disk support另一个是 Device Drivers - Block Devices - RAM block device support这个选项的子选项保持默认就可以了,如下图所示 :然后退出配置界面,在退出时会提示你是否保存刚才的配置,选择 yes 就可 以了 (因为我们在配置时指明了 O=/study/linux- 目录,所以配置文件会保存到 这个目录下,文件名为 .config) 然后在 linux-#make mrproper 接下
6、来我们开始编译内核 :#make O=/study/linux- j 16 (生成内核镜像,采用多线程编译,4核八线程故开启-j 16选项,加快编译速度 )通常,我们编译内核是为了更新内核,但这里我们只是为了编译出一个内核 镜像,所以就不调用 make install 命令来安装内核了。好!内核编译完成,我们将编译好的内核镜像拷贝到主目录下,以供后面使 用。# cp /study/linux- /study/bootdisk (拷贝到此目录下将来由 unetbootin 制作启动盘 )基于 Busybox 的根文件系统虚拟盘 initrd.gz 的制作接下来我们开始编译busybox。(我的b
7、usybox-#tar jxvf busybox- (解压 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(具体根据系统可能还需要其它的包,这是我的系统中需要安装的几个
8、包,是链接 busybox 所需要的 ) 接下来,我们安装 busybox#make install (busybox 默认安装到了其源码树目录的名字为 _install 的目录中 ) #cd _install ( 进入安装了 busybox 的目录 )当我们进入了 busybox后发现了熟悉的linux目录结构,但只有这些是不够的还需要手工添加一些基本的配置文件。这时,我们处在/root/busybox-目录下。好了,开始我们的配置#mkdir proc sys etc dev (创建四个空目录,linux 内核需要)#cd dev#mk nod con sole c 5 1 (创建一个控制
9、台字符设备文件)#mknod null c 1 3 (创建一个 0设备文件)#cd .#cd etc# vim fstab (输入如下图内容)proc/procprocdefaults00sysfs/syssysfsdefaults00#mkdir in it.d# vim init.d/rcS (输入如下内容)#!/bi n/shMount -a#chmod +x init.d/rcS (给rcS文件加上可执行权限 )#vim inittab (输入如下内容):sys in it:/etc/i nit.d/rcScon sole:respaw n:-/b in/sh:ctrlaltdel:/
10、sb in/reboot:shutdow n:/b in/umounta -r#cd .#pwd (打印当前目录)/study/busybox-此时表明我们处在busybox安装文件的根目录下#rm linuxrc ( 删除 linuxrc 链接文件)然后新创建一个指向busybox文件的链接文件,如下图所示:#ln - sv bin/busybox in itinit - bin/busybox 我们输入如下图所示命令来创建 initrd 镜像 .#find .| cpio - quiet - H newe - o |gzip -9- n /study/bootdisk/initrd.gz至
11、此就得到了两个镜像文件: bzImage : linux 内核镜像文件 initrd.gz : 内存盘根文件系统镜像文件三、利用 unetbootin 工具制作可启动 U 盘unetbootin 工具的获取与安装unetbootin 使用通过下面的命令打开 unetbootin ,一定要加 -showcustom=y 选项,否则不会 出现自定义那个选项#unetboot -showcustom=y在自定义里面选择内核为刚才我们制作的bzImage, initrd 为刚才制作的initrd.gz 。我这里是把它们安装在了 U 盘上,这样方便携带。然后确定,就会把我们刚才的东西装在 U 盘上,最后
12、会出现一个重启的画 面,你就可以重新启动,把启动项改为从 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、将编译制作好的内核镜像 bzI
13、mage 以及内存虚拟盘根文件系统 复制到 /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/ini
14、trd.gz5、在 /study 目录下执行如下命令,创建 livecd 镜像:# mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4-boot-info-table -o ttylinux.iso livecdinitrd.gzBochs 和好了,到此为止一个 grub 引导的 ttylinux.iso 光盘镜像,可以在 QemU中运行启动。制作一个基于 grub引导的ttylinux 磁盘镜像五、基于Qemu模拟器的运行1,基于如下命令运行刚才制作的ttylinux可启动光盘镜像./qemu- -c
15、drom ttylinux.iso -boot d2,以下为启动界面3,以下为基于Qemu模拟器的ttylinux运行界面六、基于ochs X86 PC模拟器的运行1,基于如下命令运行刚才制作的ttylinux可启动光盘镜像./bochs- - bochsrc.txt其中配置文件bochsrc.txt的主要内容为,关键是光盘启动,颜色为红色部分 memory:guest=512,host=256romimage: file=$BXSHARE/BIOS-bochs-latest vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest ataO: enabled=1, ioaddr 仁0x1f0, ioaddr2=0x3f0, irq=14 ataO-master: type=cdrom, path=ttylinu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省常德市高职单招职业适应性测试考试题库及答案详细解析
- 2026广东惠州博罗县西区社区诚招财务工作人员1人考试参考试题及答案解析
- 2026年厦门理工学院单招职业适应性测试题库有答案详细解析
- 2026年沧州医学高等专科学校单招职业适应性测试题库有答案详细解析
- 2026江西新余开物金服科技有限公司招聘备考题库及答案详解(有一套)
- 2026年重庆师范大学单招职业适应性测试题库有答案详细解析
- 2026年青海柴达木职业技术学院单招职业技能考试题库附答案详细解析
- 2026年甘肃林业职业技术学院单招综合素质考试题库附答案详细解析
- 2026年三门峡职业技术学院单招职业适应性测试题库附答案详细解析
- 2026年宣城职业技术学院单招职业适应性测试题库有答案详细解析
- 四级考前培训
- 精神科安全用药管理
- CQI-17锡焊系统评估第二版(2021年8月发布)
- 经络与腧穴-手少阴心经
- 新时代文明实践研究报告
- 小学科学湘科版六年级下册全册同步练习含答案
- 陶瓷工艺学:第4章 传统陶瓷的生产-原料预处理
- 邻居房屋漏水调解协议书
- 智能门锁采购投标方案(技术方案)
- 玉石之分-课件.正式
- SMT炉后检查作业指导书V1.0
评论
0/150
提交评论