欢迎来到天天文库
浏览记录
ID:25238245
大小:53.00 KB
页数:4页
时间:2018-11-18
《一种实现嵌入式linux的新方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一种实现嵌入式Linux的新方法摘要在Linux中会遇到由于文件系统损坏,需要人工修复而导致系统无法正常启动的现象。本文采用Linux初始化内存盘(INITRD)技术,并把内存的一部分作为Linux的根目录,每次启动把完整的文件系统解压到这里,避免了系统从损坏的文件系统启动。这不仅使系统能正常启动,而且提高了系统性能。择对文件系统proc的支持,那么在系统运行之后它下面有许多内容,这些内容是实时、不断跟踪系统内核和正在运行的进程的状态而产生的,但不占用任何磁盘空间,而是驻留在内存中。在某些情况下,可以通过它来系统设置,许多工具从这里获取信息,如dmesg、ps、top等。文件系统制作完成
2、,大小应该在20M左右。接下来把文件系统拷贝至ramdisk为生成ramdisk映像文件做准备。我们把系统的ramdisk改变到30M,重启计算机后,执行下列操作:ddif=/dev/zeroof=/dev/rambs=1kcount=30000把ramdisk调整到零,以便后面有更高的压缩率;mke2fs–m0/dev/ram30000在ramdisk上建立30M的ext2文件系统;mount/dev/ram/mnt/ram将已格式化的ramdisk挂载至目录/mnt/ram;cp–av/minlinux/*/mnt/ram将文件结构拷贝至ramdisk。然后我们对/mnt/ram/e
3、tc目录下的文件进行修改。主要的文件是fstab,它负责在系统启动时把系统要挂载的文件系统信息传递给启动进程,我们使用ramdisk作为根文件系统,且不需要交换分区,所以此文件配置/dev/ram/ext2defaults11none/procprocdefaults00即可。一般来说系统启动时都要激活交换分区,即在启动脚本中有sdisk的映像并将其压缩。主要步骤如下:运行df,注意1024-blocks一栏中/dev/ram的数值,在我的机上为25600;卸载/dev/ram,运行cd/root切换至root目录并运行umount/dev/ram;将ramdisk写成映象文件,运行dd
4、if=/dev/ramof=ram30.imgbs=1kcount=25600压缩,并在/root目录下产生一个压缩的映象文件ram30.img.gz,运行gzip–9vram30.img3.2创建initrdramdisk映像首先我们在/dev/ram0中创建一个适合大小的ext2文件系统,方法同上,只是大小只有2048K,因为initrdramdisk是用来引导(bootstrap)30M的ramdisk,并将它挂载至/mnt/ram。然后在/dev/ram0中建立映像需要的目录和文件。创建目录bin、dev、etc、lib、mnt和可执行脚本文件linuxrc,linuxrc的内容
5、为:#!/bin/bashmount–o–ro/dev/hda1//mnt#以只读方式将flash盘挂载在/mnt下zcat/mnt/boot/ram30.img.gz>/dev/ram#将根文件系统映像解压至ramumount/dev/hda1#卸载flash盘bin下面为linuxrc中用到的命令;lib为这些命令需要的动态链接库;etc下为配置文件ld.so.conf,定义命令运行时寻找所需动态链接库的路径,运行命令ldconfig–r/mnt/ram产生文件ld.so.cach,在命令和动态链接库之间建立对应关系;dev下基本终端设备和linuxrc中用到的设备:conso
6、le、ram、null、systty、tty1、tty2和hda1;mnt为hda1的挂载点。最后创建压缩的initrdramdisk映像。运行df看看/dev/ram0的字节数,在我的计算机上1684K;转换当前目录至/root并卸载/dev/ram0umount/dev/ram0;拷贝/dev/ram0成映像文件ddif=/dev/ram0of=initrd.imgbs=1kcount=1684;产生压缩的映像文件initrd.img.gz,运行gzip-9vinitrd.img。3.3启动系统的启动需要依靠flash盘,通过LILO把系统启动信息写入flash盘主引导区。将flas
7、h盘作为第一主盘hda,而将装有普通Linux的硬盘作为第一从盘hdb并从它启动。在flash硬盘上创建ext2文件系统,将它挂载至/mnt/flash目录。在flash盘上建立boot目录,将压缩的文件系统和initrd映像拷贝至boot目录下,同时将Linux内核、引导区记录boot.b、引导区映射map拷贝至其下。在普通Linux系统中建立LILO配置文件ramlilo.conf,配置文件如下:boot=/dev/hdamap
此文档下载收益归作者所有