# Windows and Arch Dual Boot (日本語)

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

## データを消失する危険性

### NTFS パーティションに残っているファイル

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

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

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

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

### 高速スタートアップ

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

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

## インストール

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

Windows 8 がプリインストールされた新しいコンピュータでは Secure Boot が使われるようになります。現在 Arch Linux では Secure Boot をサポートしていませんが、BIOS から Secure Boot を切ると Windows 8 が起動しなくなることがあります。Secure Boot を使わずに Windows 8 を起動するために、場合によっては BIOS オプションで Secure Boot と Fastboot の両方を止めなくてはなりません。しかしながら Windows 8 のブートで Secure Boot をオフにするのは潜在的なセキュリティのリスクがあります。よって、インストールされている Windows 8 はそのままにして別のハードドライブに Linux をインストールするのがベターな選択肢かもしれません - これなら GPT パーティションテーブルを使ってイチからパーティションを作成することが可能です。新しいハードドライブを用意し、コンピュータが2つのドライブを使えるようにする場合、将来のことを考えて2つめのドライブには ext4/FAT32/swap パーティションを作成していたほうが良いでしょう。ラップトップでは別のドライブを用意するのは難しい、あるいは不可能ということもありえます。今のところ、Secure Boot は信頼に足るような完全に安定した状態とは言えません、それをサポートしている Linux ディストリビューションでさえもです。

### BIOS 環境

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

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

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

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

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

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

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

- GRUB ブートローダーをインストールする際に、MBR ではなく `/boot` パーティションにインストールしてください。
  Note: 例えば、`/boot` パーティションが `/dev/sda5` の場合、GRUB を `/dev/sda` ではなく `/dev/sda5` にインストールします。詳しくは GRUB (日本語)#パーティションやパーティションレスディスクにインストールする を見て下さい。

- 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 環境

Gummiboot と rEFInd はどちらも 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 に対応させるかのどちらかの作業をする必要があります。

## 時刻系

- 推奨: Arch Linux と Windows のどちらも UTC に設定します。簡単なレジストリの修正が必要です。また、ハードウェアクロックが localtime にデフォルトで戻るため、Windows がオンラインで時間の同期をすることができなくなります。時刻あわせ (NTP sync) をしたいときは、Arch Linux 側で ntpd を使うのが好ましいです。

- 非推奨: Arch Linux を localtime に設定して NTPd のような時刻関係のサービスを無効にします。こうするとハードウェアクロックの修正の面倒を Windows に押し付けることになるので、一年に夏時間が入るときに少なくとも２回(春と秋に)は Windows を起動しないといけないことを覚えておく必要があります。Windows をしばらく起動しなかったら時計が1時間すすんだりおくれたりするのは何故？とフォーラムで聞くのはやめましょう。

## 参照

- Booting Windows from a desktop shortcut

Categories:

- Boot process (日本語)
- Getting and installing Arch (日本語)