« NetworkManager とか日本語設定とか | トップページ | EeePCのSSDにArch Linuxを入れました(GPT+Grub2で) »

2011/10/31

Arch LinuxをGPT + Grub2でインストールを行う

SSD環境の準備をしているのですが、ArchはSSD環境のパーティション管理にGPTをオススメしています。参考:Arch Wiki のSSDページ
でもGPTってgrub2かsyslinuxが必要なんですよね。Archのデフォはsyslinuxかgrub legacy です。
今更syslinux使いたくもないですし、grub2ならUbuntuで慣れています。
インストールの際にgrub2を使える方法はあるにはあるのですが、非常に複雑でかつ危険(簡単に起動しなくなるという意味で)なのでVMWare player上で練習してみることにしました。

  1. とりあえずVMWareに新規仮想マシンを作ります。以前と変わりません。

  2. 最初のlogin。root パスワード無し。
  3. km
    i386/qwerty/jp106.map.gz を選択。fontはSkip。
    まず最初にネットワークを動作させるようにしないとです。
    aif -p partial-configure-network
    Select a network interface には eth0 を指定。
    Do you want to use DHCP? にはy
    で、
    The network is configured.
    と出たら、念の為に
    ping -c 3 www.google.com
    でpingが通るかどうか確認します。

  4. GPTのセットアップ
  5. インストールして、まずパーティションを作ります。先にpacman のアップデートがかかりますが、それは当然Yで。
    本当はpacman -Syy の後に単独パッケージだけ入れるのはご法度なのですが、今回はライブCD環境なのでしょうがないです。多分出来るだけ新しいライブCD使えば問題ない・・・はず?
    pacman -Syy
    pacman -S gptfdisk
    gdisk /dev/sda

    ・最初に o を押してGPTのファイルシステム作成を開始(ディスクのデータは全て消えますので注意)、次に n でパーティション作成を開始。最後にw で書き込みです。
    ・GPT用のBIOS bootパーティションの作成(パーティション番号:1、2MiB、HexCode ef02) →
    ・Swap の作成256M(パーティション番号:5、開始:+(HDD容量[GB]×1024-256-2)M、終了:デフォ、HexCode 8200) →
    ・boot用の作成100M(パーティション番号:2、開始:デフォ、終了:+100M、HexCode:デフォ) →
    ・/用の作成7.5G(パーティション番号:3、開始:デフォ、終了:+(7.5*1024)M、HexCode:デフォ) →
    ・/home用の作成 残り(パーティション番号:4、開始:デフォ、終了:デフォ、HexCode:デフォ) →

    終わったらフォーマット。
    mkfs.ext2 /dev/sda2
    mkfs.ext4 /dev/sda3
    mkfs.ext4 /dev/sda4
    mkswap /dev/sda5
    

  6. さて、いよいよセットアップを開始します。もっともここまで来たらいつもとあまり変わりません。
  7. /arch/setup
    指示に従ってインストール。
    ちなみに以下はArch Linux Installation Frameworkでの作業になる訳ですが、選択してOKをするのにAlt+Oをやってはいけないので注意。自分は最初これが解らないでしらばくはまりました。正しくはOKにカーソルをタブで合わせてエンターキーです。キャンセルはいいんだけど。
    1. select Source
    2. core localが選択されているはずなので、そのままエンターキー。
    3. Set editor
    4. nanoを選択のままエンター。
    5. Set Clock
    6. Select region and timezone
      Asia → Tokyo
      Set time and date
      UTC → manual で時間合わせ。
    7. Prepare Hard Drive(s)
    8. Manually Configure block devices, filesystems and mountpoints を選びます。
      Partition Access Method には必ずuuid を使います。GPT使ってるんだから。
      Manage filesystems では、/dev/sda1 は未設定のまま。
      /dev/sda2 ext2 /boot
      /dev/sda3 ext4 /
      /dev/sda4 ext4 /home
      /dev/sda5 swap
      に各々マウントポイントを割り当てます。この時、必ずfilesystemを(re)createするか?という質問にはNoです。
      Yesにしちゃうと折角GPTでfdiskした苦労が水の泡です。設定したらDONEにカーソルを合わせてOK。

    9. Select Packages
    10. 最初にブートローダの選択画面出てきますがスキップします。
      base-develを追加選択。ユーザに選ばせてはいるがArchユーザなら事実上必須と思って良いでしょう。ちなみに選択するにはスペースキー。次の画面では何も選んでいません。
    11. Package install
    12. 特になし。480Mbyte位でした。
    13. Configure System
    14. nanoのコマンドは基本的にCtl + キーになっていて、画面下に表示されています。
      保存はCtl + Oでファイル名は絶対に変えずにリターン、終了はCtl + xですね。
      以前はこの時点でja_JPロケールの設定をやっていたのですが、tty1やtty3しか使わらない状態だと文字化けするので、この時点ではまだ設定しない方がいいと思います。 [/etc/rc.conf]
      LOCALIZATION section
      変更なし。

      HARDWARE section
      デフォルトのままです。
      MODULES=()
      NETWORKING Section
      DHCPを使っているので変更の必要があるのはHOSTNAMEとINTERFACESだけになりました。
      事前にaif -p partial-configure-network してあるとinterfaceも自動的に入力されていると思いますが、念のため確認。
      HOSTNAME="arch-test"
      interface=eth0
      address=
      netmask=
      gateway=
      DAEMONS Section
      netfsは自分は使わないのではずしました。他は特にいつもと変化無し。crondは不要だけど実機での予行演習としてそのままです。
      DAEMONS=(hwclock @syslog-ng network @crond)
      [/etc/fstab]
      /var/log をtmpfsでマウントします。また、いつものようにext4なファイルシステムにはnoatimeオプションを加えます。
      tmpfs                  /var/log tmpfs     nodev,noexec,nosuid 0      0
      [/etc/resolve.conf]
      変更なし。

      [/etc/locale.gen]
      ja_JP.UTF-8 UTF-8
      のみを非コメントアウト。ja_JP.EUC-JP EUC-JPはトラブルの元です。Ctl+w でja_JPを検索すると簡単に見つかります。
      en_US.ISO-8859-1 はコメントアウトします。

      [/etc/pacman.d/mirrorlist]
      # Japan 行下の2行を非コメントアウト。北陸先端科学技術大学院大学のサーバです。山形大じゃなくなったんですね。こいつをやらないとArchの元サーバはパンク状態だよ!とArchがのたまっていますので、忘れずに。

      [Root-Password]

      [Done]
      設定の適用を開始します。
    15. Install Bootloader
    16. 項目そのものに入らずにExit Installします。ブートローダをインストールしていないので、ここで再起動しちゃうと当然起動しません。

    17. root@archiso のプロンプトに戻ったら、念の為に
      ping -c 3 www.google.com
      でpingが通るかどうか確認します。 resolve.confの設定していないので、chroot後のためにresolve.conf の設定をコピーしておきます。
      cp /etc/resolv.conf /mnt/etc/resolv.conf

    18. 以下のコマンドを実行して、dm-modをロードした後、chroot環境に。
    19. modprobe dm-mod
      mount -o bind /dev /mnt/dev
      chroot /mnt bash

    20. pacmanでdbのシンクロをかけます。isoイメージが2011/08以前のものである人は pacman-db-upgrade も必要ですが、自分のように201108以降を使っている人は不要です。
    21. pacman -Syy
    22. データベースのシンクロが終わったらgrub2をインストールに入ります。
    23. 例によって最初にpacman アップデートしろと言われます。仰せの通りにアップデートします。また、grub-biosとコンフリクトしているので削除しないとダメです。
      floppyで大量のエラーメッセージが表示されますが気にしないで下さい。
      pacman -S grub2-bios
    24. grub2のインストールを続けます。
    25. grub_bios-install --boot-directory=/boot --no-floppy --recheck /dev/sda
      grub-mkconfig -o /boot/grub/grub.cfg

    reboot
    リブート後にgrub2 のスタート画面が出て、正常に起動すれば成功! ちなみに、ログインしたら、忘れずに
    nano /etc/rc.conf
    して、LOCALE="ja_JP.UTF-8 に修正しないとです。もっともRUNLEVEL 5のログイン前で良いと思いますが。

    後は、Arch Linux with E17(9/7追記)なり、Arch Linux with E17 のEeePCへのセットアップと変わりません。

    気が向いたらSSDへのセットアップ記録として最初から全部まとめるかもです。bash-completion とかは早い段階でインストールしておいた方が楽なので、若干インストール手順変わってますし。

« NetworkManager とか日本語設定とか | トップページ | EeePCのSSDにArch Linuxを入れました(GPT+Grub2で) »

Arch Linux」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28800/53047981

この記事へのトラックバック一覧です: Arch LinuxをGPT + Grub2でインストールを行う:

« NetworkManager とか日本語設定とか | トップページ | EeePCのSSDにArch Linuxを入れました(GPT+Grub2で) »