-->

2011-05-03

kvmにopenbsdをインストール

ホストOSの作業。

20GBの実体のある空ファイルを作成する。
$ dd if=/dev/zero of=openbsd-4.9.img bs=1024M count=20

ミラーサイトからインストールCDをダウンロードする。
$ wget http://ftp.jaist.ac.jp/pub/OpenBSD/4.9/amd64/install49.iso

virt-managerでinstall49.isoとopenbsd-4.9.imgで新規作成する。
名前: openbsd49など
→進む
  (●)ISOイメージを使用
  [/xxx/install49.iso]
  OSの種類   [UNIX}
  バージョン [OpenBSD 4.x]
→進む
→進む
  (●)管理しているストレージか、他の既存のストレージを選択する
  [/xxx/openbsd-4.9.img]
→進む
  詳細なオプション
  共有デバイス名を指定
  ブリッジ名: br0
→完了

br0はgentooの場合/etc/conf.d/netに設定する。
tapXは手動でkvmを起動する場合に必要なだけで、br0があればvirt-managerがvnet1などを作る。
$ cat /etc/conf.d/net|grep -v ^#|grep -v ^$
bridge_br0="eth0 tap0 tap1 tap2 tap3"
config_eth0=( "null" )
config_br0=( "192.168.0.100/24" )
routes_br0=( "default via 192.168.0.1" )
dns_servers_br0="192.168.0.1"
brctl_br0=( "setfd 0" "sethello 10" "stp off" )
RC_NEED_br0=( "net.tap0" "net.tap1" "net.tap2" "net.eth3" )
depend_br0 ()
{
  need net.eth0 net.tap0 net.tap1 net.tap2  net.tap3
}
config_tap0=( "null" )
tuntap_tap0="tap"
tunctl_tap0="-u root"
mac_tap0="52:54:01:12:34:56"
config_tap1=( "null" )
tuntap_tap1="tap"
tunctl_tap1="-u root"
mac_tap1="52:54:01:12:34:57"
config_tap2=( "null" )
tuntap_tap2="tap"
tunctl_tap2="-u root"
mac_tap2="52:54:01:12:34:58"
config_tap3=( "null" )
tuntap_tap3="tap"
tunctl_tap3="-u root"
mac_tap3="52:54:01:12:34:59"
config_eth0=( "null" )
config_dummy0=( "192.168.0.101 netmask 255.255.255.255" )

CDから起動するとbsd.rdが起動して(I)nstallなどを選択する画面になる。
下記は処理の流れ。大体合ってる。[xxx]はEnterを押すと入るデフォルト値。
インストール: i
キーボード  : jp
ホスト名    : openbsd49など
LANカード   : [pcn0]
IPアドレス  : 192.168.0.xxx
ネットマスク: [255.255.255.0]
IPv6        : [none]
終了確認    : [done]
ゲートウェイ: 192.168.0.1 (←がルーターの場合)
ドメイン    : localdomainなど
ネームサーバ: 192.168.0.1 (ルーターの機能でONにしている場合)
手動で設定  : [no]
rootパス    : xxxx
確認        : xxxx
sshd起動    : [yes]
ntpd起動    : yes
ntpサーバー : 192.168.0.1 (ルーターの機能でONにしている場合)
グラフィカルログイン: no
コンソールcom0: [no]
一般ユーザー: username
フルネーム  : [username]
パスワード  : xxxx
確認        : xxxx
sshdでrootログイン無効: [yes]
タイムゾーン: [Asia/Tokyo]
ハードディスク: [wd0]
マスターブートレコード: [whole]

エディットを選択する。
パーテーション: e
h          : ヘルプ
z          : 削除
X          : 機能追加
a          : パーテーション追加
[a]        : パーテーション番号
[64]       : パーテーション始まり
1048576    : パーテーションサイズ(512MB)
[4.2BSD]   : ファイルシステム種類
/          : マウントするディレクトリ名
[2048]     : フラグメントサイズ
[16384]    : ブロックサイズ
a
[b]
[1048640]
1048576    : パーテーションサイズ(512MB)
[swap]     : スワップ
a
[d]
[2097216]
2097152    : パーテーションサイズ(1GB)
[4.2BSD]
/tmp
4096
[32768]
a
[e]
[4194368]
16777216   : パーテーションサイズ(8GB)
[4.2BSD]
/var
4096
[32768]
a
[f]
[20971584]
[20958066] : パーテーションサイズ(残り全部) 
[4.2BSD]
/usr
4096
[32768]
p k        : KB単位で表示
p m        : MB単位で表示
p g        : GB単位で表示
p          : free: 50 とあるがそのままにしておく
q          : セーブ

# 起動後、確認すると下記のようになる。
# "/"をfsize=4096にすると起動しなかった。
# $ sudo disklabel wd0 | tail -n7
# #                size           offset  fstype [fsize bsize  cpg]
#   a:          1048576               64  4.2BSD   2048 16384    1 # /
#   b:          1048576          1048640    swap
#   c:         41943040                0  unused
#   d:          2097152          2097216  4.2BSD   4096 32768    1 # /tmp
#   e:         16777216          4194368  4.2BSD   4096 32768    1 # /var
#   f:         20958016         20971584  4.2BSD   4096 32768    1 # /usr

ラベル      : [y]
フォーマットが終わるまで待つ。
インストールメディア: [cd]
CDドライブ  : [cd0]
OSの種類    : [4.9/amd64]

選択
-all
bsd bsd.rd bsd.mp base49.tgz etc49.tgz comp49.tgz man49.tgz
man49.tgzまで全部選択した。
終了        : [done]
コピーが終わるまで待つ。

終わり      : [done]
reboot      : 再起動

ブート画面
boot> bsd -c
UKC> disable mpbios
53 mpbios0 disabled
UKC> quit
起動した場合
login:
まで表示される。

sshでログインできる。
$ ssh username@192.168.0.xxx

sudoの設定。普通は「NOPASSWD:」無しの方が良い。
$ su -
$ visudo
# %wheel  ALL=(ALL) NOPASSWD: SETENV: ALL
↓
%wheel  ALL=(ALL) NOPASSWD: SETENV: ALL
$ exit

viのコマンド。
x    1文字削除
dd   1行削除
yy   1行コピー
p    1行ペースト
:i   入力        Escで戻る
:a   後ろに入力  Escで戻る
:wq  セーブして終了
:q!  セーブしないで終了

viのマニュアル。
$ man vi

コピーして修正したら確認してもいい。
$ su -
$ cp -pi /etc/sudoers /etc/sudoers.old
$ visudo
$ diff /etc/sudoers /etc/sudoers.old

カーネルの設定。
$ sudo cp -pi /bsd /bsd.org
$ sudo config -ef /bsd
ukc> disable mpbios
ukc> quit
$ md5 /bsd /bsd.org
MD5 (/bsd) = e2f3c034ed6a86cdfdac06e58da9f963
MD5 (/bsd.org) = a2ad93f7ac14a5f54bce38b4e731a16e
再起動して設定無しで起動できればOK.
ダメな場合、元のカーネルで起動する。
boot> bsd.org -c

/homeを移動する。rootでログインする。
mv -i /home /var
ln -s /var/home /home

ログインシェルをbashなどにする。
$ export PKG_PATH=http://ftp.jaist.ac.jp/pub/OpenBSD/4.9/packages/amd64/
$ sudo pkg_add wget
$ sudo pkg_add bash
$ chsh -s /usr/local/bin/bash
PKG_PATHを.bashrcなどに書く。

設定ファイルの例。
$ cat ~/.bash_profile
[[ -f ~/.bashrc ]] && . ~/.bashrc
$ cat ~/.bashrc | grep -v ^$ | perl -ne 'print if(!m/^\s*#/)'
if [[ -n "$PS1" ]]; then
        PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] "
        alias ls='ls -CF'
        alias ll='ls -lT'
        alias rm='rm -i'
        alias cp='cp -i'
        alias mv='mv -i'
        function share_history
        {
                history -a
                history -c
                history -r
        }
        PROMPT_COMMAND='share_history'
        shopt -u histappend
        HISTFILESIZE=2097152
        HISTSIZE=10000
        HISTCONTROL=ignoreboth
        HISTIGNORE='?:??:???'
        export PKG_PATH=http://ftp.jaist.ac.jp/pub/OpenBSD/4.9/packages/`machine -a`/
fi
$ cat ~/.inputrc
set completion-ignore-case on
"\C-n":history-search-forward
"\C-p":history-search-backward

メールが1件あるので読む。
$ mail
$ man afterboot
公式サイトのマニュアルなどを見る。



参考。
http://apis.jpn.ph/fswiki/wiki.cgi?page=OpenBSD%2FRebuild#p11
http://karl0204.at.webry.info/200907/article_3.html
http://www.openbsd.org/anoncvs.html
http://www.openbsd.org/faq/ports/ports.html#PortsFetch
http://d.hatena.ne.jp/oogatta/20100509/1273372980
http://sinensis.plala.jp/mm/dcc0c3ad2de5ff3633640eda7617f4927237b128/?order=-cdate#c8f7a9f38878ca2c622b5660e6ca8f746042d562
http://www.linux-kvm.org/page/Guest_Support_Status#UNIX_Family:_BSD
http://infosys.gsid.nagoya-u.ac.jp/~ohna/perl_lesson/intro2perl/text.html

0 件のコメント: