之前用盗版 win7 的时候 u 盘大概是中病毒了,这个盘里全是游戏,记得好像在拷贝游戏到 u 盘的时候出了啥问题,然后就显示这个 u 盘有写保护了,而且里面的游戏拿出来发现都损坏了无法打开,这种情况该如何解决?
请贴原始错误信息,不要自己总结。
这些信息行不,我这个是金士顿 u 盘:
首先确定 u 盘被分配在 sdc 了
- ~ $ lsblk
sdc 8:32 1 115.5G 1 disk
└─sdc1 8:33 1 115.5G 1 part
尝试挂载:
-
~ $ udisksctl mount -b /dev/sdc1
Object /org/freedesktop/UDisks2/block_devices/sdc1 is not a mountable filesystem. -
~ $ sudo mount /dev/sdc1
mount: /dev/sdc1: can’t find in /etc/fstab.
这两个命令都挂载不了,第一个命令说该文件系统不支持挂载
检查文件系统类型:
- ~ $ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 115.47 GiB, 123983626752 bytes, 242155521 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x047b3ae0
Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 64 242155519 242155456 115.5G c W95 FAT32 (LBA)
显示为 FAT32 所以不能挂载的原因不明
#fsck 无法使用,显示只读
- ~ $ sudo fsck /dev/sdc1
fsck from util-linux 2.37.4
fsck.fat 4.1 (2017-01-24)
open: 只读文件系统
尝试用这个命令让系统检测到 u 盘的存在 (首先拔掉 u 盘运行命令后再插上):
- ~ $ sudo tail -f /var/log/messages
截取最后几行大概跟 u 盘有关的:
2024-02-17T00:54:23.432020+08:00 localhost kernel: [ 2697.825127][T27055] scsi 6:0:0:0: Direct-Access Kingston DataTraveler 3.0 0000 PQ: 0 ANSI: 6
2024-02-17T00:54:23.432042+08:00 localhost kernel: [ 2697.825342][T27055] sd 6:0:0:0: Attached scsi generic sg3 type 0
2024-02-17T00:54:23.432043+08:00 localhost kernel: [ 2697.825526][T18909] sd 6:0:0:0: [sdc] Media removed, stopped polling
2024-02-17T00:54:23.432044+08:00 localhost kernel: [ 2697.825669][T18909] sd 6:0:0:0: [sdc] Attached SCSI removable disk
2024-02-17T00:54:23.436024+08:00 localhost kernel: [ 2697.828228][ T2675] sd 6:0:0:0: [sdc] 242155521 512-byte logical blocks: (124 GB/115 GiB)
2024-02-17T00:54:23.436030+08:00 localhost kernel: [ 2697.828354][ T2675] sd 6:0:0:0: [sdc] Write Protect is on
2024-02-17T00:54:23.436031+08:00 localhost kernel: [ 2697.828356][ T2675] sd 6:0:0:0: [sdc] Mode Sense: 23 00 80 00
2024-02-17T00:54:23.436033+08:00 localhost kernel: [ 2697.828528][ T2675] sdc: detected capacity change from 0 to 242155521
2024-02-17T00:54:23.440017+08:00 localhost kernel: [ 2697.830337][ T2675] sdc: sdc1
2024-02-17T00:54:23.589848+08:00 localhost dbus-daemon[835]: [system] Activating service name=‘org.kde.kded.smart’ requested by ‘:1.36’ (uid=1000 pid=1816 comm="/usr/bin/kded5 ") (using servicehelper)
2024-02-17T00:54:23.611956+08:00 localhost dbus-daemon[835]: [system] Successfully activated service ‘org.kde.kded.smart’
^C
还是挂载不上
-
~ $ udisksctl mount -b /dev/sdc1
Error looking up object for device /dev/sdc1 -
~ $ sudo mount /dev/sdc1
mount: /dev/sdc1: can’t find in /etc/fstab.
再用一次 fdisk,发现盘没了
- ~ $ sudo fdisk -l /dev/sdc
fdisk: cannot open /dev/sdc: 找不到介质
不知为何再用一次 lsblk 发现盘还在但是少了一个分区:
- ~ $ lsblk -l
sdb 8:16 0 465.8G 0 disk
sdb1 8:17 0 465.8G 0 part
sdc 8:32 1 0B 0 disk
sr0 11:0 1 1024M 0 rom
拔掉重新插上后再用 lsblk:
- ~ $ NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 83.5G 0 disk
├─sda1 8:1 0 256M 0 part
├─sda2 8:2 0 10G 0 part
├─sda3 8:3 0 8M 0 part
├─sda4 8:4 0 2G 0 part [SWAP]
└─sda5 8:5 0 71.3G 0 part /opt
/home
/var
/boot/grub2/i386-pc
/root
/tmp
/srv
/boot/grub2/x86_64-efi
/usr/local
/.snapshots
/
sdb 8:16 0 465.8G 0 disk
└─sdb1 8:17 0 465.8G 0 part
sdc 8:32 1 115.5G 1 disk
└─sdc1 8:33 1 115.5G 1 part
sr0 11:0 1 1024M 0 rom
#u 盘的分区又有了
补充下,刚才用了下 bakblocks 命令,使用命令两秒后发现 u 盘又可以挂载了,但还是只读
说数据损坏是里面的东西有很多不见了,因为太久远我也不记的是啥原因了,当时是在中了一堆病毒的盗版 win7 上用的,估计写保护和丢数据都和病毒有关系吧。
mount 的这个报错应该是说你需要指定挂载点吧
看起来是盘不行了。只读可能也是主控觉得自己快挂了所以设置上的。
那有没有什么方法可以解除写保护,我还有个因为操作不当 (linux 上检测不到了,捣鼓半天又去 windows 上格式化,结果写保护) 导致写保护的 sd 卡,这个大概没有硬件问题,但是碍于写保护,目前处于报废状态。
如果是 U 盘主控开启了写保护的话,应该是没有办法的?估计可能是闪存芯片寿命快到头了,用 CrystalDiskInfo 这样的软件看看?