奇怪的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

这篇关于奇怪的BUG:U盘插入打印机后文件目录为空,可读可写,写入内容无法在电脑端查看的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/Ximerr/article/details/130017012
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/275999

相关文章

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

宝塔安装的MySQL无法连接的情况及解决方案

《宝塔安装的MySQL无法连接的情况及解决方案》宝塔面板是一款流行的服务器管理工具,其中集成的MySQL数据库有时会出现连接问题,本文详细介绍两种最常见的MySQL连接错误:“1130-Hostisn... 目录一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

Python的pip在命令行无法使用问题的解决方法

《Python的pip在命令行无法使用问题的解决方法》PIP是通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载、更新等功能,安装诸如Pygame、Pymysql等Pyt... 目录前言一. pip是什么?二. 为什么无法使用?1. 当我们在命令行输入指令并回车时,一般主要是出现以

查看MySQL数据库版本的四种方法

《查看MySQL数据库版本的四种方法》查看MySQL数据库的版本信息可以通过多种方法实现,包括使用命令行工具、SQL查询语句和图形化管理工具等,以下是详细的步骤和示例代码,需要的朋友可以参考下... 目录方法一:使用命令行工具1. 使用 mysql 命令示例:方法二:使用 mysqladmin 命令示例:方

全解析CSS Grid 的 auto-fill 和 auto-fit 内容自适应

《全解析CSSGrid的auto-fill和auto-fit内容自适应》:本文主要介绍了全解析CSSGrid的auto-fill和auto-fit内容自适应的相关资料,详细内容请阅读本文,希望能对你有所帮助... css  Grid 的 auto-fill 和 auto-fit/* 父元素 */.gri