karky7のグズグズな日々 RSSフィード

2011-03-21 Gentoo/DragonFlyインストール覚書き

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クライアントで接続する

f:id:cantimerny:20110321233831p:image

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

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

f:id:cantimerny:20110321234103p:image


ネットワークを確認する

f:id:cantimerny:20110321234232p:image

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

# dhclient re0

パーティションの設定

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

f:id:cantimerny:20110322000347p:image

gptコマンドでインストールできるディスクを確認する。

/dev/ad1がインストール可能なディスクドライブだとわかる。


次にパーティションを作成する

f:id:cantimerny:20110322001634p:image

この辺はいろいろ試行錯誤して確認したのですが間違っていたらツッコミください。


まず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

f:id:cantimerny:20110322002855p:image

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


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

f:id:cantimerny:20110322003801p:image

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


そして次にディスクの使用量の設定、

# disklabel -e ad1s0

のコマンドで、viエディタが起動するのでファイルを編集する。

f:id:cantimerny:20110322010133p:image

total size:の行が 256.00 MBとかかれているのでおそらく/bootスライスで、

一番下の行に/bootとして利用するサイズを指定する。

a:   *    *     4.2BSD

a:が/dev/ad1s0aの最後のaと言うことでしょうか、*は256MB全部を利用するということ。


さらにルートファイルシステムを同じように作成する

# disklabel -r -w ad1s1 auto

# disklabel -e ad1s1

f:id:cantimerny:20110322011125p:image

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


最終的に出来上がったデバイスは以下のような感じ

f:id:cantimerny:20110322011608p:image

ついでにswapをマウントしておく

フォーマットする

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

f:id:cantimerny:20110322011837p:image


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

f:id:cantimerny:20110322011930p:image


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

f:id:cantimerny:20110322012123p:image

# 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をダウンロードして展開する

f:id:cantimerny:20110322012629p:image

# 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する

f:id:cantimerny:20110322013618p:image

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

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

f:id:cantimerny:20110322014150p:image


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

f:id:cantimerny:20110322014338p:image

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


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

f:id:cantimerny:20110322014824p:image


metadataの作成

f:id:cantimerny:20110322015025p:image


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

ここからはベースシステムの作成、カーネルの構築を開始する。

カーネルの構築は何の問題もなく終了しました。さすがBSDです。


# emerge --sync

# cd /usr/portage

# scripts/bootstrap.sh

f:id:cantimerny:20110322015534p:image


カーネルの構築

bootstrap.shでdfbsd-sourcesがemergeされたっぽいのでそのままコンパイル

# cd /usr/src/sys/config

# config GENERIC

# cd ../compile/GENERIC

# make cleandepend && make depend && make && make install

f:id:cantimerny:20110322015811p:image


ブート環境の構築と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

めでたく再起動

# exit

# umount /var/mnt/gentoo/dev

# umount /var/mnt/gentoo/proc

# umount /var/mnt/gentoo/boot

# umount /var/mnt/gentoo

# reboot


めでたくもなかった

だいたい何時もそうなんですが、何か忘れて一発で起動したためしがない。

こんな画像出されたって素人には分からない。

f:id:cantimerny:20110322021242p:image

rootファイルシステムがマウントでできないので指定しろのようなメッセージが出たのでいろいろ調べた。

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

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

f:id:cantimerny:20110322022017p:image

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