一、如何对已有的根文件系统进行修改
假设已有一个名为ramdisk.gz的文件系统压缩文件,可以通过以下步骤实现对该文件系统的修改:
1. 将文件系统的压缩文件解压成映像文件;
进入ramdisk.gz所在目录:
#cd …
解压ramdisk.gz:
#gunzip ramdisk.gz
2. 挂载解压后的映像文件来实现修改;
创建挂载目录:
#sudo mkdir /mnt/loop
将ramdisk.gz挂载:
#sudo mount –o loop ramdisk /mnt/loop
进入挂载目录:(这时可以根据需要增加、删减或是修改文件系统的内容)
#cd /mnt/loop
修改开发板启动文件(DevKit8500D):
#sudo gedit /mnt/loop/etc/init.d/rc
3. 卸装镜像文件;
进入ramdisk.gz所在目录:
#cd …
卸载目录
#sudo umount /mnt/loop
4. 将修改后的文件系统制作成压缩文件;
#gzip –v9 ramdisk
二、如何建立新的根文件系统
(方法一)
1. 建立loop设备的临时挂载点;
#mkdir /mnt/loop
2. 建立一个大小为15M的临时文件;
#dd if=/dev/zero of=/tmp/loop_tmpbs=1k count=15360
临时文件的大小可根据自己的需要对参数count进行调整即可;
3. 将设备文件与临时文件联系起来;
#losetup /dev/loop0 /tmp/loop_tmp
如果出现“ioctl:LOOP_SET_FD:设备或资源忙”,说明/dev/loop0设备还和一文件联系,可用losetup /dev/loop0查看地,并可用-d 删除;
4. 将/dev/loop0格式化为ext2文件系统;
#mke2fs –m 0 /dev/loop0
5. 把虚拟盘挂在节点/mnt/loop上;
#mount –t ext2 /dev/loop0/mnt/loop;
6. 用cp –af命令将所需要的文件拷贝到虚拟盘上;
7. 通过cd命令切换到除/mnt/loop目录以外的其他目录,然后卸载文件系统;
#cd /xx (xx表示除/mnt/loop以外的其他目录)
#umount /mnt/loop
得到的/tmp/loop_tmp就是文件系统映象
8. 压缩映象文件生成文件系统;
#gzip –v9 /tmp/loop_tmp>/tftpboot/ramdisk.gz
或#gzip –v9 /tmp/loop_tmp
(方法二)
1. 建立loop设备的临时挂载点;
#mkdir /mnt/loop
2. 建立一个大小为15M的临时文件;
#dd if=/dev/zero of=/tmp/loop_tmpbs=1k count=15360
3. 将loop_tmp格式化为ext2文件系统;
mke2fs –F –v –m 0 /tmp/loop_tmp
4. 挂载格式化后的临时文件;
#munt –o loop /tmp/loop_tmp/mnt/loop
5. 用cp –af命令将所需要的文件拷贝到临时文件中从而生成映像文件;
6. 卸载生成的映象文件;
#umount /mnt/loop
7. 压缩映象文件生成文件系统;
#gzip –v9 /tmp/loop_tmp
--------------------------分割线---------------------------------
此方法可以修改系统启动设置,设置启动项。
测试软硬件平台:
宿主机:Ubuntu 12.04LTS
目标版:Devkit8500D,Linux2.6.32