e2fsprogs制作嵌入式 mkfs.ext2 mkfs.ext3 mkfs.ext4
2014-03-07 17:39
691 查看
参考网友的方法
下载源码包 e2fsprogs:
http://sourceforge.net/projects/e2fsprogs/
cd /arm-tools
tar xzvf e2fsprogs.tar.gz
cd e2fsprogs
mkdir release
cd release
vi configure-arm
#! /bin/sh
CC=arm-linux-gcc ../configure --enable-elf-shlibs --host=arm --prefix=/arm-tools/e2fsprogs/release/
chmod 777 configure-arm
./configure-arm
make
make install
如果成功,在 release 目录会生成 bin,sbin,lib.
复制 bin 目录的所有程序到开发板的 /usr/bin 目录,复制 sbin 目录的所有程序到开发板的 /usr/sbin 目录,复制 lib 目录的所有动态库文件到开发板的 /usr/lib 目录.
完成.
虽然说是如果成功,但是往往很多时候是会出现错误的,我在编译过程中就出现了这个错误error: static declaration of 'fallocate64' follows non-static declaration
我的GCC是arm-linux-gcc 4.4.1版本,经过几番折腾,把misc目录下e4defrag.c这个文件的251行的函数修改为非静态的就可以了,即修改成如下所示:
int fallocate64(int fd, int mode, loff_t offset, loff_t len)
{
return syscall(__NR_fallocate, fd, mode, offset, len);
}
另外要注意配置时的arm-linux-gcc目录以及--prefix这个参数的路径。我的配置如下:
CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc ../configure --enable-elf-shlibs
--host=arm-linux --prefix=/mydisk/workdisk/e2fsprogs/arm-tools/e2fsprogs-1.42.9/release
编译完成把bin、lib、sbin目录下所有的文件拷贝到制作的根文件系统即可。拷贝是加上-d选项。拷贝命令举例:
cp *so* /nfsboot/my_system/system/usr/lib/ -d(首先进入release/lib目录)
其他两个目录完整拷贝即可。
在运行命令前要使用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib这个命令,加载动态库路径到环境变量,也可以设置在etc/profile文件中。
一些工具的说明:
e2fsprogs包含以下独立的程式:
e2fsck, ext2/3/4文件系统的fsck程序,用于检查文件系统的完整性。
mke2fs, 用于创建ext2/3/4档案系统。
resize2fs, 调整已建立的ext2/3/4档案系统的大小。
tune2fs, 修改ext2/3/4档案系统的相关参数。
dumpe2fs, 显示ext2/3/4档案系统的相关资讯。
debugfs, 用于调试ext2/3/4文件系统,可以查看与更改文件系统的状态。
e2fsprogs工具集同时也包含函数库libext2fs。
下载源码包 e2fsprogs:
http://sourceforge.net/projects/e2fsprogs/
cd /arm-tools
tar xzvf e2fsprogs.tar.gz
cd e2fsprogs
mkdir release
cd release
vi configure-arm
#! /bin/sh
CC=arm-linux-gcc ../configure --enable-elf-shlibs --host=arm --prefix=/arm-tools/e2fsprogs/release/
chmod 777 configure-arm
./configure-arm
make
make install
如果成功,在 release 目录会生成 bin,sbin,lib.
复制 bin 目录的所有程序到开发板的 /usr/bin 目录,复制 sbin 目录的所有程序到开发板的 /usr/sbin 目录,复制 lib 目录的所有动态库文件到开发板的 /usr/lib 目录.
完成.
虽然说是如果成功,但是往往很多时候是会出现错误的,我在编译过程中就出现了这个错误error: static declaration of 'fallocate64' follows non-static declaration
我的GCC是arm-linux-gcc 4.4.1版本,经过几番折腾,把misc目录下e4defrag.c这个文件的251行的函数修改为非静态的就可以了,即修改成如下所示:
int fallocate64(int fd, int mode, loff_t offset, loff_t len)
{
return syscall(__NR_fallocate, fd, mode, offset, len);
}
另外要注意配置时的arm-linux-gcc目录以及--prefix这个参数的路径。我的配置如下:
CC=/usr/local/arm/arm-2009q3/bin/arm-linux-gcc ../configure --enable-elf-shlibs
--host=arm-linux --prefix=/mydisk/workdisk/e2fsprogs/arm-tools/e2fsprogs-1.42.9/release
编译完成把bin、lib、sbin目录下所有的文件拷贝到制作的根文件系统即可。拷贝是加上-d选项。拷贝命令举例:
cp *so* /nfsboot/my_system/system/usr/lib/ -d(首先进入release/lib目录)
其他两个目录完整拷贝即可。
在运行命令前要使用export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib这个命令,加载动态库路径到环境变量,也可以设置在etc/profile文件中。
一些工具的说明:
e2fsprogs包含以下独立的程式:
e2fsck, ext2/3/4文件系统的fsck程序,用于检查文件系统的完整性。
mke2fs, 用于创建ext2/3/4档案系统。
resize2fs, 调整已建立的ext2/3/4档案系统的大小。
tune2fs, 修改ext2/3/4档案系统的相关参数。
dumpe2fs, 显示ext2/3/4档案系统的相关资讯。
debugfs, 用于调试ext2/3/4文件系统,可以查看与更改文件系统的状态。
e2fsprogs工具集同时也包含函数库libext2fs。
相关文章推荐
- 制作嵌入式文件系统工具 mkfs.ext2 mkfs.ext3 mkfs.ext4 2010-07-09 22:53:43| 分类: ARM-Linux |举报 |字号 订阅
- 制作嵌入式文件系统 mkfs.ext2 mkfs.ext3 mkfs.ext4
- Linux mkfs, mke2fs Command Examples (Create ext2, ext3, ext4 Filesystem)
- Linux mkfs, mke2fs Command Examples (Create ext2, ext3, ext4 Filesystem)
- ext2、ext3与ext4的区别
- ext2与ext3与ext4的区别
- EXT2、 EXT3 和 EXT4 文件系统健康状况检查工具
- Linux文件系统Ext2,Ext3,Ext4性能大比拼
- Ext2 v.s. Ext3 v.s. Ext4 性能对比
- ext2、ext3、ext4文件系统区别
- Ext2、Ext3和Ext4之间的区别
- Linux ext2, ext3, ext4 文件系统解读[2]
- linux用extundelete恢复ext2、ext3、ext4下rm -rf误删除的数据
- EXT2/EXT3/EXT4文件系统数据恢复工具开发计划
- linux系统下EXT2/EXT3/EXT4文件系统的数据恢复
- Linux下Ext2/Ext3/Ext4数据恢复难点技术总结
- Linux ext2, ext3, ext4 文件系统解读[1]
- Linux 文件系统ext2, ext3, ext4
- Linux中管理EXT2、EXT3和EXT4健康状况的4个工具
- Ext2 v.s. Ext3 v.s. Ext4 性能比拼