Linux arm 支持 ntfs 文件系统

简介: Linux arm 支持 ntfs 文件系统

1.下载 ntfs-3g 开源代码

2.交叉编译

如果没有其他地方需要用到这个动态库,可以考虑禁止编译动态库,只生成动态库,这样生成的课执行文件可以直接在arm板运行,不用设置动态链接

–disable-shared:禁止生成动态库

–enable-static:使能静态库

tar zxf ntfs-3g_ntfsprogs-2017.3.23.tgz  
cd ntfs-3g_ntfsprogs-2017.3.23/
./configure CC=arm-hisiv300-linux-gcc --prefix=$PWD/result --exec-prefix=$PWD/result --host=arm-hisiv300-linux --disable-shared --enable-static
make

make 执行完成后,在src目录下有生成一个 ntfs-3g 的可执行文件,大小1.5M,strip之后365k。

2018122814580746.pngntfs-3g 复制到arm板,可以直接执行,如果配置时没有加 --disable-shared,会需要指定动态库路径才可以运行。

2018122814580746.png

2018122814580746.png

到这一步,得到了可执行文件且可以正常在目标arm板运行,不需要再 make install,我这里的编译环境,执行 make install 一直无法完全执行成功,下面记录一下错误信息

3.安装

make install
...
make[3]: Entering directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs'
/usr/bin/install -c -d /sbin
ln -s -f /home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result/sbin/mkntfs /sbin/mkfs.ntfs
ln: cannot remove ‘/sbin/mkfs.ntfs’: Permission denied
make[3]: *** [install-exec-hook] Error 1
make[3]: Leaving directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs'
make[2]: *** [install-exec-am] Error 2
make[2]: Leaving directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/ntfsprogs'
make: *** [install-recursive] Error 1

make install 时会报错,主要是 Makefile 里面的 DESTDIR 没给定义,configure也没有给出怎样定义。

于是,在make install 时指定了 DESTDIR,仍然会报错,但在 result/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result 目录下基本生成了需要的文件。

原因有可能是执行configure没配置好,也有可能是这个configure没考虑到不安装在当前系统的情况,这里不再深究了。得到交叉编译后的可执行文件就可以了。

注意一点,别使用 root 用户或者 sudo 去执行 make install,这样可能会覆盖掉pc里的某些库或者执行文件。

make install DESTDIR=$PWD/result
...
/bin/mkdir -p "/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result/sbin"
ln -s -f "/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result/bin/ntfs-3g" "/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result/sbin/mount.ntfs-3g"
ln -s -f "/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result/bin/lowntfs-3g" "/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/result/sbin/mount.lowntfs-3g"
make  install-exec-hook
make[3]: Entering directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/src'
/sbin/ldconfig
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
make[3]: *** [install-exec-hook] Error 1
make[3]: Leaving directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/src'
make[2]: *** [install-exec-am] Error 2
make[2]: Leaving directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/src'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/samba/00_ntfs-3g/ntfs-3g_ntfsprogs-2017.3.23/src'
make: *** [install-recursive] Error 1

4.其他下载路径

NTFS-3G Safe Read/Write NTFS Driver

使用这个的话,里面没有 configure 文件,需要先执行 autogen.sh,没有auto环境则需要先安装

sudo apt install autoconf automake libtool -y
sudo apt install libgcrypt-dev -y
./autogen.sh
目录
相关文章
|
7天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
40 15
|
5月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
1035 3
|
12天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
87 7
|
12天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
29 7
|
1月前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
2月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
91 8
|
2月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
57 7
|
3月前
|
Ubuntu Linux Windows
linux 挂载硬盘报错 "mount: unknown filesystem type 'ntfs'"
【10月更文挑战第7天】在Linux系统中挂载硬盘时遇到“mount: unknown filesystem type 'ntfs'”错误,是因为Linux默认可能不支持NTFS文件系统。本文提供了解决方案:安装NTFS-3G软件包以支持NTFS,并检查内核是否已加载NTFS模块。对于Ubuntu/Debian系统,可使用`sudo apt-get install ntfs-3g`命令;对于CentOS/RHEL系统,则需先安装EPEL仓库再安装NTFS-3G。此外,还需确认硬盘设备名正确无误,并创建合适的挂载点目录。
837 2
|
5月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
57 12
|
4月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。