> 文章列表 > 奇怪的BUG:U盘插入打印机后文件目录为空,可读可写,写入内容无法在电脑端查看

奇怪的BUG:U盘插入打印机后文件目录为空,可读可写,写入内容无法在电脑端查看

奇怪的BUG:U盘插入打印机后文件目录为空,可读可写,写入内容无法在电脑端查看

问题描述

现象描述:从打印机扫描到U盘时,发现U盘目录为空(实际有在U盘中保存文件),扫描生成文件后,U盘插入电脑,文件目录正常显示,但找不到扫描件。再次将U盘插入打印机,可读取到前期扫描的文件并进行打印,打印内容和扫描内容完全一样。

现象总结:疑似打印机在访问U盘时使用了新的空间,与在电脑端识别到的空间不同。

软硬件环境:

  • 打印机:KONICA MINOLTA bizhub C3350i (支持从U盘打印、扫描到U盘)
  • U盘:Kingston DataTraveler 2.0 (7.25 GiB,比较老的一款,正常读写没问题,无故障历史)

排查过程:

  • 测试发现Windows电脑、MAC电脑和Linux电脑中,插入U盘均进入正常存储空间。
  • 测试发现插入U盘后打印机对新空间可读可写,由于打印机操作系统限制无法查看到U盘的属性,包括文件空间大小等信息。
  • 前期为了能在打印机上使用,专门将U盘格式化为FAT格式(打印机只能识别FAT格式,其他格式插入后不显示),其他FAT格式在打印机上测试未发现相同问题。

 

问题解决 

故障原因:采用分区编辑器(其他磁盘工具,例如分区助手、diskgenius也可以)查看U盘,发现被分为两个区,均为FAT格式,按存储单元顺序存在的第一分区,标识为EFI+BIOS,空间为200MB,在电脑设备中会被默认视为存放引导文件的空间,不可见,第二分区为可见的数据区,标识为msfdata,空间为7G左右。打印机默认读取了第一分区,并在其中进行读写操作,并且只能挂载一个分区,忽略了第二分区。

因为U盘前期用于做了启动盘,后期使用后直接格式化了,导致第一分区为空,格式化时未注意到这一点,从而看起来像打印机使用了全新的分区空间。

故障截图:

 我的电脑里的磁盘只有第二个分区可以被读取,第一个分区默认是不可见的。

 分区顺序应该是按照sda1->2->3->...的顺序来的。

解决方法:(后两个方法会丢弃原来扫描到不可见分区的文件)

  • 方法一:将第二分区分出来一部分空间,创建第三分区,将第一分区的内容拷贝进第三分区。执行后重新插入U盘,此时电脑将分配两个盘符,并在存储中显示两个磁盘,可以在第二个磁盘中找到想要的文件。
  • 方法二:删除第一分区和第二分区(需提前将数据拷出备份),重新分区U盘,将U盘分为一个分区,并重新使用打印机扫描。
  • 有问题待进一步解决的方法:将第一分区删除后,将第二分区扩容至全部空间,然后重新扫描。(此方法会产生新问题:U盘插入打印机后无法被识别,即使分区为FAT格式也无法识别,但在电脑端均可以正常读写,疑似分区路径未修改,仍然为/dev/sda2造成的【之前删掉的第一分区为/dev/sda1】)

删除第一分区后,分区号不变,仍然为sda2:

 即使将分区sda2的空间起始点移动到最起始的位置,也仍然无法在打印机上识别,刷新后分区仍然为/dev/sda2:

据此猜测,打印机只支持读取首个分区,即/dev/sda2

最终将U盘整成以下这个样子就可以正常在打印机和电脑之间使用了(方法2):

  

学习资料

EFI系统分区(英语:EFI system partition,简写为ESP),是一个FAT格式的磁盘分割,但是其分区标识是EF (十六进制) 而非常规的0E或0C,因此,该分区在Windows操作系统下一般是不可见的。UEFI固件可从ESP加载EFI启动程式或者EFI应用程式。

EFI分区通常大小约为100-200MB,用于系统启动,引导硬件设备加载操作系统。

efi是如何引导系统启动的?

EFI分区简单来说相当于一块固定在存储空间开头位置的区域,安装系统时会将程序的入口文件放在这个位置,硬件(主板)将从这个入口文件开始加载启动,并由此进入系统。(有点类似于点击微信的exe文件启动后,微信才会正常打开,硬件固定到这个区域去找这样的启动文件,操作系统厂商只需要把引导文件放在这里即可)。由于之前用U盘重装系统,需要从U盘启动微PE,首个分区被设置为EFI,并被隐藏,以保证不受破坏或不被格式化(这个引导文件很重要)。

EFI分区内通常包含哪些内容?

Boot是计算机默认引导文件所在的目录,Microsoft是微软Windows系统引导所在的目录。
Boot目录:

Microsoft目录:

Microsoft\\Boot目录:

上图中红框内的bootmgfw.efi就是windows默认的系统引导文件。

更多资料:

EFI系统引导的一些零碎知识点:https://www.bbsmax.com/A/KE5QK81ZzL/
更高级的UEFI引导过程:https://blog.csdn.net/qq_42584874/article/details/123702759