誤ってプライマリディスク(SSD)からWindows関連のパーティション2〜3個を削除しました(MintとWin 10をダブルブートしました)。私は間違ったドライブで作業していることに気づいたとき(内蔵ハードドライブからパーティションを削除しようとしました)、すぐにやったことをやめました。
システムの実行中に誤って削除されたパーティションをどのように回復できますか?
答え1
パーティションを削除し、以前にパーティションが占有していたスペースに何も書き込んでいない場合は、パーティションを再作成できます。パーティションを再作成するだけで、そのパーティションにファイルシステムを作成またはフォーマットしないように注意してください。パーティションテーブルを再作成するだけです。
システムを再起動してもこれを行うことができますが、必要な情報を見つけるのは難しいかもしれません。
パーティションを再作成するには、次の点に注意する必要があります。
- 開始位置。これは絶対に必要です。問題が発生すると、どのデータにもアクセスできません。
- その寸法。大きすぎると空間無駄になります。小さすぎる場合は注意してください。正常に動作しているように見えますが、深刻なデータ損失につながる可能性があります。
- おそらくそのタイプです。 Linuxは通常パーティションタイプには興味がありませんが、Windowsは興味があります。幸い、オペレーティングシステムとパーティションの目的(ファイルシステム、スワップ、暗号化されたボリュームなど)がわかっている場合は、パーティションの種類を決定できます。
- おそらくその番号です。パーティション番号はLinuxでは番号を決定し
/dev/sdz99
、Windowsではドライバ文字を決定します。
オフセットとサイズの丸めと1,000,000バイト(1MB、10進数)対2 20 = 1,048,576バイト(1MiB、2進数)など、10進数と2進数の接頭辞との違いを確認してください。fdisk
すべてのサイズとオフセットは512バイトの倍数で、より大きな単位は丸めの危険性があるため、512バイトのセクタサイズを使用して指定することをお勧めします。
Linuxでは、.txtファイルでカーネルに知られているパーティションの場所を見つけることができます/sys/block
。カーネルがまだいくつかの古いパーティションを使用している場合は、パーティションテーブルを変更した後に再度読み取ることができないため、これはまだ古い情報になります。単位は512バイトブロックです。たとえば、
$ cat /sys/block/sda/sda2/start
14680064
$ cat /sys/block/sda/sda2/size
2097152
これは、パーティション番号2がオフセット14680064 * 512バイト(7GiB)で始まり、サイズが2097152 * 512バイト(1GiB)であることを示しています。
パーティションの開始場所がわからない場合は、ツールを使用してパーティションを検索できます。テストディスクこの機能が含まれています。 Mint(Debianパッケージを含む)にインストールするか、liveCD / liveUSBで実行できます。リアルタイム実行は削除されたファイルを回復するために非常に必要な作業ですが、パーティションテーブルからパーティションのみを削除した場合は、システムを通常どおり使用できます。 1つのパラメータ、testdisk
回復するパーティションがあるディスクを使用して実行し、[分析]メニューを使用します。
提案されたパーティションが合理的に見えることを確認してください。このツールは、特に今日以前に削除した古いパーティションの場所に限定されず、誤検出を見つけることができます。
パーティションを回復したと思われる場合は、いくつかのヘルスチェックを実行してください。
file -s /dev/sdz99
/dev/sdz99
どのタイプのファイルシステムまたは他のボリュームを期待しているかをお知らせします。tune2fs -l
ext2/ext3/ext4 ファイルシステムで実行され、ntfsinfo
NTFS ファイルシステムなどを検出します。fsck -n
ファイルシステムで実行します。パーティションがファイルシステムの前に終わったら、大声で文句を言う必要があります(ただし、これがすべてのファイルシステムタイプに該当するかどうかはわかりません)。