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分区格式,具体步骤自行百度;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值