解决sd 只读问题 fsck.auto not found

本文讲述了在嵌入式设备上遇到fsck工具无法使用的问题,通过查找发现FAT/VFAT来自dosfstools包,需进行cross-compile。作者详细指导了如何从GitHub下载dosfstools源码,配置编译并安装的过程,包括`autogen.sh`和`sudo make install`步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们的是嵌入式设备,一开始想借助busybox的 fsck工具去修复 busybox版本V1.34.1和 V1.31版本都不行 一直显示fsck.auto 未找到

在这里插入图片描述

一开始感觉是busybox缺少fsck包的问题,把两个版本的都重新编译了一遍, 编译的时候menuconfig一直不成功,只能用deconfig,编译完搜索了下,确实有fsck的包,但是问题依旧。
后来又去google查到
https://support.xilinx.com/s/question/0D52E00006hpXdt/fsck-fsckauto-no-such-file-or-directory?language=en_US
FAT/VFAT 来自 dosfstools 包…出于某种原因,它似乎不在 Petalinux 中(也许我错过了它,或者它的名称不同)
因为sd卡格式为fat32 所以只能去交叉编译dosfstools
dosfstools 的代码在github上可以找到 网址为https://github.com/dosfstools/dosfstools/
通过git clone 下载下来的代码 需要执行
./autogen.sh
才会出现 ./configure 后续操作 就是按照git页面的帮助操作就可以了 如果是用的有交叉编译链 可以参考我的操作
./configure CC="$CC" host=arm

make CC="$CC" host=arm
sudo make install 这块需要sudo权限,
install后的文件在 src目录 需要哪个 复制到开发板即可

### 关于 `fsck.fvat` 未找到的错误分析 在 Linux 系统中,`fsck` 是一个用于检查和修复文件系统错误的工具。然而,用户提到的 `fsck.fvat` 并不存在于标准的 Linux 文件系统工具集中[^1]。可能的情况是拼写错误或者是对文件系统类型的理解有误。通常,`fsck` 工具会根据文件系统类型(如 ext4、xfs、ntfs 等)调用相应的子工具进行操作。 如果确实需要修复文件系统,可以尝试以下方法: 1. **确认文件系统类型** 使用 `lsblk -f` 或 `blkid` 命令来查看设备的文件系统类型。例如: ```bash lsblk -f ``` 或者 ```bash blkid /dev/sdX ``` 2. **使用正确的 fsck 工具** 根据文件系统类型选择合适的 `fsck` 子工具。例如,对于 ext4 文件系统,可以运行: ```bash sudo fsck.ext4 /dev/sdX ``` 3. **检查环境变量或路径问题** 如果系统提示 `fsck.fvat` 未找到,可能是由于环境变量配置错误或路径缺失导致的。可以通过以下命令检查 `fsck` 的安装位置: ```bash which fsck ``` 或者 ```bash whereis fsck ``` 4. **重新安装相关工具** 如果确认 `fsck` 工具缺失,可以尝试重新安装文件系统工具包。例如,在基于 Debian 的系统上,可以运行: ```bash sudo apt-get install --reinstall e2fsprogs ``` 5. **排查拼写错误** 如果 `fvat` 是用户自定义的文件系统类型,需确保相关工具已正确安装并配置到系统中。否则,请检查是否存在拼写错误。 ### 示例代码 以下是一个简单的脚本,用于检查并尝试修复指定设备的文件系统: ```bash #!/bin/bash DEVICE="/dev/sdX" # 替换为实际设备名称 FILESYSTEM_TYPE=$(lsblk -f | grep "$DEVICE" | awk '{print $2}') if [ -z "$FILESYSTEM_TYPE" ]; then echo "无法识别设备 $DEVICE 的文件系统类型" exit 1 fi echo "检测到文件系统类型: $FILESYSTEM_TYPE" # 构造 fsck 命令 FSCK_CMD="sudo fsck.$FILESYSTEM_TYPE $DEVICE" echo "正在执行: $FSCK_CMD" $FSCK_CMD ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值