私のSDカードにパーティションがありますが、Linuxはそのパーティションのデバイスエントリを作成しません。

私のSDカードにパーティションがありますが、Linuxはそのパーティションのデバイスエントリを作成しません。

まあ、ここで何が起こっているのかわかりません。最初はvfatパーティションが完全に削除されなかったことを示す一部のフラグが設定されていてマウントできなかった問題だと思いました。この問題を解決する方法があったことを覚えていますが、今は見つかりません。とにかく、私はこれがここでは問題ではないと思います。運がないので数日間検索してきました。

これは私のカメラの1つに使用するSDHCカード(32GB)です(同じUSBアダプタを使用する別のカメラ用の32GBカードが1つあり、Linuxではうまく機能します)。問題なくカメラからインポートできます。 Linuxでアダプタ+カードを接続すると、Konquerorにデバイスが表示されません。だから私はこれを試しました:

# mount /dev/sdd /d/try/2
mount: you must specify the filesystem type
# mount -t vfat /dev/sdd /media/sdcard
mount: wrong fs type, bad option, bad superblock on /dev/sdd,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

fdisk説明する

fdisk -l /dev/sdd

Disk /dev/sdd: 31.9 GB, 31914983424 bytes
255 heads, 63 sectors/track, 3880 cylinders, total 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
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            8192    62333951    31162880    c  W95 FAT32 (LBA)

しかし、

# ls /dev/sdd*
/dev/sdd

したがって、/dev/sddXデバイスがfdisk存在しても、リストには表示されません! gparted/dev/sdd1パーティションは問題なく表示されます(ただし、以前は4MBの空き容量がありました)。だから私はここで何か他のことが起こっていると思う。この空き容量が問題の原因である可能性はありますか?なぜこれが起こるのですか? 4MBをすべて使用するようにパーティションのサイズを変更すると(どのようにこれが起こりましたか?)、これらの問題をすべて解決できますか?これにより、カメラからデータを読み取ることができなくなりますか?それとも悪いことは、回復不能なほど破損しているのでしょうか?私は以前、Linux内でこのカードにアクセスできることを確信しています。なぜなら、いくつかのファイルを移動したようだからです(他のカメラのいくつかの写真が含まれています)。だから変に今は接続できませんね。

基本的に、この問題を解決する方法(可能な限り非破壊的)と問題の原因が何であるか(今後これを防ぐために)知りたいです。参考までにdmesg出力を含めました。

# dmesg|tail -30
[3783978.490032] usb 1-5: new high-speed USB device number 44 using ehci_hcd
[3783978.608523] usb 1-5: New USB device found, idVendor=05e3, idProduct=0727
[3783978.608528] usb 1-5: New USB device strings: Mfr=3, Product=4, SerialNumber=2
[3783978.608530] usb 1-5: Product: USB Storage
[3783978.608531] usb 1-5: Manufacturer: Generic
[3783978.608533] usb 1-5: SerialNumber: 000000000207
[3783978.609406] scsi29 : usb-storage 1-5:1.0
[3783979.610445] scsi 29:0:0:0: Direct-Access     Generic  STORAGE DEVICE   0207 PQ: 0 ANSI: 0
[3783979.613096] sd 29:0:0:0: Attached scsi generic sg3 type 0
[3783979.773160] sd 29:0:0:0: [sdd] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
[3783979.774295] sd 29:0:0:0: [sdd] Write Protect is off
[3783979.774300] sd 29:0:0:0: [sdd] Mode Sense: 0b 00 00 08
[3783979.775406] sd 29:0:0:0: [sdd] No Caching mode page present
[3783979.775410] sd 29:0:0:0: [sdd] Assuming drive cache: write through
[3783979.779038] sd 29:0:0:0: [sdd] No Caching mode page present
[3783979.779048] sd 29:0:0:0: [sdd] Assuming drive cache: write through
[3783981.471143] sd 29:0:0:0: [sdd] Unhandled sense code
[3783981.471147] sd 29:0:0:0: [sdd]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[3783981.471150] sd 29:0:0:0: [sdd]  Sense Key : Medium Error [current] 
[3783981.471153] sd 29:0:0:0: [sdd]  Add. Sense: Data phase CRC error detected
[3783981.471157] sd 29:0:0:0: [sdd] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
[3783981.471162] end_request: I/O error, dev sdd, sector 0
[3783981.471166] Buffer I/O error on device sdd, logical block 0
[3783981.482542] Dev sdd: unable to read RDB block 0
[3783981.482548]  sdd: unable to read partition table
[3783981.486264] sd 29:0:0:0: [sdd] No Caching mode page present
[3783981.486267] sd 29:0:0:0: [sdd] Assuming drive cache: write through
[3783981.486269] sd 29:0:0:0: [sdd] Attached SCSI removable disk

ベストアンサー1

いくつかの進歩があります(適切な最終ソリューションを見つけたら、この回答を編集します)。 @INDIVIDUAL-ITのコマンドを使用してデバイスのフルバックアップを実行した後dd(bs = 1Mを使用すると、転送速度が非常に遅くなります)。バックアップファイルをインストールできませんが、

# dd if=backup.img of=backup-skip.img bs=1M skip=4

インストール可能なファイルを作成します(バックアップをスキップする.img)、私が知っている限り、すべてのファイルがそこにあり、アクセスできます。 (更新:この削除された画像をSDカードに書き換えると、Linuxは自動的にそれを検出してマウントしますが、カメラでは機能しません。)

再ロードgpartedし、パーティションの前にある4MBの空き領域を削除しようとしましたが、不可能であり、パーティションがすべてのスペースを使用することを許可しておらず、少なくとも1MBは削除できませんでした(すべてのオプションを試しました)調整、しかしサイコロはありません)。

好奇心が強いlbasdd1パーティションの選択を解除しました。この変更を確認するためのプロンプトが表示されず、デバイスに変更を適用するためにどこかをクリックしませんでしたが、アダプタのLEDが点滅しているのを見て、突然私のSDカードエントリがKonquerorに表示されました。 USBデバイスをマウント解除してプラグを抜いて再接続しましたが、SDカードが自動的に検出されず、ステップ1に戻りました。これで、デバイスで有効になっていないとgparted表示されます。lba奇妙な。

パーティションが検出されました!

奇妙なギャップ効果のため、霧が記憶から少し消えて、以下を実行しました。

# partprobe

突然/dev/sdd1が作成され、デバイスがKonquerorに表示されます。したがって、まだ最終的な解決策ではありませんが(毎回rootとしてpartprobeを実行する必要があるため)、少なくとも私のファイルにアクセスできます。永久的な解決策を見つけるとき、これが誰かに役立つことを願っています。

おすすめ記事