uboot下识别FAT32格式的U盘报错:## Valid DOS partition found ##

Posted 正在起飞的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot下识别FAT32格式的U盘报错:## Valid DOS partition found ##相关的知识,希望对你有一定的参考价值。

1、出错的现象

(1)U盘被格式成FAT32文件系统,在Windows和Linux系统中都可以正常识别并挂载,在uboot下可以正常识别但是不能挂载;
(2)在uboot下使用usb命令可以探测到U盘,但是用fatls、fatinfo等命令去挂载U盘时会失败,识别不了U盘上的FAT32文件系统;

2、报错打印

# usb device
Install USB Device...
# 
# usb start
starting USB...
USB0:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 0 for devices... 2 USB Device(s) found
USB1:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
# 
# usb tree
USB device tree:
  1  Hub (5 Gb/s, 0mA)
  |  U-Boot XHCI Host Controller 
  |
  +-2  Mass Storage (480 Mb/s, 100mA)
       Kingston DataTraveler 2.0 60A44CB2B14C1380F7B105A1 # 插入的U盘
     
  3  Hub (5 Gb/s, 0mA)
     U-Boot XHCI Host Controller 
   
# 
# fatinfo usb 0
##  Valid DOS partition found ##

** Unable to use usb 0:1 for fatinfo **
# 
# fatls usb 0
[fs_set_blk_dev] ifname=usb, dev_part_str=0, fstype=1
##  Valid DOS partition found ##
** Unrecognized filesystem type **

(1)从uboot的启动打印可以看出,识别到了U盘,但是识别不到U盘的分区表;
(2)结论:U盘识别是没有问题的,出错的是查找U盘的分区表,也就是识别不了FAT32文件系统;

3、报错的原因

(1)磁盘分区格式分为MBR和GPT,具体两种分区格式的区别这里不做介绍;
(2)虽然我们将U盘格式化成FAT文件系统格式,但是并没有去修改U盘的分区格式是MBR还是GPT;
(3)上面的报错原因:U盘是GPT格式分区,但是uboot没有使能GPT分区表的支持,只支持MBR分区格式;

4、解决办法

4.1、uboot使能GPT分区表的支持

(1)打开CONFIG_EFI_PARTITION,如果通过menuconfig的方式,在menuconfig–>Partition Types–>Enable EFI GPT partition table。
(2)打开该选项后,默认会新增CONFIG_EFI_PARTITION_ENTRIES_NUMBERS和CONFIG_EFI_PARTITION_ENTRIES_OFF配置项,保持默认值即可。

4.2、修改U盘的分区格式为MBR

在linux系统中,使用parted命令重新格式化U盘,将U盘改成MBR分区格式,具体步骤自行百度;

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转

以上是关于uboot下识别FAT32格式的U盘报错:## Valid DOS partition found ##的主要内容,如果未能解决你的问题,请参考以下文章

Linux挂载U盘报错:mount: unknown filesystem type 'ntfs'

记录一次fat32格式U盘不识别问题

uboot下实现U盘自动升级程序的思路分析(基于USB系统eMMC系统FAT32文件系统)

U-Boot 不能识别FAT32 SD分区

软碟通刻录u盘报错空间太小

解决win10蓝屏 - 注册表丢失或者损坏 - 无法打开C:WindowsSystem32config文件夹 - ghost备份C盘报错chkdsk的问题