TrueCrypt で暗号化された Windows 7 と Ubuntu 11.10 がそれぞれ異なる物理ドライブにインストールされている場合、どうすればデュアルブートできますか?

TrueCrypt で暗号化された Windows 7 と Ubuntu 11.10 がそれぞれ異なる物理ドライブにインストールされている場合、どうすればデュアルブートできますか?

TrueCrypt で暗号化された Windows 7 と Ubuntu 11.10 がそれぞれ異なる物理ドライブにインストールされている場合、どうすればデュアルブートできますか?

ハード ドライブが 2 つあります。hd0 には、TrueCrypt ブートローダーを備えた TrueCrypt 暗号化 Windows 7 インストールがあります。hd1 には、grub2 ブートローダーを備えた Ubuntu 11.10 インストールがあります。

の出力はfdisk -l次のようになります。

  Device Boot      Start         End      Blocks   Id  System   
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   976771071   488282112    7  HPFS/NTFS/exFAT

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   968517631   484257792   83  Linux
/dev/sdb2       968519678   976771071     4125697    5  Extended
/dev/sdb5       968519680   976771071     4125696   82  Linux swap / Solaris

BIOS で起動順序を変更することで、どちらの OS も正常に起動できますが、これを繰り返し実行したくはありません。オプションは次のいずれかです。

  • TrueCrypt ブートローダーを grub2 設定に追加し、これを grub2 でチェーンロードします。
  • TrueCrypt ブートローダーを起動し、Esc キーを押してパスワード入力を終了すると、grub2 が起動します。

オプション 1 では、Esc キーを押すと TrueCrypt が他の起動可能なパーティションを見つけられず、問題がありました。私の理解では、他の起動可能なディスクを検索する必要があるようです。

オプション 2 と、その内部の次の部分/etc/grub.d/40_custom(および実行中update-grub2) でも問題が発生しました...

menuentry "Windows 7" {
set root=(hd0,1)
chainloader +1
}

(私も試してみましroot=(hd0,0)root=(hd0,2)

... そのようなパーティションがないというエラーが発生します。また、Windows を起動する前に TrueCrypt レスキュー ディスク ISO をマウントして起動しないと、grub2 でこれを行うことはできないと示唆するさまざまな情報源を読みました。これは必要ですか?

何が間違っているのでしょうか?

答え1

回避策をお手伝いできますが、非常に難しいので、必ず理解してください。

1つ目: すべてをバックアップする 2つ目: 2つの物理ディスクが必要で、1つだけは取得できませんでした

難しい部分、ブートシーケンスの順序プロセスに進みます。

  • BIOSは1つのHDD(通常は最初のHDD)から起動します。
  • そこでGRUB2ブートローダーを配置します
  • このようなGRUBを使用すると、最初のディスクのパーティションから起動したり、2番目のディスクから起動したりできます(これが難しい部分です)
  • Linuxを起動したい場合は、同じディスク上の別のパーティションから起動するだけです
  • TrueCryptブートローダーを起動したい場合は、パーティションからではなく、2番目のディスクから起動するように指示します。

これを念頭に置いて、それをアーカイブするにはどうすればよいでしょうか? 簡単です。次の手順に従います。

  • 空のHDDを1台だけPCに挿入する
  • BIOS を設定してそこから起動します (今回はこれだけ)
  • WindowsとTrueCryptをインストールする
  • TrueCryptにすべてを暗号化するように指示します(HDDは1台のみ)
  • 再起動してWindowsの起動をテストする
  • 正しく電源を切る
  • 2台目のディスクを追加する
  • このような2台目のHDDにいくつかのパーティションを作成する
  • /boot 用 (GRUB2 が配置される場所)
  • 残りはUbuntu /、SWAPなどでお好みに合わせてください...
  • GRUB2 を設定して、Ubuntu を起動し、2 台目の HDD 全体をチェーンロードします (パーティションを指定せず、HDD 全体だけを指定することに注意してください)。
  • リブート
  • トリッキー:BIOSに2台目のHDDから起動するように指示する(許可されていると言うように)
  • ブートがGRUB2を実行することをテストする
  • GRUB2 チェーンが最初の HDD ブートローダー (TrueCrypt ローダー) を正しくロードすることをテストしますが、パスワード フレーズを入力したり、Windows を起動したりせず、パスワードが求められたときに再起動するだけです。
  • 完了していない場合は再起動し、GRUB2 Linuxオプションをテストします...Ubuntuがまだインストールされていないため起動しませんが、TrueCryptはロードされないので、動作することがわかります。
  • Linux をインストールするときは、細心の注意を払ってください。パーティション テーブルを変更しないでください。既存のパーティションを使用して 2 番目のディスクにインストールしてください。ブートローダーを要求されたら、Grub や Lilo などを HDD MBR ではなく Linux パーティションにインストールするように指示してください。

これにより、次のスキームが得られます。

  • HDD0 - TrueCrypt を使用した MBR、残りは Windows 用
  • HDD1 - MBR と GRUB2 を含む /boot パーティション、/ (Ubuntu) 用のもう 1 つのパーティション。その中には /boot 上に別の Grub、Lilo、または Grub2 ローダーがあり、必要に応じて追加のパーティションがあります。

秘訣は次のとおりです。

  • TrueTrypt に、独自のブートローダーを備えた 1 つのフル HDD を認識して暗号化するように指示します。
  • 別の HDD から GRUB2 を起動します (BIOS は 2 番目の HDD から起動できる必要があります)

起動すると次のことが起こります:

  • BIOSはCMOS上の設定を読み取ります
  • BIOSは2台目のHDDから起動する
  • BIOS が 2 番目の HDD MBR を読み取る
  • GRUB2がロードされました
  • GRUB2 はメニューを表示します: Boot Windows / Boot Ubuntu
  • Ubuntuを選択した場合、GRUB2はUbuntuルートパーティション内に別のGrub、liloなどをロードし、そのような他のブートローダーはLinux Ubuntuをロードします。
  • Windowsを選択した場合、GRUB2は最初のHDDにチェーンロードし、BIOSが最初のHDDから起動するかのように動作します。

このようにして:

  • TrueCryptは起動用の2番目のディスクについては何も知らず、それに依存しません。
  • GRUB2とLinuxはそのような最初のディスクを上書きしたり変更したりしません
  • BIOSは2台目のハードディスクから起動します

十分に明確であることを願います。

これをアーカイブするために念頭に置いておくこと:

  • まず、実際の物理マシンで実行する前にVirtualBOXでテストを行い、プロセスに慣れてください。
  • 次に、何も忘れないように、実行している手順を紙に書き留めてください。

さて、両方のディスクが常に接続されている状態で、PC を開かなくても実行できると言わなければなりません。

想像してみてください:

  • パーティションなしのHDD0
  • パーティションなしのHDD1
  • 通常の方法でHDD0にのみWindowsをインストールし、HDD1をパーティション分割しない
  • TrueCryptをインストールし、HDD0全体を暗号化するように指示すると、HDD1には何も行われません。
  • テストはすべて正しく完了しました
  • SystemRescueCDなどのLiveCDから起動し、HDD1にパーティションを作成します。
  • Linux とは関係のない、GRUB2 専用の /boot パーティションを作成してください。512MB あれば、SystemRescueCD.iso をそこに配置して、GRUB2 が iso ファイルからブートロードをループするように設定することもできます (SystemRescueCD の Web を参照してください)。
  • HDD1 MBRとHDD1 /bootパーティションにGRUB2をインストールする
  • このような GRUB2 の grub.cfg を構成して、HDD1 上の Linux ルートから起動し、HDD0 にチェーンロードします (HDD0 上の任意のパーティションではありません)。
  • GRUB2 をテストすると、すべてのオプションが正しく起動します。テストチェーンのロードが正しく実行されるだけです... Windows を起動すると、TrueCrypt がパスフレーズを要求します。再起動するだけで、Windows 自体を起動する時間を無駄にしません。
  • HDD1 ルート パーティションに Ubuntu をインストールし、メインの Linux Ubuntu ファイルが格納される HDD1 ルート パーティションに独自の grub をインストールするように指示します。これにより、HDD1 /boot パーティションにはまったく影響しません。

それが難しいのです!!!

アイデア: 別のメディアを使用して、実際のブート メニューを実行し、ブートするものを選択できるようにします。

個人的に、私のネットブックには次のチェーンがあります:

  • /boot で GRUB2 メニューを起動するためのオプション: WindowsVista、Windows7、Linux Ubuntu 32 ビット、Linux Ubuntu 64 ビット、SystemRescueCD.iso、memtext86+、フロッピーなど
  • Linux Ubuntu 32Bits を選択すると、Go Back (HDD MBR から起動)、Kernel X、Kernel X デバッグ、Kernel Y、Kernel Y デバッグなどのオプションを持つ別の GRUB2 がロードされます。
  • Linux Ubuntu 64Bits を選択すると、Go Back (HDD MBR から起動)、Kernel X、Kernel X デバッグ、Kernel Y、Kernel Y デバッグなどのオプションを持つ別の GRUB2 がロードされます。

これがアイデアです...ブート プロセスに複数の GRUB を配置します!!

なぜ 1 つ以上あるのでしょうか? 簡単です... システムが Grub を更新しても、ブート メニューとして使用するものには影響しません。シンプルで効果的です。

さて、TrueCrypt の問題ですが... システム パーティションを暗号化する場合、MBR に配置する必要があり、他の方法 (RecoveryCD を除く) は使用できません。

したがって、TrueTryptがWindowsシステムパーティションを暗号化する場合は、ディスク全体を暗号化したほうがよいでしょう。

やあ!Linux はパフォーマンスのために Windows と同じディスクにインストールすることもできます...そしてデータは別の場所に...

最初の HDD:

  • /dev/sda -> TrueCrypt ローダー (MBR)
  • /dev/sda0 -> TrueCrypt で暗号化された Windows (数 GB)
  • /dev/sda1 -> Linux Ubuntu / (数 GB) には別の Grub、boot というサブフォルダー、すべてのシステム ファイルなどが保存されます。

2台目のHDD:

  • /dev/sdb -> GRUB2 ローダー (MBR) これを「BootMenu」と呼びます
  • /dev/sdb1 -> GRUB2「BootMenu」用の /boot (SystemRescueCD.iso ファイルが必要な場合は 512MB)
  • /dev/sdb2 -> WindowsおよびLinuxでデータ用NTFSパーティション(暗号化されていない場合)

ぜひ実現してほしいです。

私は、CD から起動し、BIOS を構成し、パーティションを作成し、GRUB2 をインストールする方法などを知っているだろうと考えてこれを説明しました...

これは初心者向けではありません。非常に高度なテクニックの手順が含まれており、HowTo ではありません...

これは別のメディアから起動するだけのアイデアです。そのような別のメディア (CD、フロッピーなど) には、最初の HDD から起動するか、パーティションから起動するかなどを選択できるブート メニューが含まれます。つまり、GRUB2 です。

役に立つことを願っています。

答え2

この問題の最も簡単な解決策は、その逆ではなく、Windows ブートローダーを使用して Grub を起動することのようです。Grub は、 があっても暗号化された Windows パーティションを起動できないようです--force

EasyBCD というツール (非商用利用は無料) があり、TrueCrypt パスワードを入力すると Windows ブートローダーが Grub で起動するように適切に構成します。これで、Windows ドライブが BIOS の最初の起動デバイスになり、Grub が Windows ブートローダーのデフォルトの起動項目になりました。Windows をデフォルトにすることも簡単にできます。

答え3

ブート メニューに入り、ブートする HDD を選択するだけです。

私の場合は、F11POST メッセージが表示されたときに押すことでこれを実行します。Fあなたの場合は別のキーになるかもしれません。

関連情報