他のデバイスのパーティションテーブル

他のデバイスのパーティションテーブル

ディスクパーティションテーブルを別のデバイスに保存し、grubからロードできるかどうか疑問に思います。

編集する: 私のディスクが次のようにフォーマットされているとしましょう。 ディスクには3つのパーティションがあり、最後に約12 GBは割り当てられません。

通常MBRのロード後(ディスク1)起動時に、システムには3つのパーティションと未割り当て領域のみが表示されます。

しかし、別のシナリオを作成することが可能かどうか疑問に思います。このディスクには次のデータテーブルがあるとします。

ディスクには、割り当てられていない約454 GBで始まる3つのパーティションがあります。 私が望むのは、ディスク上のドライブの代わりに(交換せずに)別のドライブ(grubもインストールされています)からこの交換パーティションテーブルをロードし、ここからOSを起動することです。

ベストアンサー1

それでは、分割されていないスペースに見える場所に2番目のオペレーティングシステムを隠そうとしますか?これは非常に安全な方法ではありません。たとえば、testdiskディスク上で実行すると、パーティションを検出してそれを物理パーティションテーブルに追加することをお勧めします。私は、すべてのフォレンジックツールが「割り当てられていないスペース」にいくつかの構造化コンテンツがあるように見えることをすばやく検出できることを願っています。

しかし、もちろん臨時検査を通過することもできる。

GRUBはこれを簡単に実行できないようですが、外部ブートドライブにカーネルファイルとinitramfsファイルがある場合は、initramfsで簡単に実行できます。マッピングテーブル(デフォルトでは名前+開始位置)ブロックを作成する数値+長さ)隠しパーティションの場合、それを使用してマッピングをロードし、dmsetup createinitramfsを/dev/mapper/hidden_rootルートファイルシステムにマウントし、デフォルトで起動を通常どおり実行しますが、必要に応じてスワップパーティション/dev/mapper/hidden_otherとしてマウントします。で使用します。/dev/mapper/hidden_swap

各隠しパーティションのマッピングをロードするには、次のコマンドを実行できます。

dmsetup create <name> --table "0 <length in blocks> linear <disk major:minor> <first block #>"

<disk major:minor>8:0/ dev / sdaなどの隠しパーティションを含むディスクデバイスのプライマリおよびマイナーデバイス番号。

最初の隠しパーティションの名前がある場合、hidden_rootそれをマップするコマンドは次のとおりです。

dmsetup create hidden_root --table "0 4236248 linear 8:0 952190894"

本質的には、これは「ブロック#952190894で始まるディスク/ dev / sdaの線形拡張をマップし、それを/ dev / mapper / hidden_​​rootのブロック0..4236248としてレンダリングします」を意味します。

GRUBに代替パーティションテーブルを読み込むことができますが、Linuxカーネルはファームウェアの指示に依存せずにパーティションテーブル自体を読み取ってパーティションを見つけるため、initramfsでこれを行う必要があります。

おすすめ記事