Ubuntuで破損したメモリカードを復旧する方法|ステップバイステップ完全ガイド
メモリカードは、スマートフォンなどのモバイルデバイス、デジタルカメラ、PCの間でデータをやり取りするための非常に便利な媒体です。Google AndroidやApple iOSの端末で「メモリカードが破損しています。フォーマットしてください」といったエラーが表示されても、フォーマットを拒否していれば、データを復旧できる可能性はまだ残っています。
まずはカードを正しく取り外し(イジェクト)、物理的な状態を確認しましょう。フルサイズのSDカード・SDHCカード・SDXCカードの中には、ケース内で緩んで接触不良を起こしているものがあります。この場合は、優しく押し戻すことで改善することがあります。microSD/microSDHC/microSDXCカードはこの問題が起きにくいものの、端子(コンタクト)部分の汚れを清掃することで認識されるケースもあります。
カードをPCに接続する際は、しっかりと、しかし優しく挿入してください。カードを折り曲げないよう注意し、確実に正しく装着されていることを確認しましょう。些細なことに思えますが、Ubuntuのツールを使って破損したSD(Secure Digital)ファイルシステムからデータを復元する際には、この確認が大きな助けになります。
方法1:Ubuntu標準ツールでメモリカードを修復する
Dash(KDEならアプリケーションメニュー、XfceならWhiskerメニュー)から「ディスク(GNOME Disks)」ユーティリティを開き、使用中のフラッシュリーダーのデバイス名を探します。多くの場合「シングルフラッシュリーダー(Single Flash Reader)」と表示されます。ストレージグラフの下にマウント用の右向き矢印(▶)ボタンが表示されたら、クリックしてマウントを試みてください。マウントできれば、そのままファイルをコピーできる可能性があります。
カードがスロットに挿入されているのに「メディアなし(No Media)」と表示される場合は、一度カードを抜き差しして変化があるか確認してみてください。それでも改善しない場合は、歯車アイコンをクリックし、「ディスクイメージを作成(Create Disk Image)」を選択して、.imgファイルとして保存してみましょう。
イメージ作成が完了したら、カードを取り出し、同じ容量のまっさらなメモリカードを挿入して、歯車メニューからそのディスクイメージを新しいカードへ書き込みます。新しいファイルシステムがマウントできるかもしれません。ただし、書き込み先のカードにあったデータはすべて失われるため、必ず完全に空のカードであることを確認してから進めてください。
パーティションがアンマウント状態でもUbuntuがドライブを認識している場合は、整合性チェックを実行してファイルシステムの復旧を試みられます。FAT12・FAT16・FAT32でフォーマットされたカードであれば、コマンドラインから以下を実行します。
sudo fsck.msdos -r /dev/sdd1「sdd1」の部分は、ディスクユーティリティに表示された実際のパーティション名に置き換えてください。カードをext2/ext3/ext4などのLinux向けファイルシステムでフォーマットしていた場合は、代わりにfsck.ext# を試すこともできます(# には該当する番号が入ります)。
方法2:UbuntuとWindowsのデュアルブート環境で修復する
UbuntuとMicrosoft Windowsをデュアルブートしている環境であれば、Windowsのコマンドプロンプトでchkdskコマンドを使うという選択肢もあります。FATデバイスの復旧に関してはUbuntuの方が優れているとされますが、NTFSデバイスの復旧ではWindowsが役立つことがあります。
PCを再起動し、GRUB画面が表示されたらキーボード操作でWindowsを起動してください。Windowsキー+Eでエクスプローラーを開き、Windowsがメモリカードに割り当てたドライブレターを確認します。フォーマットを求められた場合は、絶対に実行しないでください。
スタートメニューからコマンドプロンプトを開き、次のように入力します(E: は実際のドライブレターに置き換えてください)。
chkdsk /f E:ここでエラーが返ってきた場合は、Windowsでもメモリカードを復旧できなかったということになります。
Windowsが使えない環境でも、Ubuntuには破損したNTFS形式のメモリカードを扱うための便利なプログラムが2つ用意されています。まずはntfsfixを試してみましょう。
sudo ntfsfix -d /dev/sdd1これはchkdskのLinux版ではありませんが、一部のNTFS不整合を修復できます。また、ディスクユーティリティでイメージ作成に失敗した場合でも、ntfscloneを使えばNTFSメモリカードのディスクイメージを作成できることがあります。
sudo ntfsclone -so dsk.img /dev/sdd1作成したイメージは、次のコマンドで空のメモリカードに復元できます。
sudo ntfsclone -r dsk.img /dev/sdd1いずれの場合も、デバイスファイル名(/dev/sdd1 など)はご自身の環境に合わせて正しい名前に置き換えてください。また、ディスクイメージの復元を行うと対象デバイス上のすべてのデータが消去される点に注意が必要です。「ファイルシステムがダーティとしてマークされています」という警告が表示される場合は、コマンドに-fオプションを追加してください。
方法3:TestDiskを使って復旧する
Ubuntu標準のツールやWindowsのツールでもファイルを取り戻せなかった場合は、TestDiskという強力な復旧プログラムを試してみる価値があります。通常はプリインストールされていないため、Ubuntuのコマンドラインから以下のコマンドでインストールします。
sudo apt-get install testdiskインストールが完了したら、次のように実行します(/dev/sdd は実際のデバイス名に置き換えてください)。
testdisk /log /dev/sddTestDiskはデバイスファイルへの直接アクセスを必要とするため、環境によっては先頭にsudoを付けて実行する必要があります。
ほとんどのスマートフォン、タブレット、デジタルカメラはFAT16またはFAT32ファイルシステムを使用していますが、TestDiskはMacintoshプラットフォームのHFSおよびHFS+、さらにNTFSもチェックできます。処理が完了したら、DashまたはKDEメニューから再びディスクユーティリティを開き、デバイスをクリックできるか確認してみてください。右向き矢印をクリックしてマウントできれば、ファイルマネージャー経由でファイルをコピーできるようになるかもしれません。
方法4:PhotoRecでファイルシステムなしの状態からファイルを復元する
Linuxがメモリカードをマスストレージデバイスとして認識はするものの、ファイルシステムを検出できない場合でも、PhotoRecを使えばファイルを復旧できる可能性があります。まだインストールしていない場合は、UbuntuまたはDebianのリポジトリから次のコマンドでインストールできます。
sudo apt-get install photorecPhotoRecはデバイスへの書き込みを行わないため、安全に使用できます。まず、復元したファイルのコピー先として問題ないPC内のディレクトリに移動しておきましょう。Linuxがメモリカードを/dev/sddとして認識している場合、次のコマンドを実行します(実際のデバイス名に置き換えてください)。
photorec /log /dev/sddこのコマンドは操作結果を同じディレクトリ内のphotorec.logファイルに出力します。より詳細な情報が必要な場合は、/debugスイッチを追加することも可能です。
著者について

Kevin Arrows(ケビン・アローズ)
Kevin Arrowsは、10年以上の業界経験を持つベテランのテクノロジースペシャリストです。Microsoft Certified Technology Specialist(MCTS)の資格を保有し、最新の技術動向を追いかけることに強い情熱を注いでいます。ソフトウェア開発、サイバーセキュリティ、クラウドコンピューティングなど、幅広い技術テーマについて数多くの記事を執筆しており、その専門性と知識は同業者から広く認められ、高い評価を得ています。複雑な技術的概念を明快かつ簡潔に説明する能力でも特に高く評価されています。
-
psqlの「サーバーに接続できませんでした:そのようなファイルやディレクトリはありません」エラーを解決する方法
PostgreSQLは「最も先進的なオープンソースデータベースプラットフォーム」を自称しており、Debian Linuxにはそれをさらに強化する多数のパッケージが用意されています。Ubuntu Serverや各種Ubuntu派生ディストリビューションもDebianのコアをベースとしているため、PostgreSQL向けのパッケージが豊富に揃っています。しかし、こうした高度な構成ゆえに、「could not connect to server(サーバーに接続できませんでした)」や「no such file or directory(そのようなファイルやディレクトリはありません)」といった警告が表示
-
SHファイル(シェルスクリプト)とは?Linuxでの作成方法と実行方法を徹底解説
スクリプトファイルには、特定のプログラムやスクリプトエンジンによって実行されるコマンドが含まれています。これらのコマンドはコンパイルされることなく、そのまま実行されます。スクリプト言語は実行時環境向けに命令を記述するためのもので、目的や環境に応じてさまざまな種類が存在します。本記事では、Linuxで動作する「bash」スクリプト言語について詳しく解説します。bashのコマンドや構文を含むファイルは、SHファイルまたはシェルスクリプトファイルと呼ばれます。LinuxにおけるSHファイルとは?スクリプトファイルは、その中身がbash言語で記述されているため、bash形式で作成・保存されます。拡張子