当前位置: 首页 > article >正文

I.MX6ULL 开发板上挂载NTFS格式 U 盘

I.MX6ULL 开发板上挂载NTFS格式 U 盘

  • 挂载失败
  • 安装NTFS-3G
    • 安装失败
    • 成功安装
  • 移植
  • 挂载成功
  • 卸载U盘

挂载失败

我使用的U盘的格式是NTFS格式

插入U盘时会有信息

在这里插入图片描述

我使用的是闪迪的U盘,大小标称是 32G ,实际能用的只有 28G 左右

在这里插入图片描述

可以使用lsblk命令查看磁盘设备,这个sda就是我的U盘,sda1是U盘的分区,也就是说只有一个分区

在这里插入图片描述

也可以在 /dev/ 目录下查看

在这里插入图片描述

首先在 /mnt/ 目录下创建一个usb文件夹,用于作为U盘的挂载点

在这里插入图片描述

挂载U盘

sudo mount /dev/sda1 /mnt/usb

挂载失败,显示 unknow filesystem type 'ntfs'

在这里插入图片描述

这是因为 Linux 系统默认不支持 NTFS 文件系统,需要安装额外的驱动程序来提供支持

NTFS(New Technology File System,新技术文件系统)是微软开发的用于Windows操作系统的文件系统。它在数据存储、管理和保护方面提供了比老旧文件系统(如FAT32)更多的功能

解决方法:
1.将U盘格式化为FAT32格式
2.安装 NTFS-3G 驱动

NTFS-3G 是一个开源的 NTFS 驱动程序,允许 Linux 系统读写 NTFS 格式的磁盘。

我选择第二种方法

安装NTFS-3G

下载源码

首先在Ubuntu的/linux/tool/目录下创建一个ntfs-3g文件夹,用于存放编译ntfs-3g时的安装目录

使用下面的命令获取压缩包,我下载的是2017.3.23版本的

wget -O ./ntfs-3g-2017.3.23.tgz https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz

在这里插入图片描述

下载完成查看一下

在这里插入图片描述

解压

tar -zxf ntfs-3g-2017.3.23.tgz

tar:是用于打包和解压文件的工具。
-z:表示解压时使用 gzip 压缩(.tgz 文件通常是用 gzip 压缩的)。
-x:表示解压(extract)。
-v:表示显示详细过程(verbose),列出解压的文件。
-f:后面接要解压的文件名。
我不需要显示详细过程,所以没加v

在这里插入图片描述

然后执行三部曲:配置、编译、安装

安装失败

安装失败的不要看,可以先看看我失败的原因,然后再结合安装成功这一节去安装

配置

首先进入到 nfst-3g 文件目录下

在这里插入图片描述

#设置交叉编译工具的环境
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
#对tslib源码工程进行配置
./configure --host=arm-poky-linux-gnueabi --prefix=/home/okay/linux/tool/ntfs-3g/

在这里插入图片描述

编译

make

在这里插入图片描述

安装

make install

在这里插入图片描述

它显示权限不够
那就使用 sudo make install再运行一次
提示 arm-poky-linux-gnueabi-ranlib 命令没有找到

在这里插入图片描述

尝试:切换到root,临时配置交叉工具链环境,再重新安装:

sudo su //切换超级管理权限
source /etc/profile //重新配置工具链环境
make install //安装

还是不行
在这里插入图片描述

而且查看 ntfs-3g 目录下的文件,就只有include和lib两个,不太正常

请添加图片描述

成功安装

我上面用的是poky的交叉编译器,我尝试换成用linaro的试一下

在这里插入图片描述
在这里插入图片描述

删除编译的文件

make clean

在这里插入图片描述

卸载你之前安装的 NTFS-3G

sudo make uninstall

在这里插入图片描述

可以看到确实什么都没有了,删干净了
把ntfs-3g文件夹下的include和lib文件夹删除,我怕后面有影响

在这里插入图片描述

重新配置工程

#对tslib源码工程进行配置
./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf --prefix=/home/okay/linux/tool/ntfs-3g/ --exec-prefix=/home/okay/linux/tool/ntfs-3g/
#--prefix=/home/okay/linux/tool/ntfs-3g/   
#指定二进制文件、库文件、配置文件的安装路径
#(必须要填写实际安装的绝对路径)
#--exec-prefix=/home/okay/linux/tool/ntfs-3g/ 
#指定可执行文件的安装路径
#(必须要填写实际安装的绝对路径)
#不加上这一个路径会导致安装的文件不完整,很重要!!!

在这里插入图片描述

编译

make

在这里插入图片描述

安装

make install

过程问题:install过程提示无权限,切换超级权限后又提示找不到编译器

在这里插入图片描述

解决方法:临时配置交叉工具链环境,再重新安装即可:

sudo su //切换超级管理权限
source /etc/profile //重新配置工具链环境
make install //安装

终于成功安装!

在这里插入图片描述

检查 ntfs-3g 目录里的文件是否完整
像这样应该是完整的

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

移植

将ntfs-g/bin目录下的文件全部拷贝到开发板的/usr/bin目录中
当然也可以根据自己的需要去拷贝

ntfs-3g:ntfs硬盘挂载工具
ntfs-3g.probe:用于自动检测和识别 NTFS 文件系统
ntfscat:用于显示 NTFS 文件的内容
ntfscluster:用于显示 NTFS 文件系统中的集群(clusters)
ntfscmp:用于比较两个 NTFS 文件系统或磁盘镜像的内容
ntfsfix:用于修复 NTFS 文件系统上的一些常见错误
ntfsinfo:用于显示 NTFS 文件系统的详细信息
ntfsls:用于列出 NTFS 文件系统中的文件和目录结构

scp ./*ntfs* root@192.168.1.100:/usr/bin

在这里插入图片描述

使用scp将ntfs依赖的动态库libntfs-3g.so.88.0.0拷到开发板 的/usr/lib/目录下

scp ./libntfs-3g.* root@192.168.1.100:/usr/lib

在这里插入图片描述

在开发板检查是否拷贝成功

在这里插入图片描述

在这里插入图片描述

在开发板创建软链接libntfs-3g.so.88 和 libntfs-3g.so
必须要有这一步,不然检查 ntfs-3g版本 会报错,如下图

在这里插入图片描述

ln -s libntfs-3g.so.88.0.0 libntfs-3g.so.88
ln -s libntfs-3g.so.88.0.0 libntfs-3g.so

在这里插入图片描述

再次检查ntfs-3g版本号就能成功打印版本号了,证明我们安装成功

在这里插入图片描述

挂载成功

再次尝试挂载U盘
但是不是用mount命令
而是用ntfs-3g命令

ntfs-3g /dev/sda1 /mnt/usb/

挂载成功!

在这里插入图片描述

卸载U盘

使用 umount 命令卸载U盘

sudo umount /mnt/usb

这里卸载的时候报错了,表示有进程正在使用 U 盘中的文件或目录
这是因为我在U盘的目录下卸载U盘,我现在就在U盘的目录下,所以卸载不了

在这里插入图片描述

回到用户目录下就卸载成功了,此时再拔出U盘,避免U盘数据损坏

在这里插入图片描述


http://www.kler.cn/a/613228.html

相关文章:

  • vue将页面导出成word
  • Python_电商erp自动拆分组合编码
  • 规范Unity工程目录和脚本结构能有效提升开发效率、降低维护成本
  • Maven中为什么有些依赖不用引入版本号
  • 【ManiSkill】环境success条件和reward函数学习笔记
  • YOLOv8 中的损失函数解析
  • 构建可扩展、可靠的网络抓取、监控和自动化应用程序的终极指南
  • 【天梯赛】L2-004 这是二叉搜索树吗(经典问题C++)
  • Go语言中regexp模块详细功能介绍与示例
  • 什么是架构,以及当前市面主流架构类型有哪些?
  • X.509证书与证书请求生成原理及其应用(C/C++代码实现)
  • STM32基础教程——旋转编码器测速
  • Mysql的单表查询和多表查询
  • 记录一次TDSQL事务太大拆过binlog阈值报错
  • Python+requests实现接口自动化测试框架
  • JavaWeb——事务管理、AOP
  • [HCIA]网络基础
  • 使用 WSL + Ubuntu + Go + GoLand(VSCode) 开发环境配置指南
  • 人工智能-群晖Docker部署DB-GPT
  • OSI 七层模型和四层模型(TCP/IP 模型)