実機に入れようとしたのですが余りの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

次にディスクラベルをつける、これがチョッと分かりずらかった。
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 件のコメント:
コメントを投稿