Debianが黒い画面で止まる、GRUBから先へ進まない、ログイン画面が表示されない場合でも、内蔵HDD・SSDが読み取れる状態なら、データを救出できる可能性があります。もっとも安全性を重視しやすい方法は、別のUSBメモリーからDebian Liveを起動し、元のディスクを読み取り専用にして、外付けHDD・SSDへコピーする方法です。
- 起動しないDebianを何度も立ち上げず、再インストールもしない
- 別のパソコンでDebian Live USBを作成する
- Live USBから起動し、内蔵ディスクと保存先を確実に見分ける
- 元ディスクを読み取り専用にしてマウントする
rsyncでホームフォルダーを外付けドライブへコピーする- コピー結果を確認してから安全に取り外す
HDDからカチカチ音がする、SSDが途中で消える、読み込みが極端に遅い、Input/output errorが出る場合は物理故障の疑いがあります。データが重要なら電源を切り、専門業者への依頼を優先してください。自分で作業する場合も、後半のGNU ddrescueで先にディスクイメージを作り、元ディスクへのアクセス回数を抑えます。
救出前にしてはいけないこと
起動しない原因がファイルシステムの破損やストレージ故障だった場合、書き込み操作によって状態が悪化することがあります。救出が完了するまでは、次の操作を避けてください。
- Debianを同じディスクへ再インストールする
- パーティションを削除、初期化、フォーマットする
- 元ディスクに救出データを保存する
- 状態を確認しないまま
fsck -yを実行する - 異音のするHDDを何度も再起動する
- コピー前に大規模なアップデートやGRUB修復を試す
GRUBや起動設定だけが壊れているように見えても、重要なデータのコピーを先に行うと安全です。起動修復はデータを確保したあとに試します。
必要なものを準備する
| 必要なもの | 目安・用途 |
|---|---|
| 正常に動く別のパソコン | Debian Live ISOのダウンロードとUSB作成に使用 |
| USBメモリー | 8GB以上を推奨。作成時に中身は消去される |
| 外付けHDD・SSD | 救出したいデータ量より十分に大きいもの。元ディスクとは別の媒体を使用 |
| ACアダプター | ノートPCの作業中の電源切れを防止 |
| 暗号化パスフレーズ | LUKS暗号化を使用している場合に必要 |
保存先がext4なら、Linuxの所有者・権限・ACL・拡張属性を保持しやすくなります。Windowsでも読みたい場合はNTFSまたはexFATを利用できますが、Linux固有の属性は完全には保存できません。FAT32には1ファイル4GBの上限があるため、ディスクイメージや大きな動画の救出先には適しません。
優先して救出したい場所
| 場所 | 主な内容 | 優先度 |
|---|---|---|
/home/user/ | 文書、画像、動画、ダウンロード、デスクトップ、アプリ設定、隠しファイル | 最優先 |
/etc/ | システムやサービスの設定 | 必要に応じて |
/var/www/ | Webサーバーの公開データ | 運用していた場合 |
/srv/・/opt/ | サービス用データ、手動導入したアプリ | 使用していた場合 |
/var/lib/ | データベースやアプリの状態 | 用途を確認して救出 |
ブラウザーのプロファイルや多くのアプリ設定は、ホームフォルダー内の.config、.local、.mozillaなどにあります。ホームフォルダー全体をコピーすれば、先頭が「.」の隠しファイルも含まれます。
1Debian Live USBから起動する
- 正常なパソコンでDebian公式のLiveイメージ配布ページを開きます。
- 通常は64ビットPC向けのamd64版を選びます。操作に慣れていない場合はGNOME版またはXfce版が分かりやすいでしょう。
- RufusやbalenaEtcherなどでISOをUSBメモリーへ書き込みます。Rufusで書き込み方式を尋ねられた場合は、Debian Wikiの案内に従いDDイメージモードを選びます。
- 起動しないPCへLive USBを挿し、電源投入直後にブートメニューを開きます。キーは機種により
F12、F9、Esc、F8などです。 UEFI: USBなど、作成したUSBメモリーを選択します。
今回はインストールしません。誤操作を避けるため、Debian InstallerではなくLive環境を起動してください。公式インストーラーのrescue modeでも作業できますが、ファイルをコピーするだけならLive環境のほうが確認しやすくなります。
2元ディスクと保存先を確認する
Liveデスクトップが表示されたら端末を開きます。外付けHDD・SSDも接続し、次のコマンドでディスク名、容量、ファイルシステム、ラベル、機種名を確認します。
lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTS,MODEL
この例では、内蔵SSDが/dev/nvme0n1、Debianのext4パーティションが/dev/nvme0n1p2、外付け保存先が/dev/sda1です。SATA接続の内蔵ディスクは/dev/sda、外付けディスクは/dev/sdbになることもあります。
/dev/sdaが必ず内蔵、/dev/sdbが必ず外付けとは限りません。容量、MODEL、LABELを確認し、分からない状態では先へ進まないでください。元と保存先を逆にすると、重要なデータを失うおそれがあります。
3元ディスクを読み取り専用で開く
以下は、元ディスクが/dev/nvme0n1、Debianのext4パーティションが/dev/nvme0n1p2だった例です。自分の環境で確認した名前に置き換えてください。
1. 自動マウントされていないか確認する
findmnt -S /dev/nvme0n1p2
何も表示されなければ未マウントです。マウント先が表示された場合だけ、次のように解除します。
sudo umount /dev/nvme0n1p2
2. ディスク全体を読み取り専用にする
sudo blockdev --setro /dev/nvme0n1
sudo blockdev --getro /dev/nvme0n1
--getroの結果が1なら読み取り専用、0なら書き込み可能です。
3. ext4パーティションを読み取り専用でマウントする
sudo mkdir -p /mnt/source
sudo mount -o ro,noload /dev/nvme0n1p2 /mnt/source
ext3・ext4では単なるro指定でも、状態によってジャーナルが再生される可能性があります。noloadを加えるとジャーナルを読み込まず、さらにブロックデバイス自体も読み取り専用にしているため、元ディスクへの書き込みを防ぎやすくなります。
lsblkのFSTYPE | マウント例 |
|---|---|
| ext3・ext4 | sudo mount -o ro,noload デバイス マウント先 |
| XFS | sudo mount -o ro,norecovery デバイス マウント先 |
| Btrfs | sudo mount -o ro デバイス マウント先 |
| NTFS | sudo mount -o ro デバイス マウント先 |
| crypto_LUKS | 先にLUKSを読み取り専用で開く手順を実行 |
| LVM2_member | 論理ボリュームを有効化してからマウント |
4. 読み取り専用になっていることを確認する
findmnt -no SOURCE,FSTYPE,OPTIONS /mnt/source
sudo ls -la /mnt/source/home
1とroを確認し、ホームフォルダーのユーザー名を調べます。lsblkで別のext4パーティションがあり、以前の/etc/fstabに/homeとして登録されていた場合は、そのパーティションを別途読み取り専用でマウントします。ホームだけを救出するなら、sudo mount -o ro,noload /dev/nvme0n1p3 /mnt/source-homeのように直接開いて構いません。
4外付けHDD・SSDへコピーする
1. 保存先をマウントして空き容量を確認する
次の例では外付けドライブのパーティションが/dev/sda1です。lsblkで確認した自分のデバイス名に置き換えます。
sudo mkdir -p /mnt/backup
sudo mount /dev/sda1 /mnt/backup
df -h /mnt/source /mnt/backup
MOUNTPOINTS欄に/media/user/BACKUPなどがすでに表示されている場合は、外付けドライブはマウント済みです。そのパスを保存先として使用し、重ねてmountしないでください。
2. ext4の保存先へホーム全体をコピーする
ホームフォルダー名がuserだった例です。最初に保存用フォルダーを作り、rsyncでコピーします。
sudo mkdir -p /mnt/backup/debian-rescue/home/user
sudo rsync -aHAX --numeric-ids --info=progress2 \
/mnt/source/home/user/ \
/mnt/backup/debian-rescue/home/user/
-a:再帰コピーと主要な属性の保持-HAX:ハードリンク、ACL、拡張属性を保持--numeric-ids:ユーザー名ではなくUID・GIDをそのまま扱う--info=progress2:コピー全体の進行状況を表示
rsync: command not foundと表示された場合は、Live環境をインターネットへ接続し、sudo apt updateとsudo apt install rsyncを実行してからコピーします。
/mnt/source/home/user/の末尾にあるスラッシュは、「userフォルダーの中身」を保存先へコピーする指定です。このコマンドには削除オプションを付けていないため、中断後に同じコマンドを実行してコピーを続けられます。
3. 保存先がNTFS・exFATの場合
Linux固有の所有者・権限・ACLを保存できないため、個人ファイルの内容、日時、フォルダー構造を中心にコピーします。
sudo mkdir -p /mnt/backup/debian-rescue/home/user
sudo rsync -rltvh --info=progress2 \
--no-perms --no-owner --no-group \
/mnt/source/home/user/ \
/mnt/backup/debian-rescue/home/user/
NTFS・exFAT側で使用できないファイル名や属性があると、一部の項目でエラーになる場合があります。元の状態をできるだけ忠実に保存したい場合は、ext4の保存先を用意するか、後述のディスクイメージ方式を使います。
4. システム設定なども必要なら追加でコピーする
sudo mkdir -p /mnt/backup/debian-rescue/etc
sudo rsync -aHAX --numeric-ids --info=progress2 \
/mnt/source/etc/ \
/mnt/backup/debian-rescue/etc/
Webサーバーを使用していた場合は/var/www/、独自サービスのデータは/srv/や/opt/も同様にコピーします。データベースは単純なファイルコピーだけで完全に復元できない場合がありますが、起動不能時の保全用としてコピーしておく価値があります。
to-chk=0/...となってプロンプトが戻るまで待ちます。No space left on deviceなら保存先の空き容量を確認します。Input/output errorなら元ディスクの故障が疑われるため、通常コピーの再試行を繰り返さず、GNU ddrescueまたは専門業者を検討してください。
5コピー結果を確認して安全に取り外す
ファイル数を比較する
sudo find /mnt/source/home/user -xdev -type f -printf . | wc -c
sudo find /mnt/backup/debian-rescue/home/user -xdev -type f -printf . | wc -c
両方の数が一致するか確認します。ソケットなど通常ファイル以外の項目はこの数に含まれません。
内容をチェックサムで確認する
元ディスクが正常に読み取れており、保存先がext4の場合は、次のドライランで内容を照合できます。
sudo rsync -aHAXnc --numeric-ids \
/mnt/source/home/user/ \
/mnt/backup/debian-rescue/home/user/
何も一覧表示されなければ、rsyncが比較した範囲では差異がありません。-nは実際には変更しないドライラン、-cはファイル内容のチェックサム比較です。チェックサム確認は元と保存先の全ファイルを読み直すため、故障が疑われるディスクでは行わず、救出できたデータを優先します。
書き込みを完了して取り外す
sync
sudo umount /mnt/backup
sudo umount /mnt/source
target is busyと表示された場合は、ファイルマネージャーや端末がマウント先を開いていないか確認し、cd ~を実行してから再度アンマウントします。アンマウントが成功したあとにシャットダウンし、外付けドライブとLive USBを取り外します。
- 外付けドライブ側で文書や画像を数点開ける
- 隠しファイルを含むホーム全体が保存されている
- rsyncの最後に重大なエラーが出ていない
syncとumountが完了している- 修復作業を始める前に、重要データをもう1か所へ複製する
LUKS暗号化・LVMを使用している場合
lsblk -fのFSTYPEにcrypto_LUKSと表示される場合は、パスフレーズで暗号化領域を開きます。さらに内部がLVMなら、論理ボリュームを有効化してからマウントします。
lsblk -f
sudo cryptsetup open --readonly /dev/nvme0n1p3 rescue_crypt
sudo vgs
sudo vgchange -ay debian-vg
sudo lvs -o lv_name,vg_name,lv_size,lv_path
lsblk -f
debian-vgはこの例のボリュームグループ名です。先にvgsで表示された実際の名前へ置き換えます。cryptsetupがパスフレーズを求めたとき、入力中は画面に文字や「*」が表示されませんが、そのまま入力してEnterを押します。
rootとhomeが別の論理ボリュームになっている例では、次のように読み取り専用で開きます。
sudo mkdir -p /mnt/source /mnt/source/home
sudo mount -o ro,noload /dev/debian-vg/root /mnt/source
sudo mount -o ro,noload /dev/debian-vg/home /mnt/source/home
findmnt /mnt/source
findmnt /mnt/source/home
あとは通常の手順と同じく、/mnt/source/home/user/を外付けドライブへコピーします。終了時はhome、rootの順でアンマウントし、LVMと暗号化マッピングを閉じます。
sync
sudo umount /mnt/source/home
sudo umount /mnt/source
sudo vgchange -an debian-vg
sudo cryptsetup close rescue_crypt
コマンドが見つからない場合は、Live環境をインターネットへ接続して次を実行します。インストール先はLive環境の一時領域であり、元ディスクではありません。
sudo apt update
sudo apt install cryptsetup lvm2
LUKSの有効なパスフレーズまたは回復に使える鍵ファイルがなければ、通常の方法で暗号化データを復号することはできません。パスフレーズを推測するための初期化やフォーマットは行わないでください。
ディスク故障が疑われる場合はGNU ddrescueでイメージ化する
不良セクターがあるディスクへ通常のrsyncを使うと、読めないファイルのたびに再試行が発生します。GNU ddrescueは、読み取れる領域を先に別媒体へコピーし、進捗をmapfileへ記録できます。ただし、故障ディスクへ通電すること自体が悪化要因になる場合があります。代替できないデータは専門業者へ相談してください。
500GBの元ディスクをイメージ化するなら、使用量が少なくても約500GBのファイルを保存できる領域が必要です。保存先はFAT32以外を使用し、イメージファイルとmapfileを同じ故障ディスクへ保存してはいけません。
Live環境をネットワークへ接続し、GNU ddrescueを導入します。Debianのパッケージ名はgddrescue、実行コマンド名はddrescueです。
sudo apt update
sudo apt install gddrescue
元ディスクが/dev/nvme0n1、外付け保存先が/mnt/backupの場合、まず再試行を抑えた初回コピーを行います。
sudo umount /dev/nvme0n1p1 2>/dev/null
sudo umount /dev/nvme0n1p2 2>/dev/null
sudo ddrescue -f -n \
/dev/nvme0n1 \
/mnt/backup/debian-disk.img \
/mnt/backup/debian-disk.map
debian-disk.mapは必ず残します。処理を中断しても、同じイメージファイルとmapfileを指定すれば続きから再開できます。元ディスクの状態が安定している場合だけ、次のように不良領域を1回再試行します。
sudo ddrescue -d -r1 \
/dev/nvme0n1 \
/mnt/backup/debian-disk.img \
/mnt/backup/debian-disk.map
異音、切断、温度上昇がある場合は再試行せず停止します。イメージ作成後は元ディスクを外し、イメージを読み取り専用のループデバイスとして開いて、そこからファイルを救出できます。
sudo losetup --find --show --partscan --read-only \
/mnt/backup/debian-disk.img
# 例として /dev/loop0 と表示された場合
lsblk -f /dev/loop0
sudo mount -o ro,noload /dev/loop0p2 /mnt/source
イメージ内がLUKS暗号化されている場合は、/dev/loop0p3など実際に表示されたパーティションを、前節のcryptsetup open --readonlyで開きます。
うまくいかない場合の対処法
| 症状・表示 | 確認すること | 避ける操作 |
|---|---|---|
内蔵ディスクがlsblkに出ない | UEFI/BIOSで認識されるか、SATA・電源ケーブル、別のUSB-SATA変換器を確認。BIOSでも見えなければ物理故障の可能性 | 再起動の繰り返し |
wrong fs type | lsblk -fとsudo blkidでFSTYPEを確認。LUKS・LVMなら専用手順を使用 | mkfsやフォーマット |
bad superblock | ファイルシステム破損の可能性。重要なら先にddrescueでイメージ化し、修復は複製側で検討 | 元ディスクへのfsck -y |
Permission denied | sudo ls、sudo rsyncを使用。暗号化の場合は先に解除 | 元ディスク全体への無計画なchmod -R |
No space left on device | df -h /mnt/backupで空き容量を確認。別の十分な保存先を用意 | 元ディスクへの保存 |
Input/output error | ケーブルを確認し、物理故障なら通電を減らす。重要データは業者、自己作業ならddrescueを検討 | 同じコピーの長時間反復 |
target is busy | 開いているファイルマネージャーを閉じ、端末でcd ~してから再度umount | コピー中の強制取り外し |
| パーティションが表示されない | sudo fdisk -lで確認。パーティションテーブル破損が疑われる場合は、先にディスク全体をイメージ化 | 新しいパーティションテーブルの作成 |
よくある質問
Debianのログインパスワードが分からなくても救出できますか?
通常のLinuxファイル権限だけなら、Live環境からsudoを使ってコピーできます。ただし、LUKSやeCryptfsなどで暗号化されているデータには、有効なパスフレーズや鍵が必要です。
インストールUSBのrescue modeでも救出できますか?
はい。Debian公式インストーラーにはrescue modeがあり、壊れたシステムのディスクを認識してシェルを使えます。ただし、初心者がファイルを確認しながら外付けドライブへコピーする用途では、デスクトップを使えるDebian Live USBのほうが分かりやすいでしょう。
ホームフォルダーだけで十分ですか?
個人の文書、写真、動画、ブラウザープロファイル、一般的なアプリ設定の多くはホーム内にあります。サーバー用途では/etc、/var/www、/srv、/var/libなども確認してください。
削除済みのファイルもこの方法で戻りますか?
この手順は現在ファイルシステム上に残っているデータをコピーする方法です。削除済みファイルの復元は別作業になります。元ディスクの使用を直ちに止め、できればディスクイメージを作成してから復元ツールを試します。
救出後、すぐDebianを再インストールしてよいですか?
外付けドライブ上の重要ファイルを実際に開き、可能なら別の媒体にも複製してから行います。コピーが1つだけの状態で元ディスクを消去しないでください。
まとめ
Debianが起動しなくても、ストレージが認識されて読み取れるなら、Live USBからデータを救出できる可能性があります。重要なのは、修復や再インストールを急がず、元ディスクを読み取り専用にして、別のHDD・SSDへ先にコピーすることです。
- Debian Live USBから起動する
lsblkで元ディスクと保存先を確実に見分ける- 元ディスクをブロックレベルで読み取り専用にする
- ext4は
ro,noloadでマウントする rsyncでホーム全体を別ドライブへコピーする- 物理故障の兆候があれば通常コピーを繰り返さない
データを2か所以上へ確保できたあとで、GRUB修復、ファイルシステム検査、Debianの再インストールなど、起動問題そのものへの対処を進めます。
- Debian公式:Live install images
- Debian Wiki:DebianInstall
- Debian Reference:Rescue system
- Debian Installation Guide:Recovering a Broken System
- Debian Manpages:mount(8)
- Debian Manpages:lsblk(8)
- Debian Manpages:rsync(1)
- Debian Manpages:cryptsetup-open(8)
- GNU ddrescue Manual
コマンド例はDebian 13を基準にしています。デバイス名、パーティション構成、暗号化方式は環境ごとに異なります。
