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 のパーティション切り直し
- ここの記載を参考に,usb の起動ディスクを作る。
- option キーを押しながら起動し,起動ドライブとして usb を選択する。(Recovery HD から起動すると,起動ディスクのパーティション変更ができない)
- ディスクユーティリティーで HD のパーティションを追加する。とりあえず,Mac OS X の領域を半分にして,残りを FAT にしておいた。
- パーティションを切り直すと当然フォーマットされてしまうものだと思ってシステムを再インストールしたが(数時間かかった),パーティション切り直してもデータは残っているようだった。よく見たら,パーティション編集画面に「パーティションサイズは変更されますが,パーティションは消去されません」と表示されていた。
mac mini で rEFIt をインストール
- rEFIt Project のホームページからダウンロード,パッケージをインストール。2回再起動する。
- 2回目の再起動から,rEFIt のブートメニューが出るようになる。新しく作ったパーティションは,グレーのアイコンで表示される。
- rEFIt の設定ファイルは /efi/refit/refit.conf。自動起動までの時間は timeout で設定。#legacyfirst のコメントをとると,linux から自動起動されるようになる。
ether ドライバのコンパイル
squeeze のカーネルは 2.6.32 である。mac mini の ether controller である Broadcom BCM57765 は,カーネル 2.6.35 からのサポートなので,自分でコンパイルしてドライバを用意する必要がある。
- Broadcom のホームページから,ドライバのソースコード(linux-3.116j.zip)をとってくる。
- ダウンロードしたソースコードを,現在動いている squeeze マシンに持って行って解凍する。zip ファイルの中の奥の方に入っている tg3-3.116j.tar.gz をさらに解凍すると,ソース(ライセンスは GPL)が出てくる。
- 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
- 解凍したフォルダに入って,make する。まずは amd64 用コンパイル。
# make KVER=2.6.32-5-amd64
無事終了したら,tg3.ko を amd64 用ドライバとして保存する。
ダウンロード tg3.ko (1014.9K) - 次に xen-amd64 用コンパイル。
# make clean # make KVER=2.6.32-5-xen-amd64
これも無事終了したら,tg3.ko を xen-amd64 用ドライバとして保存する。
ダウンロード tg3.ko (1016.0K) - カーネルの 2.6.32-* の * が変わったら,その都度コンパイルしなおしが必要となりそう。
squeeze インストール用 usb メモリ作成
- UNetbootinをダウンロードし,Debian : Stable_NetInstall_x64 で usb メモリを作成する。
- その usb メモリに,debian ホームページから squeeze の net install CD の iso イメージを持ってきてコピーする。
- さらに tg3.ko もコピーする。/amd64/tg3.ko,/xen-amd64/tg3.ko 等としておく。
いよいよ squeeze インストール
- usb メモリをさして mac mini を起動して,メニューのペンギンを選択。
- UnetBootin の画面が出て,その後 debian インストーラーが立ち上がる
- 言語選択画面がでたら,おもむろに option-F2 を押してコンソールに入る。
- 起動した usb をマウントして,ether ドライバを読み込む。
# mount -t vfat /dev/sda1 /mnt # insmod /mnt/amd64/tg3.ko # umount /mnt
- option-F1 でインストーラーに戻ってインストールを続ける。
- パーティショニングでは,起動した usb が sda,1台目の HD が sdb,2台目が sdc となっている。1台目の HD に FAT で作っておいたパーティションを削除して,ext3 と swap を作り直す。
- 例によって,「サーバに X は入れない主義」で最小限インストール。grub インストール直前までインストールを続ける。
- grub の設定では MBR にブートローダをインストールしますか?と聞かれるが,ここは<いいえ>とする。MBR はインストール終了後に rEFIt の gptsync で作成することになる。
- ブートローダをインストールするパーティションを聞かれるので,squeeze をインストールしたパーティションを指定する。今回の場合は /dev/sdb4 であった。これにより,rEFIt → squeeze パーティションの grub 起動という起動パターンとなる。
- インストールが終了したら,usb メモリを抜いて再起動。
- rEFIt にペンギンが出るが,まずは,Start Partitioning Tool を選択。
- EFI では MBR ではなく,GPT でディスクを管理している。GPT には今インストールした squeeze が見えているはずである。しかし,MBR の方は使ってないので,MBR には記載されていない。そこで,
May I update the MBR as printed above? [y/N]
に y と答えて,GPT と MBR を一致させる。 - 作業を終了して,再起動する。(再起動必須)
- 再起動後,おもむろにペンギンを選択すると,見慣れた grub が起動する。
ether ドライバのインストール
インストール時に insmod したドライバを,恒常的に利用するように設定する。
- ドライバをインストールするディレクトリを作成,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 のインストール
- xen をインストール。
- リブート後に,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
- xen 用の tg3.ko を /lib/modules/2.6.32-5-xem-amd64/updates を作ってコピー,depmod して再起動。grub で xen カーネルを選択して起動,これでやっと xen の dom0 として立ち上がる。
xen domU の移行
- dom0 さえ動いてしまえば,あとは parted で2台目のハードディスクにパーティションを作り,mkfs.ext3 でフォーマット,マウントして rsync で --numeric-ids をつけてコピー,/xen/*.cfg ファイルを環境に合わせて変更して移行完了。
自宅サーバマシンが,ものすごく小さくなった(体積にして約50分の1)。これなら,何台あっても置き場所には困らないなと思った。(そんなに何台も買えないけど)
« Java 1.6 update 24 と 26 での ImageIcon の違い | トップページ | サーバ速度比較 »
「サーバ」カテゴリの記事
- サーバの CPU アップグレード(2023.02.11)
- 業務用マシンを ubuntu 20.04 にアップグレード(2023.02.10)
- 自宅サーバのアップデート (2)(2023.02.08)
- 自宅サーバのアップデート (1)(2023.02.07)
- OwnCloud 10.9.0 へのアップグレード(2021.12.23)