AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 792816
Accepted
User051209
User051209
Asked: 2025-03-22 01:11:01 +0800 CST2025-03-22 01:11:01 +0800 CST 2025-03-22 01:11:01 +0800 CST

在 yocto 发行版中,我无法安装使用 exfat 文件系统格式化的 USB 密钥

  • 772

在我的 yocto 发行版中,我无法使用exfat文件系统安装 USB 密钥。

如果我执行以下命令:

> blkid /dev/sda         
/dev/sda: LABEL="my-label" UUID="FC4D-5949" BLOCK_SIZE="512" TYPE="exfat"

因此我确定 USB 文件系统是exfat,但是当我尝试执行mount命令时出现以下错误:

> mount /dev/sda /media
mount: /media: unknown filesystem type 'exfat'.

如果我执行该命令cat /proc/filesystems(这里我找到了该cat命令),则支持的文件系统列表为:

> cat /proc/filesystems 
nodev   sysfs
nodev   tmpfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cgroup2
nodev   cpuset
nodev   devtmpfs
nodev   debugfs
nodev   tracefs
nodev   securityfs
nodev   sockfs
nodev   bpf
nodev   pipefs
nodev   ramfs
nodev   hugetlbfs
nodev   rpc_pipefs
nodev   devpts
        ext3
        ext2
        ext4
        vfat
        msdos
        iso9660
nodev   nfs
nodev   nfs4
nodev   cifs
nodev   smb3
nodev   autofs
nodev   overlay
nodev   efivarfs
nodev   mqueue
        btrfs

exfat丢失。

有人可以解释一下如何exfat在我的 yocto 发行版中安装 USB 吗?

mount
  • 2 2 个回答
  • 38 Views

2 个回答

  • Voted
  1. Best Answer
    Marcus Müller
    2025-03-22T19:10:29+08:002025-03-22T19:10:29+08:00

    您的内核(yocto 构建的一部分)缺少 exfat 文件系统支持。

    您需要在内核构建中启用 exfat 文件系统,您需要的 Kconfig 变量是CONFIG_EXFAT_FS。

    • 1
  2. User051209
    2025-03-25T01:03:26+08:002025-03-25T01:03:26+08:00

    正如我接受的答案中所写,要安装由exfat文件系统格式化的 USB,必须exfat在内核构建中启用文件系统;在接受的答案中写道,实现此目标所需的 Kconfig 变量是CONFIG_EXFAT_FS。这里我写下了我修改内核配置所执行的步骤。这篇文章不是可重复的过程,而只是我解决问题所遵循的轨迹。由于与我的构建系统密切相关,因此遗漏了一些细节。

    内核配置

    Yocto 项目的内核配方通过调用以下命令提供功能make menuconfig:

    > bitbake -c menuconfig <kernel-recipe>
    

    例如在我的系统上我使用过:

    > bitbake -c menuconfig virtual/kernel
    

    上一个命令启动图形菜单编辑器,允许改变变量的值CONFIG_EXFAT_FS。

    在菜单编辑器中,设置CONFIG_EXFAT_FS=m和其他变量。更改内核配置后,我保存了新配置并关闭了菜单编辑器;此新配置保存在文件中.config。这里我无法详细说明文件的路径在哪里,.config因为这是一个太宽泛的主题。

    获取fragment.cfg文件

    此时我执行了以下命令:

    > bitbake virtual/kernel -c diffconfig
    

    fragment.cfg使用以下设置创建文件:

    CONFIG_EXFAT_FS=m
    CONFIG_EXFAT_DONT_MOUNT_VFAT=y
    CONFIG_EXFAT_DISCARD=y
    # CONFIG_EXFAT_DELAYED_SYNC is not set
    # CONFIG_EXFAT_KERNEL_DEBUG is not set
    # CONFIG_EXFAT_DEBUG_MSG is not set
    CONFIG_EXFAT_DEFAULT_CODEPAGE=437
    CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
    

    在任务结束时,diffconfig构建系统会传达文件的路径fragment.cfg。

    我已将该文件重命名fragment.cfg为enable-extfat-filesystem.cfg。

    .bbappend文件修改

    在我过去的构建系统中,我创建了一个名为linux-intel_%.bbappendfile 的文件,用于将配置设置和补丁应用于内核,因此我通过添加以下行对其进行了修改:

    ...
    # enable filesystem exfat in the kernel config
    SRC_URI_append = " file://enable-extfat-filesystem.cfg"
    

    注意:在此步骤中,我无法更具体,因为文件名和路径取决于所使用的构建系统。这里仅添加我已将文件复制enable-extfat-filesystem.cfg到以下显示的路径中:

    recipes-kernel
      |-linux
          |-linux-intel
          |   |-enable-extfat-filesystem.cfg
          |   |-...
          |-linux-intel_%.bbappend
    

    内核编译

    现在必须通过以下命令编译内核:

    > bitbake -C compile virtual/kernel
    

    编译结束时内核可以exfat在需要的时候加载模块,通过该模块exfat可以正确挂载USB。

    在我的系统上,构建具有先前内核配置更改的映像后,插入exfatUSB 时可以执行以下挂载而不会出现错误:

    > mount /dev/sda /media
    

    /dev/sdaUSB 设备和/media挂载点在哪里。

    • 1

相关问题

  • 使用 LVM 永久挂载目录

  • 阻止损坏的 NFS 挂载锁定 solaris 11.3 中的目录?

  • 如何在 solaris 11.3 中挂载 zfs 驱动器分区

  • 阻止挂载系统调用

  • 将局域网硬盘挂载到 linux fedora

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve