以前はRaspberryPiにあった(そして動作を停止した)マイクロSDカードを再フォーマットしようとしています。しかし、メインコンピューター(Arch)に接続してパーティションを作成しようとすると、gpartedがパーティションテーブルがないと言っているため、パーティションを作成できません。パーティションテーブル(GPT)を追加して修正しようとすると、以下のエラーが発生します。 uSDカードを修正するにはどうすればよいですか?
それが助けになるなら、プラグインしたときのdmesgの出力も含めました。他のOSにアクセスできないので、Windowsで何かを試すことはできません。
カードにパーティションテーブルを配置しようとしたときのgpartedの出力:
/dev/mmcblk0: unrecognised disk label
Input/output error during write on /dev/mmcblk0
Error fsyncing/closing /dev/mmcblk0: Input/output error
カードが接続されているときのdmesg出力:
[99702.919024] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedure, falling back to fixed sampling clock
[99702.919048] mmc0: new ultra high speed SDR104 SDHC card at address 59b4
[99702.920575] mmcblk0: mmc0:59b4 00000 7.35 GiB
[99702.930961] mmc0: Controller never released inhibit bit(s).
[99712.952421] mmc0: Timeout waiting for hardware interrupt.
[99712.952498] mmcblk0: error -110 sending status command, retrying
[99712.954084] mmcblk0: unknown error -5 sending read/write command, card status 0x900
[99714.412427] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedure, falling back to fixed sampling clock
[99714.412447] mmc0: tried to reset card
[99714.422507] mmc0: Controller never released inhibit bit(s).
[99724.445769] mmc0: Timeout waiting for hardware interrupt.
[99724.445834] mmcblk0: error -110 sending status command, retrying
[99724.448129] mmcblk0: unknown error -5 sending read/write command, card status 0x900
[99724.448136] blk_update_request: I/O error, dev mmcblk0, sector 0
[99724.448140] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[99724.448668] ldm_validate_partition_table(): Disk read failed.
[99724.448673] mmcblk0: unable to read partition table
Linux Kernel 4.4-rc4以降には既知のバグがあります(現在も存続しています)。このバグと考えられる回避策については、 kernel.org で読むことができます。
これは基本的に故障して、オプションの機能クエリを無効にします。これにより、カードリーダーハードウェアが効果的にハングします。
rmmod sdhci sdhci_pci sdhci_acpi
modprobe sdhci debug_quirks2="0x10000"
modprobe sdhci_pci
を使用してsdhci_pciモジュールを再度ロードしますSDカードで再試行してください。ただし、初期化には数秒かかる場合があります(クエリはまだタイムアウトしているためですが、現在は無視しています)。
これで問題が解決する場合は、永続的な回避策を続行してください
これはまだ回避策であり、将来失敗する可能性があることに注意してください。バグが修正されているかどうかを確認するには、将来のカーネルバージョンで回避策を無効にする必要があります。
echo 'options sdhci debug_quirks2="0x10000"' > /etc/modprobe.d/Dell_sdhci.conf
オプションは、将来の起動時にロードされます。そうでない場合は、非常に汚いが可能性のある解決策として、一時的な修正を起動スクリプトにハックしようとすることがあります。