web-dev-qa-db-ja.com

破損したSDカードは読み取り専用でマウントされていません

破損したマイクロ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

また、提案された両方のバリアントを試し、同じ出力を得ました。カードをマウントできない(複数のファイルシステムを試した)か、読み取り専用の条件を削除できないので、どうすればよいかわかりません。何か案は?

2
vlizana

AndroidデバイスでSDカードを使用すると、データが暗号化されます(少なくともAndroidのかなり新しいバージョンでは)。これがファイルシステムをマウントできない理由です。

次の手順を実行することで、SDカードの「通常の」(つまりFAT32)使用を回復できます。

  • その上でfdiskを使用して新しいDOSパーティションテーブルを作成し(コマンド 'o')、次にプライマリパーティションを作成してすべてのスペースをそれに割り当てます。タイプをFAT32に変更します(コマンド 't'およびタイプ 'b')。パーティションをアクティブにします(コマンド 'a')。これを保存します。
  • 新しく作成したパーティションにmkfs.vfat /dev/sdb1を使用して新しいファイルシステムを作成します(デバイス名を再確認してください!)。

これで、SDカードを再び正常に使用できます。もちろん、その上で別のファイルシステムを自由に使用できます。 Linuxでのみ使用する場合はext4。

1
wurtel