GNU/Linux >> Linux の 問題 >  >> Linux

実行中のシステムにまだ存在するパーティションテーブルを回復する

パーティションのエクステントは /sys/block/sda/sda1/start から読み取ることができます 、 /sys/block/sda/sda1/size 等々。値はセクター単位です。 特に再起動する前に、これらの値を書き留めておいてください。

値を取得したら、fdisk でパーティションを再作成できます . u を使用 コマンドを使用してユニットをセクターに切り替え、次に入力してパーティションを作成します

  • n
  • p rimary/l 論理/e 拡張
  • パーティション番号 (論理パーティションを除く:順番に記入してください)
  • 最初のセクター
  • + セクターのサイズ

質問されてからほぼ2年が経過しました。昨日もまったく同じ状況でした。2 つのディスクを備えた Linux ソフトウェア RAID レベル 1 があります。ディスクの 1 つが故障し、交換する必要がありました。ディスクを交換した後、パーティション テーブルを残りの (動作中の) ディスクから新しいディスクにコピーしたいと考えました。残念ながら、空のパーティション テーブルを新しいディスクから古いディスクにコピーしました。幸いなことに、マシンを再起動する前にすぐにこれを発見したため、正しいパーティション テーブルがまだカーネルでアクティブでした。この問題を解決するために行ったことは次のとおりです:

  • /sys/block/ からパーティション データを抽出しました Gilles の回答に記載されているファイル システム
  • 私たちのシステムは GUID パーティション テーブルを使用しているため、fdisk を使用できませんでした gdisk を使用する必要がありました
  • gdisk fdisk とほとんど同じように動作します ただし、u を指定する必要はありません。
  • exact でパーティションを作成しました /sys/block/ から抽出されたデータ .同様の質問に対して、パーティション サイズを 1 つ減らすという回答が他にもありますが、それは私たちにとって必要ではありませんでした。
  • GUID パーティション テーブルでは、プライマリ パーティションと拡張パーティションの区別がなくなりました。
  • sys/block ファイル システムにはファイル システムの種類に関する情報が含まれていないため、mount で抽出しました。 .
  • GUID パーティション テーブルでは、起動可能フラグがなくなりました。復元するパーティション テーブルがブータブル ディスクからのものである場合、BIOS boot partition タイプのパーティションが必要です。 (通常は最初のパーティション)。

gdisk でパーティションテーブルを書き込んだ後 、システムを再起動することができ、すべて正常に動作していました.


Linux
  1. 失われたデータ/パーティションを回復しますか?

  2. CentOS/RHEL 5,6 で破損したルート パーティションをレスキュー モードから回復する方法

  3. Linux でパーティションベースのファイルシステムのサイズを変更 (拡張) する方法

  1. /boot パーティションは常に必要ですか?

  2. Linux:スワップ パーティションを作成しませんか?

  3. NTP は実行中ですが、システム クロックはまだ間に合いません。

  1. TestDiskでパーティションとファイルを回復する

  2. EUFI対応システムのGRUB

  3. Python はどの OS で実行されているかを検出できますか?