我在尝试恢复损坏的 micro-SD 卡(不是数据,只是卡)时遇到问题。我认为它被格式化为 Android 手机内部存储的一部分,当时这是一个选项。
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat 8F38-5495 /boot/efi
├─sda2 ext4 1d8431cf-f298-40af-be5d-413510537953 /boot
└─sda3 LVM2_mem mjbdHc-7AHE-LwUO-IlCo-chqH-EVhA-BVN0i4
├─fedora-root ext4 d38fec65-d7d1-40e2-9d16-dcbc0dcd6330 /
├─fedora-swap swap 6d365505-5e51-4bd5-8a93-bcd56ed1945d [SWAP]
└─fedora-home ext4 3f42f95e-85ce-44a6-9abf-474bf5ae3ab6 /home
sdb
├─sdb1
└─sdb2
-
# fdisk -l /dev/sdb
Disk /dev/sdb: 29.7 GiB, 31914983424 bytes, 62333952 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
Disklabel type: gpt
Disk identifier: 69704183-D789-43CC-A52A-6B69A888EA09
Device Start End Sectors Size Type
/dev/sdb1 2048 34815 32768 16M unknown
/dev/sdb2 34816 62333918 62299103 29.7G unknown
我尝试过fdisk /dev/sdb
,它产生:
fdisk: cannot open /dev/sdb: Read-only file system
我检查了适配器并没有锁定。我试过了mount --options remount,rw /dev/sdb
,它说:
mount: /dev/sdb: mount point not mounted or bad option.
没有重新安装选项:
mount: /dev/sdb: can't find in /etc/fstab.
所以显然它没有安装但仍然是只读的?无论如何mount /dev/sdb1 /mnt/
都不会产生断言错误消息:
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
我从互联网上阅读资料得到的另一个输出:
# e2fsck -f -n /dev/sdb
e2fsck 1.44.3 (10-July-2018)
e2fsck: Bad magic number in super-block while trying to open /dev/sdb
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
Found a gpt partition table in /dev/sdb
还尝试了建议的两种变体并得到了相同的输出。我不知道如何继续,因为我无法安装卡(尝试了几个文件系统),甚至无法删除只读条件。有任何想法吗?
答案1
在 Android 设备中使用 SD 卡意味着数据会被加密(至少在最新版本的 Android 上)。这就是无法挂载文件系统的原因。
您可以通过执行以下操作来恢复 SD 卡的“正常”(即 FAT32)使用:
- 使用 fdisk 并创建一个新的 DOS 分区表(命令“o”),然后创建一个主分区并为其分配所有空间;将类型更改为 FAT32(命令“t”并键入“b”)。使分区处于活动状态(命令“a”)。保存这个。
- 在新创建的分区上创建一个新的文件系统
mkfs.vfat /dev/sdb1
(仔细检查设备名称!)。
现在SD卡又可以正常使用了。当然,如果您只想在 Linux 上使用它,您可以自由地在其上使用其他文件系统,例如 ext4。