読者です 読者をやめる 読者になる 読者になる

鯖構築運用雑記

管理してる鯖関連とか技術とかの雑記をメモしておく。

Thinkpad x220 に ArchLinux を入れようとして3回失敗した話。

3度めの正直でなんとか入ったというのが正直な感想です。ブートローダーとはお友達になれなさそうです。

ちょっと前におもちゃとして購入した ThinkPad X220

f:id:kayo_tozaki:20150620165331j:plain

こいつには、元々Win7Pro(32bit)が入っていました。

ストレージはSSD256GBに自分で換装して、いざ本格的に使っていこうと思い立ったわけで。

その時のメモです。

何がしたかったのか。

Windows7とArchLinuxを共存させて運用したい

ブートローダーはWindowsの物を使って、ArchとWinを使い分けたいと考える。

どこを参考にしてインストールしたのか?

参考にさせていただいたリンクをぺたぺた。

  1. X220にArch Linuxを入れた時の覚書
    こちらは、EFI対応。インストール後に入れるものが書いてあるので参考 *1

  2. Windows7とArchLinuxのデュアルブート(微妙に失敗…)
    ここでブートローダーのインストール方法を学ぶ。

  3. Windows7とArchLinuxのデュアルブート環境構築
    ソフトで考えると、ここが一番マッチ。完全にぱくr参考にさせていただきました

  4. WindowsのブートマネージャーでWindowsとLinuxのデュアルブート
    このサイトで夢を見て、最後に参考にさせていただいた。

  5. マルチブート時のブートマネージャー画面の設定 (私の覚え書)
    ブートローダーの表示を設定をするのに参考。

インストール手順

そこら中に書かれてるので、簡単に。

  • ArchLinuxのライブISOを作って、そこから起動する。
  • wifi-memuWifiに接続する or 有線のup
    • wifi-menu
  • キーレイアウトの変更と、ローカライズ設定各種
    • loadkeys
  • パーティション分け と フォーマット と マウント
    • cfdisk
    • mkfs.ext4
  • ミラーリストの修正 と ArchLinux本体のインストール
    • ミラーリストは筑波の方が早かった(体感)
    • pacstrap
  • arch-chrootした後、 インストールしたArchの各種設定
    • 3 のサイトに書かれてることをやっただけ。他のことをやるとより便利に。
  • ブートローダーのインストール
    • grub-install

grub-installでの注意点

今回一番詰まったのかここ。次点でパーティションでのブートフラグの付け方。

Windows7は基本Legacyなので、EFIブートローダーを入れると、Windowsがつかなくなります(当たり前・2回目の失敗要因)

なので、コマンドはこうなります。

$ grub-install --target=i386-pc --recheck --force=/dev/sdXX

インストール先デバイスは、ブートフラグがついてるパーティション自体です。
間違えても、/dev/sdX とディスクにインストールしないように...(1回目の失敗要因) *2

ブートローダーインストール後

この状態だと、Windowsしか起動しないので、WindowsブートローダーにArchのGRUBを登録します。
登録方法は、4. のリンクを参考に。ただし、ライブISOから出ないと出来ないので、マウントポイントを適当に作って、Windowsのディスクをマウントしないといけませんのでご注意を。

Windowsでの調整

コマンド自体は、4. のサイト様に書かれている通りなのですが、このままだと、ブートローダーが出ません。なので、ブートローダーを出すようにします。

そこで 5. のリンクの方法で数秒間表示させます。

これで選択できるようになります。


ざっとですがこのようにして、1日が潰れた代償にArchLinuxとWindows7デュアルブート環境がてにはいりましたとさ。

まとめ

失敗の原因は

  1. UFIのブートローダーをMBRに上書き。Windowsブートローダー消失
  2. LegacyのブートローダーをMBRに上書き。Windowsの(ry
  3. ブートローダーは闇。

以上。駄文ですが。

*1:ただし、これの執筆中はArchLinuxのインストールが終わった段階。

*2:GRUBメインで使うならおkのはず。確認してないし、やる気もない