これは Arch/Windows 共存の様々な方法について詳しく説明した記事です。
- Important information
- Windows UEFI vs BIOS limitations
- インストールメディアの制限
- Bootloader UEFI vs BIOS limitations
- UEFI Secure Boot
- Fast Startup and hibernation
- Windows の設定
- Windows ファイル名の制限
- インストール
- Windows before Linux
- BIOS systems
- UEFI システム
- Linux before Windows
- UEFI firmware
- Troubleshooting
- 新しいパーティションを作成したり既存のパーティションを検索できない
- Windows をインストールした後に Linux を起動できない
- Restoring a Windows boot record
- Time standard
Important information
Windows UEFI vs BIOS limitations
Microsoft は使用する Windows のバージョンによってサポートできるファームウェアブートモードとパーティショニングスタイルに制限をつけています:
This article or section requires expansion.
- Windows XP の x86 32-bit と x86_64 (x64 とも呼ばれる) (RTM と全てのサービスパック) の両方は、どのディスク (MBR か GPT) からも UEFI モード (IA32 か x86_64) で起動することやGPTディスクから BIOS モードで起動することもサポートしません。
- Windows Vista または 7 x86 32 ビット (RTM およびすべての Service Pack) バージョンは、MBR ディスクからの BIOS モードでの起動のみをサポートし、GPT ディスクからの起動はサポートしません。 x86_64 UEFI または IA32 (x86 32-bit) UEFI ブートはサポートされていません。 それらは BIOS ブートのみをサポートし、MBR ディスクからのみです。
- Windows Vista RTM x86_64 (RTM のみ) 版は、GPT ディスクからではなく、MBR ディスクからのみ BIOS モードでのブートをサポートします。 x86_64 UEFI または IA32 (x86 32-bit) UEFI ブートはサポートしません。
- Windows Vista (SP1 以上、RTM ではありません) と Windows 7 x86_64 版は、GPT ディスクのみから x86_64 UEFI モードでのブート、または MBR ディスクのみから BIOS モードでのブートをサポートしています。 それらは GPT/MBR ディスクからの IA32 (x86 32-bit) UEFI ブート、MBR ディスクからの x86_64 UEFI ブート、または GPT ディスクからの BIOS ブートをサポートしません。
- Windows 8/8.1 x86 32-bit は GPT ディスクからのみの IA32 UEFI モード、または MBR ディスクからのみの BIOS モードでのブートをサポートします。 GPT/MBR ディスクからの x86_64 UEFI ブート、MBR ディスクからの x86_64 UEFI ブート、GPT ディスクからの BIOS ブートはサポートされていません。 市場では、IA32 (U) EFI を搭載したシステムは、古い Intel Mac (2010年以前のモデル?) と Intel Atom System-on-Chip (Clover Trail と Bay Trail) Windows タブレットだけで、IA32 UEFI モードと GPT ディスクからのみ起動することが知られています。 IA32 UEFI ブート、MBR ディスクからの x86_64 UEFI ブート、または GPT ディスクからの BIOS ブートはサポートしていません。
In case of pre-installed Systems:
- Windows XP, Vista または 7 32-bit がプリインストールされたすべてのシステムは、サービスパックレベル、ビットレート、版 (SKU) またはファームウェアでの UEFI サポートにかかわらず、デフォルトで BIOS/MBR モードで起動させます。
- Windows 7 x86_64 がプリインストールされたシステムのほとんどは、Service Pack のレベル、ビット数、エディション (SKU) に関係なく、デフォルトで BIOS/MBR モードでブートします。 Windows 7 がプリインストールされたごく少数の最近のシステムは、デフォルトで x86_64 UEFI/GPT モードで起動することが知られています。
- Windows 8/8.1 がプリインストールされたすべてのシステムは、UEFI/GPT モードで起動します。 ファームウェアのビット数は Windows のビット数に一致します。つまり、x86_64 Windows 8/8.1 は x86_64 UEFI モードで起動し、32-bit Windows 8/8.1 は IA32 UEFI モードで起動します。
Windows のブートモードを検出する最良の方法は、次のとおりです。
- Boot into Windows
-
Win+R
キーを押して実行ダイアログを起動する - 実行ダイアログで
msinfo32.exe
とタイプして Enter - システム情報ウィンドウで、左のシステムサマリーを選択して、右のBIOSモード項目の値を確認する
- 値が
UEFI
ならば Windows は UEFI/GPT モードで起動していることになります。
一般に、Windows は使用するファームウェア モードに応じてパーティション タイプを強制的に変更します。 Windows が Legacy BIOS モードで起動された場合、MBR ディスクにのみインストールできます。 これはWindowsのインストーラーが強制する制限で、2014年4月現在、UEFI/MBRまたはBIOS/GPT構成でWindowsをインストールする方法は公式(Microsoft)にサポートされていない。 したがって、Windows は UEFI/GPT ブートまたは BIOS/MBR 構成のどちらかのみをサポートしています。
このような制限は Linux カーネルによって強制されませんが、どのブート ローダーを使用するか、またはブート ローダーの設定方法によって異なる場合があります。 ブートローダーのインストール方法は、ファームウェアの種類やディスクのパーティション構成に依存するため、WindowsとLinuxを同じディスクから起動する場合は、Windowsの制限を考慮する必要があります。 Windows と Linux が同じディスクからデュアルブートする場合は、Windows の方式、すなわち UEFI/GPT ブートまたは BIOS/MBR ブートに従うことが推奨されます。 詳細は https://support.microsoft.com/kb/2581408 を参照してください。
インストールメディアの制限
Intel Atom System-on-Chip タブレット (Clover trail と Bay Trail) は、Microsoft Connected Standby Guidelines for OEM により、レガシー BIOS (CSM) サポートなしの IA32 UEFI ファームウェアのみを提供します (x86_64 UEFI システムとは異なります)。 これらのシステムではレガシー BIOS がサポートされておらず、Arch Official Install ISO (FS#53182) に 32-bit UEFI ブートがないため、公式インストールメディアはこれらのシステムで起動することができません。 より詳しい情報と回避策については Unified Extensible Firmware Interface#UEFI firmware bitness を見て下さい。
Bootloader UEFI vs BIOS limitations
Most of the linux bootloaders installed for one firmware type cannot launch or chainloader bootloaders of the other firmware type. つまり、Arch があるディスクに UEFI/GPT または UEFI/MBR モードでインストールされ、Windows が別のディスクに BIOS/MBR モードでインストールされている場合、Arch が使う UEFI ブートローダは他のディスクに BIOS インストールされた Windows をチェーンロードすることができないのです。 同様に、Arch が BIOS/MBR または BIOS/GPT モードでインストールされ、Windows が UEFI/GPT でインストールされている場合、Arch が使用する BIOS ブートローダは他のディスクの UEFI インストールされた Windows をチェーンロードすることができません。
唯一の例外は Apple Mac の GRUB で、UEFI モードの GRUB は appleloader
コマンドで BIOS インストールされた OS を起動できます (Apple 以外のシステムでは動きません)、そして rEFInd は技術的には UEFI システムからレガシ BIOS OS のブートをサポートしますが、作者 Rod Smith が言うように Apple ではない UEFI システムでは常に動くわけではありません。
しかし、もし Arch が BIOS/GPT で一つのディスクにインストールされ、Windows が BIOS/MBR モードで別のディスクにインストールされているなら、ブートローダが別のディスクからチェーンロードする機能を持っていれば、Arch が使う BIOS ブートローダは別のディスクの Windows を起動することができます。
Windows セットアップは 100 MiB EFI システムパーティションを作成するので (Advanced Format 4K Native ドライブは 260 MiB ESP が作成されますが) 複数のカーネルの使用は限定されています。 回避策は次のとおりです:
- ESP を
/efi
にマウントし、ファイル システム ドライバーを持ち、他のパーティションに存在するカーネルを起動できるブート ローダーを使用します。 - EFI システム パーティションを拡張し、通常は回復パーティションのサイズを小さくするか Windows パーティション (UUID が変更されます) を移動させます。
-
esp/EFI/Microsoft/Boot/Fonts/
にある不要なフォントのバックアップと削除。 -
esp/EFI/Microsoft/Boot/
にある不要な言語ディレクトリのバックアップと削除 (たとえば、en-US
のみ残す)。
UEFI Secure Boot
すべてのプリインストール Windows 8/8.1 システムでは、UEFI/GPT モードでの起動とデフォルトで UEFI Secure Boot が有効となります。
Arch Linux のインストールメディアは、Secure Boot をサポートしていません。 Secure Boot#Booting an installation medium を参照してください。
Arch Linux を起動する前に、ファームウェアのセットアップで UEFI Secure Boot を手動で無効にすることが推奨されます。 Windows 8/8.1 はセキュアブートが無効になっていても正常に起動し続けるはずです。 UEFI Secure Boot サポートを無効にする唯一の問題は、ファームウェアのセットアップでセキュアブートオプションを無効にするためにシステムへ物理的にアクセスする必要があることです、Microsoft は全ての Windows 8/8.1 でリモートまたはプログラム(OS 内から)でセキュアブートを無効にする方法を明確に禁止しています。1 プレインストールされたシステム
Fast Startup and hibernation
Hibernate できる OS は 2 つあります。Windows を休止して Linux (または別の OS) を起動するか、Linux を休止して Windows を起動するか、両方の OS を休止することができます
同じ理由で、Windows と Linux で 1 つの EFI System Partition を共有している場合、ハイバネーション (または高速起動を有効にしてシャットダウン) してから Linux を起動したり、ハイバネーションしてから Linux を起動すると EFI System Partition が損傷することがあります。
ntfs-3g では、ハイバネーションした NTFS ファイルシステムの読み取り/書き込みマウントを防止するセーフガードが追加されましたが、Linux カーネル内の NTFS ドライバーにはそのようなセーフガードはありません。 これらのファイルシステムは、それらのための Windows ドライバーをインストールしない限り、考慮する必要はありません。
Windows の設定
高速スタートアップは、Windows 8 以上の機能で、起動時間を短縮するために実際にシャットダウンするのではなく、コンピューターを休止させるものです。
- 高速スタートアップを無効にしてハイバネーションを無効にする
- 高速スタートアップを無効にしてハイバネーションを有効にする
- 高速スタートアップを有効にしてハイバネーションを有効にする
高速スタートアップを無効にする手順は、Windows 8 ではここ、Windows 10 ではここで説明されています。
Disable Fast Startup and disable hibernation
これは最も安全なオプションで、問題がよくわからない場合、OS から別の OS に再起動する際にユーザーの意識が最も不要になるため、推奨されます。 Windows と Linux 間で同じ EFI システム パーティションを共有できます。
Disable Fast Startup and enable hibernation
このオプションは、一方の OS から他方の OS に再起動する際にユーザーの注意を必要とします。一般的な使用例である Windows が休止中に Linux を開始したい場合、
- WindowsとLinuxに別々のEFI システム パーティション (ESP) を使用し、Linux 用の ESP をWindows が確実にマウントしないようにしなければなりません。 ESP はドライブごとに 1 つしかないため、Linux 用の ESP は Windows 用の ESP とは別のドライブに配置する必要があります。 この場合、Linux が使用する ESP を Linux のルート パーティションとは別のドライブに配置すれば、Windows と Linux を同じドライブ上の異なるパーティションにインストールすることができます。
- ハイバネーション中に Windows によってマウントされた Linux のファイルシステムを読み取り/書き込みでマウントすることはできません。 この点には細心の注意が必要で、また、自動マウントの動作も考慮する必要があります。
- ハイバネーションではなく、Windows を完全にシャットダウンした場合は、ファイルシステムの読み取り/書き込みマウントが可能になります。
Enable Fast Startup and enable hibernation
「高速スタートアップを無効にしてハイバネーションを有効にする」場合と同じ考慮事項が適用されますが、Windows は完全にシャットダウンできず、ハイバネーションのみ可能なので、Windows によってマウントされたすべてのファイル システムをハイバネーション中に読み取り/書き込みマウントすることは決してできません。
Windows ファイル名の制限
Windows はファイルパスが 260 文字より短いと制限されることがある、で報告したように高速起動を再度有効にすることができます。
Windows はまた、DOS にまでさかのぼる理由で、ファイル名に特定の文字を使用できないようにします。
-
<
(より小さい) -
>
(より大きい) -
:
(コロン) -
"
(ダブルクォート) -
/
(スラッシュ) -
\
(より小さい) (バックスラッシュ) -
|
(縦棒またはパイプ) -
?
(疑問符) -
*
(アスタリスク)
これらはWindowsの制限でありNTFSではないのです。 NTFS パーティションを使用する他の OS は問題なく使用できます。 Windows はこれらのファイルを検出できず、chkdsk
を実行すると、ほとんどの場合、これらのファイルが削除されます。
NTFS-3G は windows_names オプション (fstab を参照) を通して新しいファイル名に Windows の制限を適用します。
インストール
Linux/Windows デュアルブートシステムの推奨セットアップ方法は、まず Windows をインストールし、ディスクをパーティションのために一部だけ使用する方法です。 Windows のセットアップが完了したら、Linux インストール環境で起動し、既存の Windows パーティションをそのままに、Linux 用のパーティションを作成およびサイズ変更できます。 Windows のインストールは Linux ブートローダが使用する EFI システムパーティションを作成します。
Windows before Linux
BIOS systems
Using a Linux boot loader
Using multi-boot supporting BIOS boot loader.
ウイングブートローダ
この設定において Windows ブートローダは GRUB を起動し、Arch を起動します。
Windows Vista/7/8/8.1 boot loader
This article or section needs language, wiki syntax or style improvements. 参考として Help:Style を参照してください。
この記事またはセクションの事実上の正確さは争われています。
WindowsブートローダにLinuxパーティションを表示させるには、作成するLinuxパーティションの1つをFAT32にする必要があります (この場合、/dev/sda3
)。 セットアップの残りの部分は、典型的なインストールと同様です。 Windowsブートローダーに読み込まれるパーティションはプライマリパーティションでなければならないと書かれているドキュメントもありますが、私は拡張パーティションでも問題なく使用できました。
- GRUB ブートローダーをインストールする場合、MBR ではなく
/boot
パーティションにインストールしてください。注意: 例えば、私の/boot
パーティションは/dev/sda5
です。 そこで私は GRUB を/dev/sda
ではなく/dev/sda5
にインストールしました。
- Linux では、コマンドシェルで次のように入力して、ブート情報のコピーを作成してください:
- Windows で起動して開いてみると、
C:\
に linux.bin ファイルが見えるはずです。 ここで、管理者権限で cmd を実行します (スタート > すべてのプログラム > アクセサリに移動し、コマンド プロンプトを右クリックして、管理者として実行を選択):
bcdedit /create /d "Linux" /application BOOTSECTOR
- BCDEdit はこのエントリに対して UUID を返し、残りのステップでは {ID} として参照することになります。 ID}は実際に返される識別子で置き換える必要があります。 ID} の例は {d7294d4e-9837-11de-99ac-f3f3a79e3e93} です。
bcdedit /set {ID} device partition=c:bcdedit /set {ID} path \linux.binbcdedit /displayorder {ID} /addlastbcdedit /timeout 30
再起動してお楽しみください。 私の場合、Dell Precision M4500 の 2 番目の電源ボタンを Windows ではなく Linux を起動するようにマッピングするために、Windows ブートローダーを使用しています。
UEFI システム
すでに Windows をインストールしている場合、GPT フォーマットのディスク上にいくつかのパーティションを作成しているはずです。
C:
, D:
and above….等価である。), Windows のディスクの管理ユーティリティを使用して、パーティションがどのようにラベル付けされ、どのタイプが報告されるかを確認してください。 これは、どのパーティションが Windows に不可欠で、他のパーティションは再利用できるかを理解するのに役立ちます。 Windows のディスクの管理ユーティリティは、Windows (NTFS) パーティションを縮小して、Linux 用の追加パーティションのためにディスク領域を解放するのにも使用できます。
必要に応じて、パーティション分割を進めることができます。
追加の EFI システムパーティションを作成してはいけないことに注意してください。
Windows / Linux デュアルブートを行うには、ブートローダは他の EFI アプリケーションのチェーンロードに対応している必要があります。 GRUB については、GRUB#Windows installed in UEFI/GPT mode でブートメニューエントリを手動で追加するか、GRUB#Detecting other operating systems で生成された設定ファイルに従います。
Linux before Windows
Linux/Windows デュアルブートシステムの推奨セットアップ方法は、最初に Windows をインストールすることですが、その逆の方法も可能です。 Linux の前に Windows をインストールするのとは対照的に、Windows 用のパーティション、たとえば 40GB 以上のパーティションをあらかじめ確保しておく必要があります。 あるいは、パーティションされていないディスク領域を用意するか、Linux インストールの中から Windows 用のパーティションを作成してサイズを変更してから、Windows インストールを起動します。
UEFI firmware
Windows はすでにある EFI システムパーティションを使用します。 先に述べたこととは対照的に、Windows 回復環境も Microsoft 予約パーティションもない、Windows 用の単一パーティションではだめなのかどうかは不明です。
Firmware で Secure Boot が無効になっていると仮定して、概要を説明します。
- Windows インストールを開始します。 intend パーティションのみを使用するように注意し、それ以外は Linux がインストールされていないかのように動作させます。
- #高速スタートアップとハイバネーション のセクションに従います。 いくつかの Linux ブートマネージャーが Windows ブートマネージャーを自動検出することは、#UEFI システムで既に言及されています。 新しい Windows インストールには高度な再起動オプションがあり、そこから Linux を起動することができますが、arch インストールメディアやライブ CD など、Linux を起動する他の手段を用意することをお勧めします。
Troubleshooting
新しいパーティションを作成したり既存のパーティションを検索できない
#Windows UEFI vs BIOS limitations を参照してください。
Windows をインストールした後に Linux を起動できない
Unified Extensible Firmware Interface#Windows changes boot order.
Restoring a Windows boot record
Bec convention (and for ease of installation), Windows is usually installed on the first partition and install its partition table and reference to its bootloader to the first sector of its partition.は、慣習上 (そしてインストールのし易さのため)、Windows を最初のパーティションにインストールして、パーティションテーブルとそのパーティションの最初のセクターにあるブートローダへの参照をインストールします。 誤って GRUB のようなブートローダを Windows パーティションにインストールしたり、他の方法でブートレコードを損傷した場合、それを修復するユーティリティを使用する必要があります。 マイクロソフトでは、ブートセクター修正ユーティリティFIXBOOT
とFIXMBR
というMBR修正ユーティリティをリカバリディスクに、あるいは時にはインストールディスクに収録しています。 この方法を使うと、第1パーティションのブートセクタ上の参照をブートローダファイルに、MBR上の参照を第1パーティションに、それぞれ修正することができます。 これを行った後は、本来の目的通りMBRにGRUBを再インストールする必要があります(つまり、GRUBブートローダをWindowsブートローダのチェーンロードに割り当てることができます)。
Windows の使用に戻したい場合は、MBR から最初のパーティションのブートセクターにチェーンする FIXBOOT
コマンドを使用して、Windows オペレーティングシステムの通常の自動ロードを復元できます。
MBR をインストールできる ms-sys
(AUR の ms-sysAUR パッケージ) という Linux ユーティリティがあることにも注意してください。 しかし、このユーティリティは現在、新しい MBR (すべての OS とファイルシステムをサポート) と FAT ファイルシステムのブートセクタ (別名ブートレコード。FIXBOOT
を使うのと同等) を書き込むことしかできません。 ほとんどの LiveCD はデフォルトでこのユーティリティを持っていないので、最初にインストールする必要がありますが、Parted Magic のような、このユーティリティを持っているレスキュー CD を見ることもできます。
まず、パーティション情報(テーブル)を再度書き込みます:
# ms-sys --partition /dev/sda1
次に、Windows 2000/XP/2003 MBR を書き込みます:
# ms-sys --mbr /dev/sda # Read options for different versions
そして、新しいブートセクタ(ブートレコード)を書き込みます:
# ms-sys -(1-6) # Read options to discover the correct FAT record type
ms-sys
は Windows 98, ME, Vista, 7 MBRも同様に書き込みます、ms-sys -h
を見てください。
Time standard
- お勧めします。 Windows の System time#UTC に従い、Arch Linux と Windows の両方を UTC を使うように設定します。 Windows のいくつかのバージョンでは、オンラインで時刻を同期するように設定すると、ハードウェアクロックが localtime に戻されます。 この問題は Windows 10 で修正されたようです。
- Not recommended: Arch Linux を localtime に設定し、すべての時刻同期デーモンを無効にしてください。 これは Windows にハードウェアクロックの補正をさせることになり、少なくとも年に2回 (春と秋) DST が始まるときに Windows を起動するのを忘れないようにする必要があります。 ですから、普段何日も何週間もWindowsを起動しない人が、なぜ時計が1時間遅れたり進んだりするのか、フォーラムで質問するのはご遠慮ください。
- デスクトップのショートカットから Windows を起動する
- デスクトップのショートカットから Windows パーティションにワンタイム起動する
- Windows 7/8/8.1/10 ISO to Flash Drive burning utility for Linux (MBR/GPT, BIOS/UEFI, FAT32/NTFS)
も参照してください。