« Java 1.6 update 24 と 26 での ImageIcon の違い | トップページ | サーバ速度比較 »

2011年8月 5日 (金)

debian squeeze on mac mini

自宅サーバー(C2D E6550 2.33GHz)を mac mini server (mid 2011: Core i7 quad core 2.0GHz) に置き換えようというもくろみで1台購入した。自宅サーバーは,debian squeeze を xen の dom0 として,サーバは domU 上に構築してある。つまり,mac mini に squeeze さえインストールできれば,移行は簡単である。
 

mac mini のパーティション切り直し

  1. ここの記載を参考に,usb の起動ディスクを作る。
  2. option キーを押しながら起動し,起動ドライブとして usb を選択する。(Recovery HD から起動すると,起動ディスクのパーティション変更ができない)
  3. ディスクユーティリティーで HD のパーティションを追加する。とりあえず,Mac OS X の領域を半分にして,残りを FAT にしておいた。
  4. パーティションを切り直すと当然フォーマットされてしまうものだと思ってシステムを再インストールしたが(数時間かかった),パーティション切り直してもデータは残っているようだった。よく見たら,パーティション編集画面に「パーティションサイズは変更されますが,パーティションは消去されません」と表示されていた。

mac mini で rEFIt をインストール

  1. rEFIt Project のホームページからダウンロード,パッケージをインストール。2回再起動する。
  2. 2回目の再起動から,rEFIt のブートメニューが出るようになる。新しく作ったパーティションは,グレーのアイコンで表示される。
  3. rEFIt の設定ファイルは /efi/refit/refit.conf。自動起動までの時間は timeout で設定。#legacyfirst のコメントをとると,linux から自動起動されるようになる。

ether ドライバのコンパイル

squeeze のカーネルは 2.6.32 である。mac mini の ether controller である Broadcom BCM57765 は,カーネル 2.6.35 からのサポートなので,自分でコンパイルしてドライバを用意する必要がある。

  1. Broadcom のホームページから,ドライバのソースコード(linux-3.116j.zip)をとってくる。
  2. ダウンロードしたソースコードを,現在動いている squeeze マシンに持って行って解凍する。zip ファイルの中の奥の方に入っている tg3-3.116j.tar.gz をさらに解凍すると,ソース(ライセンスは GPL)が出てくる。
  3. squeeze マシンで,コンパイルできるように,header ファイル等をインストール。
    # aptitude install linux-headers-2.6.32-5-amd64
    # aptitude install linux-headers-2.6.32-5-xen-amd64
    # aptitude install build-essential
    
  4. 解凍したフォルダに入って,make する。まずは amd64 用コンパイル。
    # make KVER=2.6.32-5-amd64
    
    無事終了したら,tg3.ko を amd64 用ドライバとして保存する。
    ダウンロード tg3.ko (1014.9K)
  5. 次に xen-amd64 用コンパイル。
    # make clean
    # make KVER=2.6.32-5-xen-amd64
    
    これも無事終了したら,tg3.ko を xen-amd64 用ドライバとして保存する。
    ダウンロード tg3.ko (1016.0K)
  6. カーネルの 2.6.32-* の * が変わったら,その都度コンパイルしなおしが必要となりそう。

squeeze インストール用 usb メモリ作成

  1. UNetbootinをダウンロードし,Debian : Stable_NetInstall_x64 で usb メモリを作成する。
  2. その usb メモリに,debian ホームページから squeeze の net install CD の iso イメージを持ってきてコピーする。
  3. さらに tg3.ko もコピーする。/amd64/tg3.ko,/xen-amd64/tg3.ko 等としておく。

いよいよ squeeze インストール

  1. usb メモリをさして mac mini を起動して,メニューのペンギンを選択。
  2. UnetBootin の画面が出て,その後 debian インストーラーが立ち上がる
  3. 言語選択画面がでたら,おもむろに option-F2 を押してコンソールに入る。
  4. 起動した usb をマウントして,ether ドライバを読み込む。
    # mount -t vfat /dev/sda1 /mnt
    # insmod /mnt/amd64/tg3.ko
    # umount /mnt
    
  5. option-F1 でインストーラーに戻ってインストールを続ける。
  6. パーティショニングでは,起動した usb が sda,1台目の HD が sdb,2台目が sdc となっている。1台目の HD に FAT で作っておいたパーティションを削除して,ext3 と swap を作り直す。
  7. 例によって,「サーバに X は入れない主義」で最小限インストール。grub インストール直前までインストールを続ける。
  8. grub の設定では MBR にブートローダをインストールしますか?と聞かれるが,ここは<いいえ>とする。MBR はインストール終了後に rEFIt の gptsync で作成することになる。
  9. ブートローダをインストールするパーティションを聞かれるので,squeeze をインストールしたパーティションを指定する。今回の場合は /dev/sdb4 であった。これにより,rEFIt → squeeze パーティションの grub 起動という起動パターンとなる。
  10. インストールが終了したら,usb メモリを抜いて再起動。
  11. rEFIt にペンギンが出るが,まずは,Start Partitioning Tool を選択。
  12. EFI では MBR ではなく,GPT でディスクを管理している。GPT には今インストールした squeeze が見えているはずである。しかし,MBR の方は使ってないので,MBR には記載されていない。そこで,
    May I update the MBR as printed above? [y/N] 
    
    に y と答えて,GPT と MBR を一致させる。
  13. 作業を終了して,再起動する。(再起動必須)
  14. 再起動後,おもむろにペンギンを選択すると,見慣れた grub が起動する。

ether ドライバのインストール

インストール時に insmod したドライバを,恒常的に利用するように設定する。

  1. ドライバをインストールするディレクトリを作成,tg3.ko を入れた usb メモリをマウントしてコピーする。コピー後,depmod して再起動。これでネットワークが使えるようになる。
    # mkdir /lib/modules/2.6.32-5-amd64/updates
    # mount -t vfat /dev/sdc1 /mnt
    # cp /mnt/amd64/tg3.ko /lib/modules/2.6.32-5-amd64/updates/
    # depmod -a
    # reboot
    

xen のインストール

  1. xen をインストール
  2. リブート後に,grub で XEN 4.0 を選んでしまうと,まだネットワークドライバが入っていないので起動できない。まずは Linux 2.6.32-5-xen-amd64 の方を選択して起動。
    $ uname -a
    Linux debian 2.6.32-5-xen-amd64 #1 SMP Tue Jun 14 12:46:30 UTC 2011 x86_64 GNU/Linux
    
  3. xen 用の tg3.ko を /lib/modules/2.6.32-5-xem-amd64/updates を作ってコピー,depmod して再起動。grub で xen カーネルを選択して起動,これでやっと xen の dom0 として立ち上がる。

xen domU の移行

  1. dom0 さえ動いてしまえば,あとは parted で2台目のハードディスクにパーティションを作り,mkfs.ext3 でフォーマット,マウントして rsync で --numeric-ids をつけてコピー,/xen/*.cfg ファイルを環境に合わせて変更して移行完了。

自宅サーバマシンが,ものすごく小さくなった(体積にして約50分の1)。これなら,何台あっても置き場所には困らないなと思った。(そんなに何台も買えないけど)

« Java 1.6 update 24 と 26 での ImageIcon の違い | トップページ | サーバ速度比較 »

サーバ」カテゴリの記事