搞个大飞机 2023-10-11 18:50 采纳率: 0%
浏览 4

如何在单板上支持ntfs格式u盘自动挂载?

1.使用udev满足自动挂载
2.编译ntfs-3g支持ntfs格式文件读写,现在卡在第二步
fuse和ntfs交叉编译都没法直接make install,现在ntfs工具可以用--disable-shared --enable-static 编译出来没有库文件影响,编译出来的ntfs放到单板上运行缺少fuse,fuse放到depmod需要编译成ko文件,现在是fuse编译出可在单板上为ntfs提供源的fuse.ko文件?
似乎fuse需要在编linux的时候编入到内核,这样在板子启动后就有fuse?这样就可以使用--disable-shared --enable-static编译出来的ntfs-3g?

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-11 19:06
    关注

    引自强大而免费的微信小程序:皆我百晓生。


    确实,为了支持ntfs格式的自动挂载,需要以下步骤:

    1. 编译ntfs-3g

      • 首先,交叉编译fuse库,生成fuse.ko文件,并将其安装到单板上。确保fuse.ko文件位于正确的位置,例如/lib/modules/kernel_version/kernel/fs/fuse/fuse.ko。
      • 接下来,交叉编译ntfs-3g源码,使用--disable-shared --enable-static选项。确保ntfs-3g可执行文件在单板上静态链接了所需的库。
      • 将交叉编译后的ntfs-3g可执行文件复制到单板上。
    2. 配置udev以自动挂载

      • 在udev规则中添加一个规则,以便在插入ntfs格式的U盘时,自动执行挂载操作。在/etc/udev/rules.d/目录中创建一个新的规则文件,例如99-automount.rules。

      • 编辑新创建的规则文件,添加一个类似于以下内容的规则:

        ACTION=="add", \
        SUBSYSTEMS=="usb", \
        KERNEL=="sd[a-z][0-9]*", \
        ATTRS{serial}=="your_U_disk_serial_number", \
        IMPORT{program}="/bin/mount_ntfs.sh %k"
        

        这个规则将监听U盘插入事件并调用/mount_ntfs.sh脚本进行挂载操作。请将"your_U_disk_serial_number"替换为U盘的实际序列号。

      • 创建一个脚本文件/mount_ntfs.sh,用于挂载U盘。该脚本应包含以下内容:

        #!/bin/bash
        DEVNAME=$1
        MOUNTPOINT="/mnt/ntfs"
        
        mkdir -p $MOUNTPOINT
        ntfs-3g -o rw,uid=1000,gid=1000 $DEVNAME $MOUNTPOINT
        

        请确保脚本具有可执行权限。

    3. 重新启动udev服务

      • 在完成以上步骤后,重新启动udev服务以使规则生效。

    通过执行以上步骤,当插入ntfs格式的U盘时,udev将自动调用/mount_ntfs.sh脚本挂载U盘,并使用ntfs-3g工具进行读写操作。请确保根据您的需求进行相应的调整和配置。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月11日
  • 修改了问题 10月11日
  • 创建了问题 10月11日

悬赏问题

  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错