背景:最近、環境を区別するためにホームデスクトップに2つのシステムを配置する必要がありました。 Ruby on Railsでの開発用のKubuntu(リモートで作業しているため)、および空き時間にあらゆる種類のおもちゃ用のWindows。 数年前は非常に単純でした。Windows用のパーティションとLinux用のパーティションが1つあり、ブートローダーはMBRに書き込まれました。 ただし、技術はまだ止まっておらず、デュアルブートのセットアップが少し変更されていることがわかりました。
それでは始めましょう。
用語
UEFI (Unified Extensible Firmware Interface、Unified Extensible Firmware Interface)は、BIOS(Basic Input Output System)の代わりとしてIntelによって開発されました。 16ビットBIOSとは異なり、UEFIは32ビットまたは64ビットモードで動作します。これにより、複雑なプロセスにより多くのメモリを使用できます。 さらに、UEFIは見栄えがよく、マウスがサポートされています。
外観:

GPT (GUIDパーティションテーブル)はUEFI仕様の一部です。 UEFIは、BIOSがMBRを使用するのと同じ方法でGPTを使用します。
私の意見では、GPTとMBRの主な違いは次のとおりです。
- パーティションの数 :MBRは4つのパーティションのみをサポートします。 あなたはもっと多くのことをすることができますが、拡張パーティションを介してのみ、これは制限のハックです。 GPTは最大128個のパーティションをサポートします。
- ディスクサイズ :MBRは最大2TBのディスクをサポートし、GPTは最大9.4ゼッタバイト(= 9.4×10 ^ 21バイト、または条件付きで1000 TB)をサポートします
- 起動順序 :以前、BIOSはMBRをロードし、ディスクの各パーティションのブートローダーのアドレスが含まれていました。 UEFIはGPTを読み取り、テーブルでefiタイプのすべてのパーティション(ローダーを含む)を見つけ、それらをメモリにロードします。 これについては、後ほど例を使用して分析します。
私たちは何をしますか:
空の1 TB HDDに次のOSをインストールします。
- Windows 8.1 x64 Windowsは、32ビットアーキテクチャのWindows 8および64ビット( ソース )のWindows Server 2003およびWindows Vistaで始まるGPTからの起動をサポートしています。
- Kubuntu 15.04 。 理論的には、Grub2をサポートするディストリビューションが適切であり、個人的にはKubuntuを好みます。
注意:マザーボードはUEFIをサポートしています
ディスク故障
まず、Windows 8をインストールします 彼女は自動的にGPTを使用します。
内訳は次のようになります(曲線ショットはごめんなさい):

Windowsはデフォルトで4つのパーティションを作成します。
- リカバリー(300Mb)。 明らかに、システムの復元に使用されます。 そのままにしておきます。
- EFIパーティション(100MB)。 これはシステムタイプとしてマークされています(Microsoftは技術的な名前で呼び出すことを好みません)。 実際、ローダーはここに書かれています。
- MSR(128MB、 Microsoft予約済みパーティション )。 それがなぜ必要なのか、私には謎のままです。 そこにはデータはなく、将来のあいまいな目的のために予約された空の場所だけです。
- メインセクション。 3つに分割します。Windowsの場合は200ギガバイト、データパーティションの場合は500ギガバイト、残りはチェックせずに残します(後でKubuntuをインストールするときにフォーマットします)。
Windows自体のインストールをスキップします。 すべてが標準的で明確です。
USBからKubuntu Liveを起動します。
EFIセクションを確認します。
kubuntu@kubuntu:~$ efibootmgr BootCurrent: 0003 Timeout: 0 seconds BootOrder: 0000,0003,0001 Boot0000* Windows Boot Manager Boot0001* Hard Drive Boot0003* UEFI: JetFlashTranscend 16GB
Boot0000-Windowsブートローダー
Boot0001-デフォルトのブートローダー
Boot0003-Kubuntu Liveのフラッシュドライブ
ブートローダーリストは、MBRと同じ物理ディスクにマッピングされないことに注意してください。 NVRAMに保存されます。
マウントすることで、このセクションの内容をすぐに確認することもできます。
kubuntu@kubuntu:~$ sudo mkdir /media/efi kubuntu@kubuntu:~$ sudo mount /dev/sda2 /media/efi
次のファイルがあります。
EFI |--Boot | |--bootx64.efi # |--Microsoft |--Boot |--bootmgfw.efi # |--#
すべてが正常であることを確認してください。 ここで、ディスクのパーティション分割を続行します(KDE Partition Managerを使用)。

最初の5つのセクションは同じままです。 Kubuntuがセクションをどのように定義したかに注目してください。
- sda2はFAT32として定義されています。 これはほとんど真実です、なぜなら EFIタイプのファイルシステムはFATに基づいており、厳密な仕様のみです。
- sda3(MSR)は決定されませんでした。 そのようなファイルシステムはありません。
ext4でKubuntuのパーティションをフォーマットし、スワップ用のパーティションを選択するだけです。
スワップについて一言。 スワップ時にSQRT(RAM)から2xRAMに割り当てることをお勧めします。 なぜなら 16 GBのRAMがあり、少なくとも4 GBのスワップが必要です。 使用される状況はほとんど想像できませんが、デスクトップを休止状態に変換せず、16ギガを超える非常に重いプログラムを使用しません。
PSスワップパーティションマネージャーでパーティションをフォーマットすると、Kubuntuがスワップパーティションを自動的にマウントするという事実に関連するエラーが生成される場合がありますが、これらのエラーは結果に影響しません。
したがって、最終的な内訳:

正しいデュアルブートの最も重要なことです。 Kubuntuをインストールする場合、ブートローダーをインストールする場所を選択することが重要です。

もちろん、EFIセクションを指しています。
Kubuntuのインストールが完了したら、システムにアクセスして、efiパーティションに表示されているファイルを確認します(これ以上マウントする必要はありません)。
user@kubuntu:~$ sudo ls /boot/efi/EFI Boot Microsoft ubuntu user@kubuntu:~$ sudo ls /boot/efi/EFI/ubuntu grub.cfg grubx64.efi MokManager.efi shimx64.efi
ブートローダーのリストがどのように見えるか見てみましょう:
user@kubuntu:~$ efibootmgr -v BootCurrent: 0002 Timeout: 0 seconds BootOrder: 0002,0000,0003,0001 Boot0000* Windows Boot Manager HD(2,96800,32000,c4f37e07-0441-4967-a1ac-75fb5a36e4f3)File(\EFI\Microsoft\Boot\bootmgfw.efi) Boot0001* Hard Drive BIOS(2,0,00) Boot0002* ubuntu HD(2,96800,32000,c4f37e07-0441-4967-a1ac-75fb5a36e4f3)File(\EFI\ubuntu\shimx64.efi) Boot0003* ubuntu HD(2,96800,32000,c4f37e07-0441-4967-a1ac-75fb5a36e4f3)File(EFI\Ubuntu\grubx64.efi)
ブート時の外観は次のとおりです。

そして、これらのブートローダーはUEFIからすぐに利用できます(古いBIOSでは、これは不可能でした-ディスクの選択があっただけで、彼はブートローダーが何であるかを知りませんでした):

最後に、デュアルブートが正しく機能するには、Windowsで高速ブートを無効にする必要があります。 これは、データの損失につながる可能性がある非常に悪い機能です。