windows U盘不能识别

windows U盘不能识别

1、问题描述

windwos u盘不能识别

u盘被拿到mac电脑上做了启动盘之后,就不能被windows识别了。题主很奇怪里面被mac电脑的同学放了什么,因此想到把优盘挂载到Linux上一探究竟。

2、问题分析解决

题主使用的linux系统是centos 7.6。

把优盘插接入到lnux系统上,如图

使用 fdisk -l 命令查看优盘设备 是/dev/sdb

bash 复制代码
fdisk -l 

挂载优盘

建立挂载点

bash 复制代码
mkdir /ugreen

挂载优盘

bash 复制代码
mount /dev/sdb /ugreen

提示 mount: /dev/sdb is write-protected, mounting read-only

就是说这个优盘是只读的 不能写入

使用mount命令的 remount选项 再次挂载优盘 挂载选项指定为可读可写

bash 复制代码
mount -o remount,rw /dev/sdb /ugreen

这个命令查看mount的man手册即可得到

bash 复制代码
man mount

remount 报错

mount: cannot remount /dev/sdb read-write, is write-protected

至此联想到之前刚挂载好优盘后 使用df -lTh 命令查看过 优盘的文件系统类型 显示为lSO9660 这是光盘文件系统 而lSO9660这个光盘文件系统 设计上本来就是不能被二次写入的

参考链接: https://superuser.com/questions/1235833/how-to-make-a-usb-stick-with-iso9660-filesystem-writeable-again

至此想要以读写方式挂载优盘,并复制其中的数据变得不可能了。为了能在windows系统上识别到这个优盘,可以在Linux上把这个优盘格式化成NTFS格式。

下面进行格式化这个优盘 格式化成ntfs需要使用mkfs.ntfs 这个命令,题主使用的是centos 7.6,没有这个命令。

通过一下命令安装mkfs.ntfs 这个命令.

安装ntfsprogs 和 ntfs-3g

bash 复制代码
yum install ntfsprogs
yum install ntfs-3g

如果提示找不到ntfsprogs和ntfs-3g安装包,则执行下面命令后,再继续安装上面两个包。

bash 复制代码
yum -y install epel-release

再次安装ntfsprogs 和 ntfs-3g

bash 复制代码
yum install ntfsprogs
yum install ntfs-3g

然后就有mkfs.ntfs 这个命令了

执行格式化命令 格式化之前 请确认 U盘没有挂载到系统上

bash 复制代码
mkfs.ntfs /dev/sdb

报错 /dev/sdb is entire device, not just one partition.

Refusing to make a filesystem here!

由于这块优盘没有分区,因此不能格式化。需要先使用fdisk命令在优盘上创建分区 再格式化这个分区即可。

参考链接: https://unix.stackexchange.com/questions/476597/cant-format-usb-storage-at-dev-sdb

接下来先试用fdisk命令在优盘上创建分区

bash 复制代码
[root@localhost /]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xf7cbdf46.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1953525167, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1953525167, default 1953525167): 
Using default value 1953525167
Partition 1 of type Linux and of size 931.5 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost /]# 
[root@localhost /]# fdisk -l

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a17f6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800   209715199   102451200   83  Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xf7cbdf46

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  1953525167   976761560   83  Linux

因为整个优盘/dev/sdb 上只有/dev/sdb1 这1个分区,执行格式化命令 格式化/dev/sdb1 即可。格式化/dev/sdb1 就是/dev/sdb。

执行格式化命令

bash 复制代码
mkfs.ntfs -f /dev/sdb1

至此格式化优盘成功,可以插到windwos电脑上试试能不能识别了。

注意:mkfs.ntfs -f /dev/sdb1 需要加上 -f 参数 不加 -f 的话 格式化会很慢很慢...

-f 是快速格式化的意思

格式化后挂载优盘查看文件系统

bash 复制代码
mount /dev/sdb1 /ugreen

然后 卸载掉 U盘

bash 复制代码
umount /dev/sdb1

3、把U盘插到windows电脑上试试能不能识别

把优盘插入windows笔记本 右下角托盘能识别到优盘了 但是文件管理器不显示优盘

至此windows已经可以是被优盘了 只是因为某种原因导致不能在文件管理器显示优盘。

win + x 打开磁盘管理器 可以看到优盘

右键优盘 点击 删除卷

点 是

然后优盘 显示未分配

然后 右键优盘 新建简单卷

然后格式化后 显示状态良好(主分区)

然后就可以在windows 文件管理器中看到这个优盘了

至此通过linux处理后,成功在windows下识别到了这个被险些玩坏的优盘。

相关推荐
hairenjing11238 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
九鼎科技-Leo10 小时前
了解 .NET 运行时与 .NET 框架:基础概念与相互关系
windows·c#·.net
九鼎科技-Leo12 小时前
什么是 ASP.NET Core?与 ASP.NET MVC 有什么区别?
windows·后端·c#·asp.net·mvc·.net
黎明晓月16 小时前
Java之字符串分割转换List
java·windows·list
九鼎科技-Leo16 小时前
在 C# 中,ICollection 和 IList 接口有什么区别?
windows·c#·.net
顾辰呀17 小时前
实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新
前端·windows
Bunny Chen20 小时前
如何缩小PPT演示文稿的大小?
windows·microsoft·powerpoint
如光照20 小时前
Linux与Windows中的流量抓取工具:wireshark与tcpdump
linux·windows·测试工具·网络安全
wwc_boke21 小时前
Linux查看端口占用及Windows查看端口占用
linux·运维·windows
WangMing_X1 天前
C# 一个工具类让winform自动根据窗体大小缩放所有控件
开发语言·windows·c#