最小サイズ(0バイトの空き容量)に縮小された場合、破損したNTFSパーティションを回復する

ラップトップのハードディスクパーティションを再配布するとき、NTFSファイルシステムのパーティションに空き領域を残しませんでした。 当時のシステムはLinux Mint 18でしたが、実際には問題ではありません。 場所を再配布した後、私は恐怖に襲われました。 このセクションをマウントしようとすると、エラーが表示されました。

ボリューム101 GBを接続できませんでした


/ dev / sda4 at / media / dashka / B490E48B90E45600のマウントエラー:コマンドライン「mount -t」ntfs "-o" uhelper = udisks2、nodev、nosuid、uid = 1000、gid = 1000 "" / dev / sda4 "" /メディア/ dashka / B490E48B90E45600 "'ゼロ以外の終了ステータス13で終了:$ MFT / $ DATAのランリストのロードに失敗しました。
highest_vcn = 0x204f、last_vcn-1 = 0x263f
$ MFTの読み込みに失敗しました:I / Oエラー
「/ dev / sda4」のマウントに失敗しました:I / Oエラー
NTFSに一貫性がないか、ハードウェア障害があるか、または
SoftRAID / FakeRAIDハードウェア。 最初のケースでは、Windowsでchkdsk / fを実行します
その後、Windowsを2回再起動します。 / fパラメータの使用法は非常に
重要です! デバイスがSoftRAID / FakeRAIDの場合、最初にアクティブ化します
/ dev / mapper /ディレクトリの下に別のデバイスをマウントします(例:
/ dev / mapper / nvidia_eahaabcc1)。 「dmraid」のドキュメントをご覧ください
詳細については。

Windowsをインストールすることは完全に消極的であり、ラップトップには空きメモリが事実上ありませんでした。 私は非常に長い間苦しみ、多くのことを試みましたが、それでも道を見つけました。 そのため、まず最初に、破損したパーティションの完全バックアップに十分な空き領域のある別のPCが必要です。または、影響を受けるコンピュータに同じ量の領域が必要です。 もちろん、後者は前者よりもはるかに簡単です。

影響を受けるコンピューターに十分なスペースがある場合


この場合、 testdiskユーティリティをダウンロードします。

次に、破損したパーティションの外部メディアへの正確なバックアップを作成することが望ましいです。正しく行う方法については、スペースが不足している場合の2番目の方法で詳しく説明します。 このユーティリティのすべてが明確であり、コンパイルする必要さえありませんでした。 testdisk_static実行可能ファイルを実行しました。 その後、自分でそれを理解することができます。 これが機能しない場合は、photorecユーティリティを使用します。 同じ方法で起動し、同じフォルダーにあるtestdiskユーティリティにバンドルされています。 photorecユーティリティの欠点は不完全なリカバリです。つまり、すべてのファイルが混同され、作成日、変更、名前などが失われます。 可能な最大値は、何がどこにあるかをソートすることです。

mv /////*.{jpg,png} ./Photo mv /////*.mov ./\  mv /////*.mp4 ./ 



影響を受けるコンピューターに十分なスペースがない場合


一般に、すべては最初のオプションに似ていますが、最初に、破損したパーティションの正確なコピーを、影響を受けるコンピューターから、上記の操作を実行するのに十分なメモリがあるコンピューターに作成する必要があります。 これは、コンピューターをUSB-to-USBケーブル、ローカルエリアネットワーク、またはインターネット経由で接続することで実行できます。 私は特別な職人ではないので、2番目のオプションではsshのみを使用することを考えました。

このバックアップを作成する方法


 sudo dd if=/dev/sdaX bs=8192 | ssh hostname 'dd of=/home/user/backup.img bs=8192' && echo 'all right' > ~/DD.log || echo '' > ~/DD.log; ssh hostname poweroff; sudo shutdown 

X-破損したパーティションの番号。GPartedなどのプログラムまたはエラー自体の説明を参照してください。 sshホスト名-ssh構成に置き換えられます(私の場合、「ssh -p 31182 -i .ssh / id_rsa nikitosios@192.168.1.10」です)。 私は約10〜11時間、100 GBのバックアップを一晩中取りました。

上記のコードの説明といくつかの有用性
最も重要なこと:バックアッププロセスを追跡するには、次のものが必要です。

1)別のターミナルを起動します。

2) ps -aを登録し、ddユーティリティのPIDを見つけます。

3) while true; do sudo kill -USR1 [PID dd] ; sleep 10; done登録while true; do sudo kill -USR1 [PID dd] ; sleep 10; done while true; do sudo kill -USR1 [PID dd] ; sleep 10; done while true; do sudo kill -USR1 [PID dd] ; sleep 10; doneしてパスワードを入力します。

4)ddユーティリティが機能するターミナルで実行プロセスを確認します。

&& echo 'all right' > ~/DD.log || echo '' > ~/DD.log && echo 'all right' > ~/DD.log || echo '' > ~/DD.log午前中にすべてが正常にコピーされたかどうかを調べるコマンド。 結果は、ホームフォルダーのDD.logファイルに記録されます。

ssh hostname poweroff; sudo shutdown ssh hostname poweroff; sudo shutdownコンピューターの電源を切ります。

さて、セクションの正確なコピーがあります。 次は何をしますか? そして、私はかなりトリッキーな動きをしなければなりませんでした。 testdiskとphotorecはPCに接続されたデバイスのみを検索するため、イメージをデバイスとして設定する必要があります。 これを行うために、このシンボリックリンクを作成しました。

  ln -s /dev/sdv /home/user/backup.img 

トリッキーですね。 これで、「影響を受けるコンピューターに十分なスペースがある場合」という見出しで説明されている例に従って、/ dev / sdvを安全に復元できます。

まず、 S-traceユーザーメソッドを試すことをお勧めします。
VirtualBoxを入れて、ウィンドウを入れます(イデオロギーの側面を捨てましょう-質問は純粋に技術的なものです)、次に(ウィンドウをインストールした後)vboxmanage internalcommands createrawvmdk -filename〜/ sda.vmdk -rawdisk / dev / sdaコマンドを使用して物理ディスクを仮想ディスクに転送します(おそらく/ dev / sdaに直接アクセスするには、ホストシステムと少しやり取りする必要があります)。
a)Windowsからこのセクションをchkdskしてみてください
b)または、標準のディスクツールを使用して元に戻す
c)パーティションがマウントされていても書き込み可能でない場合、VirtualBoxの「共有フォルダー」または仮想マシンとホストシステム間のネットワークを介してデータをコピーできます。

PSテストディスクと一緒に踊る必要があるので、まずはphotorecですべてを復元する方が良いでしょう。結果があなたに合わない場合は、テストディスクと一緒に踊ることができます。

まあ、それだけです。 この投稿が誰かの助けになることを願っています。

Source: https://habr.com/ru/post/J315246/


All Articles