Windows とのデュアルブート

提供: ArchWiki
2015年11月3日 (火) 17:43時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

この記事では Arch と Windows を共存させる方法を簡単に説明しています。

重要情報

UEFI Secure Boot

Windows 8/8.1 がプリインストールされている場合、デフォルトで UEFI-GPT モードで起動するようになっており UEFI Secure Boot が有効になっています (ユーザーによって手動で無効にできます)。そしてファームウェアのレガシー BIOS サポート (CSM) はデフォルトで無効になっています (ファームウェアがサポートしている場合、ユーザによって手動で有効にできます)。以上のことは全ての OEM プリインストールで Microsoft によって強制されていることです。

Arch Linux のインストールメディアは現在 Secure Boot をサポートしていますが、ユーザーが手動で起動時に HashTool をセットアップするように設定する必要があります。Arch Linux を起動する前に UEFI Secure Boot を無効化することが推奨されます。Secure Boot を無効にしても Windows 8/8.1 は問題なく起動できます。

UEFI Secure Boot のサポートを無効化するには物理的にコンピュータにアクセスして、ファームウェアの設定で Secure Boot オプションを無効化する必要があるというのが唯一の問題です。Microsoft はリモートで、またはプログラムを使って Secure Boot を無効化する方法を一切認めていません。

高速スタートアップ

Windows 8 には高速スタートアップという新しい機能が含まれており、シャットダウンを実際に行う代わりにハイバネートをすることで起動時間を短縮します。Windows がハイバネートを行なっているときに、他の OS にデュアルブートしてファイルに変更を加えてしまうと、ファイルシステムのデータを消失してしまう可能性があります。ファイルシステムを共有する予定がない場合でも、EFI 環境では ESP が破壊されるおそれが存在します。従って、Windows 8 を使っているコンピュータでは、Linux をインストールする前に ここ に記述されているようにして高速スタートアップを無効にしてください。

ハイバネートされたディスクを読み書きでマウントすることを防ぐセーフガードが NTFS-3G には追加されています が、Linux カーネルの NTFS ドライバーにはそうしたセーフガードが存在しません。

Windows のファイル名の制限

Windows ではファイルパスが 260 文字 以下までに制限されています。

また、Windows はファイル名で 特定の文字を使用禁止 にしています。これは昔の DOS の名残です:

  • < (小なり)
  • > (大なり)
  •  : (コロン)
  • " (ダブルコロン)
  • / (スラッシュ)
  • \ (バックスラッシュ)
  • | (縦線またはパイプ)
  •  ? (クエスチョンマーク)
  • * (アスタリスク)

以上の制約は Windows のものであって NTFS にはありません、つまり NTFS パーティションを使用する他の OS は影響を受けません。Windows はこれらのファイルを検出するのが出来なくて chkdsk を実行すると大抵は削除しようとします。

インストール

Linux/Windows のデュアルブートをセットアップする場合、最初に Windows をインストールするのが推奨されます。Windows はディスクの一部を使ってパーティションを作ります。Windows のセットアップが終わったら、Linux のインストール環境にブートして、既存の Windows のパーティションには触れずに Linux 用のパーティションを作成することができます。Windows をインストールすると、Linux のブートローダーから使うことができる EFI System Partition が作成されます。

BIOS 環境

Linux のブートローダーを使う

GRUB もしくは Syslinux を使うことができます。

Windows のブートローダーを使う

このセットアップの場合 Windows のブートローダーが GRUB を読み込んでから Arch を起動します。

Windows 7/8/8.1 のブートローダー

以下のセクションには http://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/ からの引用が含まれています。

他の設定は通常のインストールと変わりありません。ドキュメントによっては Windows のブートローダーによってロードされるパーティションはプライマリパーティションでなければならないと言及していますが、拡張パーティションも問題なく使用できます。

  • Linux 下でコマンドシェルに以下を入力してブート情報のコピーを取って下さい:
my_windows_part=/dev/sda3
my_boot_part=/dev/sda5
mkdir /media/win
mount $my_windows_part /media/win
dd if=$my_boot_part of=/media/win/linux.bin bs=512 count=1
  • Windows を起動して下さい、FAT32 パーティションが見えているはずです。linux.bin ファイルを C:\ にコピーして下さい。そして管理者権限で cmd を実行します (スタート > 全てのプログラム > アクセサリ から コマンドプロンプト を右クリックして 管理者として実行 を選択):
bcdedit /create /d “Linux” /application BOOTSECTOR
  • BCDEdit はエントリの英数字による識別子を返します。以下、それを {ID} と称します。{ID} を実際に表示された識別子で置き換えてください。例えば {ID} は {d7294d4e-9837-11de-99ac-f3f3a79e3e93} などとなります。
bcdedit /set {ID} device partition=c:
bcdedit /set {ID}  path \linux.bin
bcdedit /displayorder {ID} /addlast
bcdedit /timeout 30

再起動して下さい。Windows のブートローダーを使うことにより、例えば Dell Precision M4500 の二番目の電源ボタンを Windows の代わりに Linux を起動するようにすることができます。

Windows 2000/XP のブートローダー

こちらの方法については http://www.geocities.com/epark/linux/grub-w2k-HOWTO.html を見て下さい。おそらく Linux ブートローダーを使わずにこの方法を使うはっきりとした利点はありません。/boot パーティションが必要で、おそらく設定の難易度は上がります。

UEFI 環境

systemd-bootrEFInd はどちらも Windows Boot Manager \EFI\Microsoft\Boot\bootmgfw.efi を自動で検出してブートメニューに表示します。そのため手動の設定は必要ありません。

GRUB(2) の場合 GRUB#UEFI-GPT モードでインストールされた Windows のメニューエントリ に従って下さい。

Syslinux (バージョン 6.01) や ELILO は他の EFI アプリケーションのチェインロードをサポートしていないため、\EFI\Microsoft\Boot\bootmgfw.efi をチェインロードするのに使うことはできません。

新しいバージョンの Windows が入っているコンピュータでは Secure Boot が有効になっていることがあります。Secure Boot を無効にするか、インストールメディアを Secure Boot に対応させるかのどちらかの作業をする必要があります。

トラブルシューティング

Couldn't create a new partition or locate an existing one

Windows 8.1 のインストール USB スティックは MBR パーティションテーブルを必要としており、存在しない場合、パーティションは作成されるのにかかわらず、"Couldn't create a new partition or locate an existing one" と出力されます。

時刻系

  • 推奨: Arch Linux と Windows のどちらも UTC に設定します。簡単なレジストリの修正が必要です。また、ハードウェアクロックが localtime にデフォルトで戻るため、Windows がオンラインで時間の同期をすることができなくなります。時刻あわせ (NTP sync) をしたいときは、Arch Linux 側で ntpd を使うのが好ましいです。
  • 非推奨: Arch Linux を localtime に設定して NTPd のような時刻関係のサービスを無効にします。こうするとハードウェアクロックの修正の面倒を Windows に押し付けることになるので、一年に夏時間が入るときに少なくとも2回(春と秋に)は Windows を起動しないといけないことを覚えておく必要があります。Windows をしばらく起動しなかったら時計が1時間すすんだりおくれたりするのは何故?とフォーラムで聞くのはやめましょう。

参照