3つのプライマリ/基本パーティションがあります。
sda1
。 Ubuntu 11.10ルートドライブ(40 GB)sda2
。 FreeBSDルート(20 GB)sda3
。 Windows XPルートドライブ(4 GB)5つのディスク(sda4
〜sda6
)に分割された234 GBの論理/拡張パーティション9
があります。
プライマリパーティション#3(sda3
)には4 GBのスペースしかありませんが、これは非常に不十分です(MS OfficeにのみWindowsが必要であり、いくつかの奇妙なエンジニアリングソフトウェアが必要です。それのためのスペース)。
Windows XPを、パーティションテーブル構造とプライマリおよび論理のいずれかのパーティションを損傷することなく、論理/拡張パーティションのディスクの1つ(sda6
〜9
)にインストールできますかパーティション/ディスク?
Partitions structure: /dev/sda
/dev/sda1 ext4 / Oneiric-Ocelot 40G
/dev/sda2 ufs FreeBSD 20G
/dev/sda3 ntfs WinXP Pro 4G #This will be formatted 'ext4' & contents of '/Mix' will come here
/dev/sda4 extended 234G
/dev/sda5 ext4 /Docs Docs 34G
/dev/sda6 ext4 /Multimedia Multimedia 186G
/dev/sda7 unallocated 2MB
/dev/sda8 ext4 /Mix Mix 10G #Windows XP is to be installed here
/dev/sda9 linux-swap 04G
Windowsは、プライマリパーティションだけでなく、論理パーティションにもインストールできます。はい、論理パーティションにインストールされたWindowsのブートローダーは実行されませんが、プライマリパーティション上のOSのブートローダーで起動できます。
これは、プライマリパーティションに他のバージョンのWindowsがプレインストールされている論理パーティションにWindowsをインストールするユーザーに適用されます。それはソフトウェアを介して行われました EasyBCD 。
私はもう1つ、はるかに複雑な機能を持っていますが、機能します。
最初にこのスキームの警告:HDDが1つしかない場合は、スキームとしてWindowsをインストールできない可能性があります(試行しなかったため、ウィンドウを複製してMBRディスクにインストールされた以前のウィンドウを使用しました) GPartedを使用したパーティション)。
私は自分自身に課す必要があります(物事を本当に複雑にするため):
注:Vistaから10の場合に限り、XPを放します(GPTはサポートしません).
ブートスキームはBIOSロードGrub2で、その後memdiskがロードされ、VHDファイル(Windowsごとに1つ)がマウントされ、チェーンロードされます。
VHDは固定サイズでなければならず(起動時にmemdisk loループマウントできるようにするため)、1つのNTFSパーティションのみを持つMBRスキーム(起動ウィンドウに必要)を持つ仮想HDDです。 VHD自体はNTFS GPTパーティションに保存されます。このVHDファイルはウィンドウの分離を行い、各ウィンドウには独自のBCDがあり、すべて同じBCDを使用しないため、ブート時にWindowsブートメニューを表示する必要はありません。
そのVHD内では、パーティションはnt60ブートコードとBCDにのみ使用されます。このようなVHDに32MiBを使用しましたが、2MiB近くしか無料にならないため、サイズを小さくしたり、すべてのロケールBCDディレクトリを配置したりしないでください。
このすべてを機能させるには、nt60コードとBCDをそのVHDファイルに配置する必要があります。そのため、VHDファイルをマウントする必要があります。これはdiskpartで実行でき、インストールメディアでも実行できます。
理論的には、インストール時にそのVHDをマウントし、そこにnt60コードとBCDを配置する場合、インストールで続行できるようにする必要があります(MBRディスクが表示され、事前に構成されていると考える必要があります)別のウィンドウで)。
多くの32ビットWindows Homeバージョン(Vistaから10)で試してみましたが、すべてブートnt60コードとBCDがある仮想MBRディスクがブート時に表示されるため、すべてGPTディスクから正常にブートします。
今、私は別のアプローチ/テストを試みています:
プライマリパーティションが存在しない場合、Windowsは起動できませんが、nt60ブートコードとBCDなどを配置するプライマリNTFSパーティションを持つ仮想MBRディスクを使用するトリックを使用します。ウィンドウごとに1つ。
Grub2は(ほとんどのLinuxなどと同様に)論理パーティションの内部からブートできるため、概念的には動作する必要がある場合もあります。
なぜ私はそのような複雑なことをすべてするのですか?簡単な答えは、100%暗号化、各ウィンドウに独自のパスワードなどがあります。
複雑な答え:
そのため、GPTスキームでは、DiskCryptorは起動時に動作せず、ソースコードを読み取り、起動時にGPTパーティションをマウントするコードがないため、:\ Windows\System32\Winload.exeが見つからないため、Windowsはブート。ソースコードをダウンロードする前に2台の物理HDDでテストしましたが、気が狂っていたので、ブート時にGPTマウント用のソースコードが見つからないソースコードをダウンロードすることにしました。
DiskCryptorはブート時に1つ以上のMBRパーティション(同じパスワードを使用するものすべてがマウントされます)を自動マウントできるため、100%拡張パーティションの方法を試しています。
なぜ物理プライマリパーティションを配置して、そこにnt60ブートodeとBCDのものを保存しないのですか?そうすれば、すべてのウィンドウをネイティブモードでインストールおよび起動でき、余分なものは必要ありません。しかし、それらは100%分離されず、そのパーティションを共有します。したがって、パーティションにひどく触れると、誰も起動できなくなり、再びディスクの100%を暗号化します(ブートセクタではなく、パーティションテーブルではなく、すべてのパーティション)。分離モードでは使用できません。起動時にすべてのウィンドウに少なくとも1つのパスワードを使用する必要があります。
実際のシナリオを想像してください:
最良のアプローチは、外部のSATAディスクを使用して(内部にあるかのように見える)それぞれが自分で運ぶことです。
しかし、私はそれが内部などであることを望みます.
本当の動機は、物事を一生懸命に、複雑に、好きなことをやるのが好きなことです。私は自分のスキルをテストするのが大好きで、多くを学ぶ方法でもあります。
あなたの心を願って、今ではウィンドウを起動する別の方法にもっと開かれています。
PD:Linuxでは、このことははるかに簡単です。Windowsでは、必要なものよりも困難になります(nt60 code load bootmgr。これは、winload.exeを読み取ろうとするMBRプライマリアクティブパーティションのみのハードコードされた検索を行います。など)。
同じハードディスク上に予備のNTFSプライマリパーティションが既にある場合は、拡張/論理パーティションにWindowsをインストールできます。 Windowsインストーラーは、選択した拡張パーティションにOSをインストールしますが、ブートローダーをインストールするにはNTFSプライマリパーティションが必要です。
Windowsをインストールしたら、必要に応じて予備のNTFSプライマリパーティションを削除できます。ただし、Windowsをインストールした論理パーティションにBCDブートローダーをインストールする必要があります。 Windowsリカバリコマンドプロンプト(WindowsインストールCDを使用)を起動した後、bcdboot
を使用します。状況に応じてドライブ文字を置き換えてから、次のコマンドを実行します...
bcdboot i:\windows /s i:
ここで、i:は、WindowsがインストールされているパーティションにブートCDによって割り当てられたドライブ文字です。 Windowsのdiskpartコマンドを使用して、どのドライブ文字がどのボリュームに割り当てられているかを調べます。
このパーティションから直接起動するようにGRUB2を構成する必要があります。 Ubuntuを起動し、次のコマンドを実行します...
Sudo update-grub
これで、GRUB2メニューにWindowsがオプションとしてリストされます。
注:複数のバージョンのWindowsがマシンにインストールされている場合は、grub.cfgファイルでGRUB2 parttoolコマンドを使用して、ブート時に他のOSのパーティションを非表示にすることを検討する必要があります。
parttool (hd0,2) hidden- # Unhide the partition for current OS
parttool (hd0,3) hidden+ # Hide the partition for the other OS