欢迎来到天天文库
浏览记录
ID:62028097
大小:25.60 KB
页数:13页
时间:2021-04-15
《(2 安装启动 自己定制软盘上的Linux系统.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、优选安装启动-自己定制软盘上的Linux系统一.前言 嵌入式Linux是由一个几百KB的Linux内核和一个根据需要制定的文件系统所构成了,由于Linux是开放源代码的操作系统,所以在嵌入式领域有着非常广阔的前景,并已经广泛应用在许多手机、PDA、MP3播放器等许多电子产品中。本文将介绍一种两X软盘上的Linux系统,它可以当作系统应急修复盘、路由器或防火墙等许多地方,通过对它的研究,也可以加深对嵌入式系统的理解。二.Linux启动过程 所有的PC机在加电之后,BIOS会寻找到启动盘第一个扇区,并将其复制到RAM中来执行
2、它,对于两种不同的启动方式,这个扇区通常含有两种不同的代码:引导程序(比如Lilo或Grub等)的代码,引导程序会帮助定位内核的位置。内核的代码,这通常是从软盘启动时使用的引导的方式。对于前者,通常需要内核支持initrd。如果是后者,使用的BootLoader就是arch/i386/boot/bootsect.S。当内核被编译的时候,这段执行代码就被到内核image的最开始的地方。这样很容易就能只要把内核复制到起始位置为第一个扇区的软盘上就能得到可自启动的软盘。内核会初始化设备驱动和内部的数据结构,之后它会到一个特定的位置
3、――RamdiskWord来获得根文件系统的位置。内核必须知道去那里寻找这个根文件系统,否则它将停机。 在使用软盘启动的方式时,内核可以把一个压缩的文件系统释放到RAM中,称之为Ramdisk,这是一个内存区域,但内核会把它当作磁盘一样使用。 本文中介绍的例子使用Grub做为引导程序,并使用initrd来辅助Linux的启动。两X软盘分别命名为bootldr盘和rootfs盘,在bootldr盘中内容为grub、内核、initrd,rootfs盘中是压缩过的根文件系统。系统启动时bootldr盘的Grub定位并执行内核,
4、然后内核解开initrd,并执行linuxrc文件,这个文件负责提示用户更换rootfs盘并将其中内容解压至内存中,然后执行刚刚解压的init继续启动过程。为了方便理解这个例子,先介绍目录结构如下:/home/papaya├─bootldr/│├─grub/13/13优选│├─kernel/││├─images/││└─linux-2.4.21/│└─initrd/│├─mkinitrd.sh│├─local/│└─ramdisk/├─rootfs/│├─mkrootfs.sh│├─ramdisk/│└─local/└─li
5、b/三.定制Grub引导程序插入一X软盘,然后将其格式化,然后加载到/mnt/floppy#mke2fs/dev/fd0#mount-text2/dev/fd0/mnt/floppy-oloop在其中创建/boot/grub目录#mkdir-p/mnt/floppy/boot/grub将系统中/boot/grub下的device.map,stage1,stage2复制到/mnt/floppy/boot/grub中,然后在/mnt/floppy/boot/grub目录下创建grub.conf文件:default=013/13优
6、选timeout=10titleFloppyLinuxkernel(fd0)/bzImageroot=/dev/ram0initrd(fd0)/initrd.gz然后创建一个#ln-sgrub.confmenu.lst执行/sbin/grub--batch--device-map=/dev/null<7、的例子一定要选上initrd支持。比如如果做为系统修复盘的话,必要的支持包括:13/13优选IDE,PCI,和需要的文件系统类型等等就可以了,而没有必要网络支持,当然,如果做为路由器或者防火墙的话,网络支持是必要的,而其他的这可相应的删除掉。#make[xconfig8、menuconfig9、config]#makebzImage如果添加了模块的支持,还需要#makemodules之后就得到了内核镜像bzImage。如果bzImage的大小超出了软盘的限制,就需要重新再来配置一下。将编译好的bzImage放到bootldr盘的10、根目录下,如果把bzImage改了名字,要注意与grub.conf中的名字一致。五.制定initrd 在initrd/local目录下建立bin,dev,etc,lib,proc,sysroot,usr目录。其中dev目录下包括必要的设备文件,比如tty,ram,console等等,bi
7、的例子一定要选上initrd支持。比如如果做为系统修复盘的话,必要的支持包括:13/13优选IDE,PCI,和需要的文件系统类型等等就可以了,而没有必要网络支持,当然,如果做为路由器或者防火墙的话,网络支持是必要的,而其他的这可相应的删除掉。#make[xconfig
8、menuconfig
9、config]#makebzImage如果添加了模块的支持,还需要#makemodules之后就得到了内核镜像bzImage。如果bzImage的大小超出了软盘的限制,就需要重新再来配置一下。将编译好的bzImage放到bootldr盘的
10、根目录下,如果把bzImage改了名字,要注意与grub.conf中的名字一致。五.制定initrd 在initrd/local目录下建立bin,dev,etc,lib,proc,sysroot,usr目录。其中dev目录下包括必要的设备文件,比如tty,ram,console等等,bi
此文档下载收益归作者所有