« サーバ速度比較 | トップページ | ATOK 2011 クラッシュ対策 »

2011年8月13日 (土)

ubuntu 11.04 on mac mini

せっかく買った mac mini server で他の linux も試してみようと思い,ubuntu 11.04 server をインストールしてみた。ただ,ubuntu は 10.04 と同じく 11.04 でも dom0 としては使えないようだった。

 

インストール

  1. ubuntu のホームページから,11.04 server の CD イメージ(ubuntu-11.04-server-amd64.iso)をダウンロード。
  2. UNetbootinで,「ディスクイメージ」で上記の iso イメージを選択して,usb メモリを作成する。
  3. その usb を mac mini にさして起動すると,rEFIt のメニューに usb ドライブのアイコンがついたペンギンが現れるので,それを選択。
  4. unetbootin の起動メニューが出るので「install」を選択。(「default」だと CD-ROM が見つからないといわれて起動しない)
  5. ubuntu 11.04 のカーネルは 2.6.38 なので,ドライバ追加は必要ない。
  6. configure keyboard では自動検出に<いいえ>を選んで,Japan → Japan と選択。
  7. ubuntu では1台目のハードディスクが sda,2台目が sdb,起動した usb が sdc として認識された。sda の空き領域に ubuntu 用の ext3 を確保してインストールを継続する。
  8. grub のインストールでは,ubuntu をインストールしたパーティションを入力するが,後述する理由により,ここでインストールした grub が読まれることはない。
  9. インストールが終了したら再起動。
  10. rEFIt のメニューが出たら Start Partitioning Tool を選択。「May I update the MBR as printed above? [y/N]」に y で答える。そのあと再起動。
  11. しかし,今度は MBR に今インストールしたパーティションは加わらない。MBR を見てみると,squeeze をインストールしたときに加わった Linux が最後になっている。
    1. EFI Protective
    2. Mac OS X Boot
    3. Mac OS X HFS+
    4. Linux
    
    MBR では 4つしか起動パーティションを設定できないので,前に squeeze をインストールした時点で,これ以上起動パーティションを増やせない。rEFIt のペンギンは2匹になるが,どちらを選択しても squeeze の grub が呼ばれる。したがって,squeeze の grub を使って,ubuntu を起動するように設定する必要がある。

grub 設定

  1. まずはインストール済みの squeeze で立ち上げる。
  2. インストールした ubuntu を /mnt にマウントして,/mnt/boot/grub/grub.cfg の起動オプションを変更する。後で update-grub をしたとき,ここが読まれて起動オプションが squeeze 側の grub.cfg に反映される。起動オプションの quiet,splash,vt.handoff=7 のすべてを削除する。
  3. squeeze で update-grub コマンドを入力すると,インストールされた os を自動的に検出して起動メニュー(/boot/grub/grub.cfg)を作ってくれる。
    $ sudo update-grub
    Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-2.6.32-5-xen-amd64
    Found initrd image: /boot/initrd.img-2.6.32-5-xen-amd64
    Found linux image: /boot/vmlinuz-2.6.32-5-xen-amd64
    Found initrd image: /boot/initrd.img-2.6.32-5-xen-amd64
    Found linux image: /boot/vmlinuz-2.6.32-5-amd64
    Found initrd image: /boot/initrd.img-2.6.32-5-amd64
    Found Mac OS X on /dev/sda2
    Found Ubuntu 8.04.4 LTS (8.04) on /dev/sda6
    Found Ubuntu 11.04 (11.04) on /dev/sda7
    Found Ubuntu 8.04.4 LTS (8.04) on /dev/sdb2
    Found Ubuntu 8.04.4 LTS (8.04) on /dev/sdb3
    Found Ubuntu 8.04.4 LTS (8.04) on /dev/sdb5
    done
    
  4. update-grub では xen の domU も grub.cfg に登録されてしまう(上記の Ubuntu 8.04)。手動で後から /boot/grub/grub.cfg の該当項目を削除しても良いが,/etc/grub.d/30_os-prober を変更して Ubuntu 8.04 を無視するようにもできる。

    /etc/grub.d/30_os-prober

    linux)
      LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      prepare_boot_cache=
    
      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"
    
        if [ -z "${LLABEL}" ] ; then
          continue  # ignores xen domain U
          LLABEL="${LONGNAME}"
        fi
    
    xen の domU では linux-boot-prober が LLABEL を "" で返すのを利用して,上記の場所に continue の1行を加えて domU を無視する。update-grub を実行すると,Found ... は表示されるが,grub.cfg には xen domU は追加されなくなる。

« サーバ速度比較 | トップページ | ATOK 2011 クラッシュ対策 »

サーバ」カテゴリの記事