「Windows とのデュアルブート」の版間の差分
細 (→UEFI 環境) |
細 (1版 をインポートしました) |
(相違点なし)
|
2015年1月6日 (火) 22:40時点における版
この記事では 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
パーティションにインストールしてください。
- 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 に押し付けることになるので、一年に夏時間が入るときに少なくとも2回(春と秋に)は Windows を起動しないといけないことを覚えておく必要があります。Windows をしばらく起動しなかったら時計が1時間すすんだりおくれたりするのは何故?とフォーラムで聞くのはやめましょう。