2012年11月30日金曜日

Gentoo/DragonFlyをインストールしてみた

前から気になっていたGentoo/DragonFlyをインストールしてみることにした。
実機に入れようとしたのですが余りのPCが無いので、やむなくKVM上でインストールすることにした。
ほぼインストールに関してはAotaさんのページを参考にしました。
非常に参考になりました、ありがとうございました。

イメージの作成

cuomo@poke ~ $ qemu-img create -f qcow2 gentoo-dragonfly_bsd.qcow2 70G
Formatting 'gentoo-dragonfly_bsd.qcow2', fmt=qcow2 size=75161927680 encryption=off cluster_size=0 

後でファイルシステムをHammerを利用するので50GB以上で作成しておく。
Hammerファイルシステムは50GB以上のストレージで使用する設計になっているらしいので。

DragonFlyのisoイメージをダウンロード

以下のサイトからi386版をダウンロード
[http://mirror-master.dragonflybsd.org/iso-images/dfly-i386-2.8.2_REL.iso.bz2]
で展開する
cuomo@poke ~/download $ bunzip2 -dc dfly-i386-2.8.2_REL.iso.bz2 > dfly-i386-2.8.2_REL.iso

isoイメージから起動する

poke KVM_VirtualServers # kvm -hda gentoo-dragonfly_bsd.qcow2 -cdrom dfly-i386-2.8.2_REL.iso -boot d -m 1024 -daemonize -net nic -net tap,ifname=tap0,script=/etc/qemu-ifup
VNC server running on `127.0.0.1:5900'

適当なVNCクライアントで接続する


ブートしたDragonFlyにログインする

login: rootでログインが可能、パスワードは要らない


ネットワークを確認する

ifconfigコマンドで確認してみると、re0がそれっぽいのでdhclientでIPを割り当ててみる。
# dhclient re0

パーティションの設定

これがなかなかそれぞれのOSでちょっとした癖があるので面倒。

gptコマンドでインストールできるディスクを確認する。
/dev/ad1がインストール可能なディスクドライブだとわかる。
次にパーティションを作成する
この辺はいろいろ試行錯誤して確認したのですが間違っていたらツッコミください。
まずad1デバイスを作成する、mkmodとはちょっと違うみたいなのですが、ls -l /dev/ad*で確認すると、たしか /dev/ad1のみ表示されるようになったような...スナップとるのを忘れました。
# gpt create ad1
次にboot領域を作成(してるのかな?)
# gpt boot ad1
ここで/dev/ad1を確認してみたら、GPT part - DragonFly Label32っていうスライスが出来てるのでこれがbootなのでしょう
次に残りの全部を割り当てる、そしてもう一度確認してみる
# gpt add ad1
# ls -l /dev/ad*
# spt show ad1

GPT part - DragonFly Label64って出来てる、これが残りで/dev/ad1s1ということか。

次にディスクラベルをつける、これがチョッと分かりずらかった。

bootの設定、disklabelコマンドの詳細はよく分からないがブートするスライスとして/dev/ad1s0を設定している。

そして次にディスクの使用量の設定、
# disklabel -e ad1s0
のコマンドで、viエディタが起動するのでファイルを編集する。

total size:の行が 256.00 MBとかかれているのでおそらく/bootスライスで、
一番下の行に/bootとして利用するサイズを指定する。
a:   *    *     4.2BSD
a:が/dev/ad1s0aの最後のaと言うことでしょうか、*は256MB全部を利用するということ。

さらにルートファイルシステムを同じように作成する
# disklabel -r -w ad1s1 auto
# disklabel -e ad1s1

最初の1GB(/dev/ad1s1a)をスワップにし、次の残り全部(/dev/ad1s1b)をルートファイルシステムとして利用するように編集する。

最終的に出来上がったデバイスは以下のような感じ
ついでにswapをマウントしておく

Hammer FSでフォーマットする

最初に/bootになるデバイスをufsでファーマットする

次にルートをHammerでフォーマットする

さらに作成したデバイスをマウントしていく

# mkdir -p /var/mnt/gentoo
# mount_hammer /dev/ad1s1b /var/mnt/gentoo
# mkdir /vat/mnt/gentoo/boot
# mount /dev/ad1s0a /var/mnt/gentoo/boot

stage、portageファイルのダウンロード展開


次にstatge3をダウンロードして展開する


# cd /var/mnt/gentoo
# curl -O http://elisp.net/gentoo-dragonfly/files/stage3-x86-20101010.tar.bz2
# tar jpxf stage3-x86-20101010.tar.bz2
# cd /var/mnt/gentoo/usr
# curl -O http://elisp.net/gentoo-dragonfly/files/portage-20101010.tar.bz2
# tar jpxv portage-20101010.tar.bz2

chrootする

作成した環境にchrootする


リゾルバなどを確認してchrootする、この辺までくればGentoo Linuxとほぼ同じなので何か安心する。

/etc/make.confを編集する、迷惑かけないようにローカルのrsyncへ変更

overlayを展開する、画像はローカルにへダウンロードしてしまったのでscpで転送しました。

http://elisp.net/gentoo-dragonfly/files/dragonfly-overlay-20101021.tar.bz2

/etc/make.confへoverlayの設定を追記


metadataの作成

ベースシステムのインストール

ここからはベースシステムの作成、カーネルの構築を開始する。
カーネルの構築は何の問題もなく終了しました。さすがBSDです。

# emerge --sync
# cd /usr/portage
# scripts/bootstrap.sh

カーネルの構築

bootstrap.shでdfbsd-sourcesがemergeされたっぽいのでそのままコンパイル。
# cd /usr/src/sys/config
# config GENERIC
# cd ../compile/GENERIC
# make cleandepend && make depend && make && make install

ブート環境の構築とfstabの設定

# boot0cfg -s 2 ad1
# echo 'vfs.root.mountfrom="hammer:ad1s1b"' >> /boot/loader.conf

/etc/fstabを編集する
# cat /etc/fstab
/dev/ad1s1b  /   hammer  rw    2 0
/dev/ad1s0a  /boot ufs   rw,noatime  1 0
/dev/ad1s1a  none  swap  sw   0 0
/dev/acd0   /mnt/cdrom   cd9660  ro,noauto  0 0

# Enable this line to mount /proc automatically.
# Required for Linux emulation.
none     /proc  procfs rw,noexec,nosuid  0 0

rootユーザーのパスワードの設定

# passwd root

必要なパッケージを入れておく

# emerge dhcpcd

DragonFly BSDがめでたく再起動

# exit
# umount /var/mnt/gentoo/dev
# umount /var/mnt/gentoo/proc
# umount /var/mnt/gentoo/boot
# umount /var/mnt/gentoo
# reboot

めでたくもなかった

だいたい何時もそうなんですが、何か忘れて一発で起動したためしがない。
こんな画像出されたって素人には分からない。
rootファイルシステムがマウントでできないので指定しろのようなメッセージが出たのでいろいろ調べた。

結果、インストール時に利用していたディスク名がad1からad0に変わっていたのが原因だったらしく/etc/fstabも修正して起動できるようになった。

ほんとにめでたく起動した


何か[!!]出てるが、いちよう良としよう。

0 件のコメント:

コメントを投稿