linux的cramfs,squashfs,jffs2根文件系统镜像的制作与测试

Cramfs文件系统的制作:

一,准备工作,安装工具包
1,安装cramfsprogs工具包
apt-get install cramfsprogs
2,查看安装cramfsprogs得到的命令,mkcramfs,cramfsck
dpkg -L cramfsprogs

二,准备工作,Busybox编译
Busybox 编译 与 kernel 的编译方法类似,需要先 make defconfig 再 make,之后 make install 会 默认把安装文件生成在 busybox/_install 目录下。
make isvp_glibc_defconfig make ;
make install
 注各配置说明:
 isvp_glibc_defconfig  --glibc 默认 config
 isvp_glibc_mini_defconfig  --glibc 默认裁剪config
 isvp_uclibc_defconfig  --uclibc 默认 config
 isvp_uclibc_mini_defconfig  --uclibc 默认裁剪 config 

得到_install下的简单跟文件系统目录文件

 

三,制作根文件系统
 mkcramfs -v  _install   /root/my_drivers_test/rootfs.cramfs

_install:源文件夹
rootfs.cramfs:制作输出的squashfs文件


四,提取制作好的根文件系统里的内容
cramfsck -x cramfs-ext /root/my_drivers_test/rootfs.cramfs

cramfs-ext:将制作好的根文件系统rootfs.cramfs里的内容提到cramfs-ext里

五,pc虚拟机上测试所制作好的根文件镜像rootfs.cramfs
losetup -f //查看未使用设备
losetup -a  //查看被使用设备

losetup  /dev/loop0  rootfs.cramfs //将文件系统绑定到设备loop0上

mkdir mnt //创建一个挂载点

mount  /dev/loop0  mnt  //将设备挂载到mnt

cd /mnt     //进入挂载目录,即可看到根文件系统的内容

losetup -d /dev/loop0   //将文件系统从设备loop0上解绑

umount /dev/loop0  //卸载挂载,释放loop0


squashfs文件系统的制作:

一,安装工具包
apt-get install squashfs-tools
查看安装包的信息
aptitude show squashfs-tools
查看包包含的命令
dpkg -L squashfs-tools | grep bin
mksquashfs //制作命令
unsquashfs //解压命令

二,制作squashfs文件系统镜像

mksquashfs  _install /root/my_drivers_test/rootfs.squashfs  -no-exports -no-xattrs -all-root

_install:源文件夹
rootfs.squashfs:制作输出的squashfs文件

三,提取制作好的根文件系统里的内容
unsquashfs  -d  root-squashfs /root/my_drivers_test/rootfs.squashfs
rootfs.squashfs:将制作好的根文件系统rootfs.cramfs里的内容提到root-squashfs里

四,本地模拟使用,同上cramfs方法。


jffs2文件系统的制作:

一,安装工具包
apt-get install mtd-utils
查看工具包信息
aptitude show mtd-utils
查看工具包包含的命令
dpkg -L mtd-utils | grep bin
查看mkfs.jffs2工具语法
mkfs.jff2

mkfs.jffs2 [options]

主要选项:

-p, --pad [=SIZE]   //使用0xff填充文件系统到指定大小,不指定则只填充完最后- -个擦除块

-r, -d, -- root=DIR //使用指定的目录内容构建文件系统(default: cwd)I

-s,--pagesize-sIZE  //使用指定的页大小(最大数据节点大小) (default: 4KiB)

-e, --eraseblock=SIZE  //指定擦除块的大小(default: 64KiB)

-c, --cleanmarker=SIZE  //擦除标记的大小(default 12)

-m,--compr- -mode=MODE  //选择压缩模式(default: priortiry)

-x, --disable-compressor=COMPRESSOR_ NAME  //禁用 指定的压缩算法

-X, --enable-compressor=COMPRESSOR_ NAME  //启用指定的压缩算法

-y, --compressor -priority-PRIORITY : COMPRESSOR_ NAME  //设置压缩算法的优先级

-I, --list-compressors //列出可用的压缩算法

-t, --test-compression  //测试压缩算法

-n,--no-cleanmarkers  //.不添加擦除标记到擦除块

-o,--output=FILE  //指定文件系统镜像名称(default:stdout)

-1, --little-endian  //创建--个小端的文件系统

-b, --big-endian  //创建- -个大端的文件系统

-q,-- squash  //压缩权限和设置所有文件的拥有者为root

-U, -- squash-uids  //设置所有文件的拥有者为root

-B,--squash-perms  //压缩所有文件的权限


二,制作jffs2文件系统镜像
文件系统内容在 _install/下
 mkfs.jffs2 --pad=0x800000 -d _install/ -s 4096 -e 0x10000 -o /root/my_drivers_test/rootfs_jffs2.jffs2  //制作命令

三,测试,不能本地测试。要把jffs2镜像烧写到板子上flash测试。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值