Linux挂载U盘操作和错误解决

Centos7.x挂载U盘

一、挂载方法

1.查看U盘信息:

执行命令fdisk -l

 

2.挂载到/mnt下的任意目录

mkdir /mnt/usb_disk

mount -t ntfs-3g /dev/sdb4 /mnt/usb_disk

 

3.cd /mnt/usb_disk,即可操作U盘。

 

二、问题解决

问题1:Linux挂载U盘时,报错mount: unknown filesystem type 'ntfs' 错误

方法:安装 ntfs-3g 来解决

1.下载ntfs-3g安装包,下载到Linux系统任意一个目录下/tmp下

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

2.解压后,进入目录,编译安装

#cd ntfs-3g_ntfsprogs-2017.3.23

编译过程可能会出现:configure: error: no acceptable C compiler found in $PATH,请看问题二解决方法。

#./configure

# make

# make install

 

问题2:configure: error: no acceptable C compiler found in $PATH 问题解决

方法: 安装GCC软件套件

# yum install gcc

 

问题3挂载NTFS磁盘时出现input/output error

NTFS is either inconsistent, or there is a hardware fault, or it‘s a

SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows

then reboot into Windows twice. The usage of the /f parameter is very

important! If the device is a SoftRAID/FakeRAID then first activate

it and mount a different device under the /dev/mapper/ directory, (e.g.

/dev/mapper/nvidia_eahaabcc1).

方法: 

# ntfsfix /dev/sdb1

至此可以正常访问U盘:

 

Linux环境下使用Qt开发应用,如果需要实现实时挂载U盘并读取文件,可以按照以下步骤操作: 1. **环境准备**: - 确保已经安装了Qt Creator(集成开发环境,包含Qt库)以及支持的Qt版本(如Qt 5.x或更高)。 - 安装必要的Linux库,比如`libudev`用于检测USB设备,`boost`可能用于处理文件系统操作。 2. **添加权限**: - 对于应用程序,可能需要运行时以root权限来访问USB设备。可以考虑使用`QProcess`来执行命令行操作,或者使用`PolicyKit`等工具来管理权限请求。 3. **使用QFile及QIODevice**: - `QFile`类可以用于打开、读取和写入文件,包括从挂载U盘上。通过`QFileSystemEntry`可以获取指定路径的信息,确认是否是U盘设备。 ```cpp QFile file("/media/<your_device_name>/<file_path>"); if (file.exists() && file.open(QIODevice::ReadOnly)) { QByteArray data = file.readAll(); // 这里可以解析和操作数据 } ``` 4. **检测并挂载U盘**: - 使用`QStandardPaths`和`QLibraryInfo`来获取系统的临时目录,然后监听`udev`事件来检查新插入的U盘。 - 可以使用`udisksctl`或者`libusbx`等库来监控和控制USB设备动态挂载。 ```cpp QStandardPaths::tempPath().append("/mounted_disk"); QDir dir(tempPath()); dir.entryList().forEach([this](const QString &entry) { if (isUsbDrive(entry)) { // 自定义函数判断是否为U盘 mountDevice(entry); } }); ``` 5. **事件处理器**: - 使用`QThread`或者信号槽机制(`QObject::connect`)来处理`udev`事件,并在主线程以外的地方进行文件操作,防止UI阻塞。 6. **异常处理**: - 对可能出现的错误,比如权限不足、找不到设备等,要有适当的错误处理和提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值