ホスト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