Note: How to install a virtualbox guest addtion on Debian 8 jessie guest OS

Virtualbox 上にインストールした Debian 8 に guest additions をインストールしようとしたらプチ嵌りしたので、その備忘録。

see. https://forums.virtualbox.org/viewtopic.php?f=3&t=62297

単純に、make や DKMS をビルドするための必要なパッケージがインストールされていなかったため。

apt-get install build-essential dkms

でパッケージをインストールして、VBoxGuestAdditions.iso 内の VBoxLinuxAdditions.run を実行する。

Samba4 on Debian 7 wheezy

自宅でも Active Directory を利用したいので、インストールしてみました。

インストール手順やTipsは多くの方が書かれていますので、
basic なリンクのみ。

InitScript は

に記載がありましたが、そのままだとうまく動きませんでした。

私の環境 (source build & /usr/local/samba にインストール)した場合の
InitScript を自分の備忘録として載せておきます。

! /bin/sh

### BEGIN INIT INFO
# Provides:          samba4
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start Samba daemons for the AD DC
### END INIT INFO

#
# Start/stops the Samba daemon (samba).
# Adapted from the Samba 3 packages.
#

INSTALL_DIR=/usr/local/samba
PIDDIR=$INSTALL_DIR/var/run
SAMBAPID=$PIDDIR/samba.pid

# clear conflicting settings from the environment
unset TMPDIR

# See if the daemon and the config file are there
test -x $INSTALL_DIR/sbin/samba -a -r $INSTALL_DIR/etc/smb.conf || exit 0

. /lib/lsb/init-functions

case "$1" in
        start)
                SERVER_ROLE=`$INSTALL_DIR/bin/samba-tool testparm --parameter-name="server role"  2>/dev/null | tail -1`
                if [ "$SERVER_ROLE" != "active directory domain controller" ]; then
                    exit 0
                fi

                if init_is_upstart; then
                        exit 1
                fi

                # CVE-2013-4475
                KEYFILE=$INSTALL_DIR/private/tls/key.pem
                if [ -e $KEYFILE ]
                then
                                KEYPERMS=`stat -c %a $KEYFILE`
                                if [ "$KEYPERMS" != "600" ]
                                then
                                                echo "wrong permission on $KEYFILE, must be 600"
                                                echo "samba will not start (CVE-2013-4475)"
                                                echo "Removing all tls .pem files will cause an auto-regeneration with the correct permissions."
                                                exit 1
                                fi
                fi

                log_daemon_msg "Starting Samba AD DC daemon" "samba"
                # Make sure we have our PIDDIR, even if it's on a tmpfs
                install -o root -g root -m 755 -d $PIDDIR

                if ! start-stop-daemon --start --quiet --oknodo --exec $INSTALL_DIR/sbin/samba -- -D; then
                        log_end_msg 1
                        exit 1
                fi

                log_end_msg 0
                ;;
        stop)
                if init_is_upstart; then
                        exit 0
                fi
                log_daemon_msg "Stopping Samba AD DC daemon" "samba"

                start-stop-daemon --stop --quiet --pidfile $SAMBAPID
                # Wait a little and remove stale PID file
                sleep 1
                if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
                then
                        # Stale PID file (samba was succesfully stopped),
                        # remove it (should be removed by samba itself IMHO.)
                        rm -f $SAMBAPID
                fi

                log_end_msg 0

                ;;
        restart|force-reload)
                if init_is_upstart; then
                        exit 1
                fi
                $0 stop
                sleep 1
                $0 start
                ;;
        status)
                status_of_proc -p $SAMBAPID $INSTALL_DIR/sbin/samba samba4
                exit $?
                ;;
        *)
                echo "Usage: /etc/init.d/samba4 {start|stop|restart|force-reload|status}"
                exit 1
                ;;
esac

exit 0

流行の raspberry pi を使ってみる

自宅用のネットワークサービスのうち、Lightなサービスを raspberry pi で運用しようと思い、いじってみた記録を残す。

ちなみに、ディスプレイ/キーボードなどを接続するのが面倒なので、
設定等は Rasbian のメディアへの書き込み直後に、全部行なってしまう。

前提条件:
 使用するPCのOS: debian wheezy
 書き込みイメージ: http://www.raspberrypi.org からダウンロードしておく(解凍も)

(1) image の書き込み
SD カードを挿入すると、SDのパーティションを自動マウントするので、
 umount する。

# mount
...
/dev/mmcblk0p1 on /media/XXX ....
/dev/mmcblk0p2 on /media/YYY ....

私の使ったPCでは、SDカードは /dev/mmcblk0 と認識され、2つのパーティションがそれぞれ /dev/mmcblk0p[12] と認識された。

# umount /media/XXX
# umount /media/YYY

次に、imageを書き込む。
# dd if=2014-09-09-wheezy-raspbian.img of=/dev/mmcblk0 bs=4096K

(オプションについては、 man dd 参照のこと。
bs=4096K にしたら、書き込みに 462s だった。
  ちなみに bsを省略(デフォルト値 bs=512)にすると、書き込みに 20分以上かかりました。orz)

(2) ネットワーク設定
今回の rasp-pi マシンは固定IPを割り当てる。
 まずは、SDカードを再マウントする。(SDカードの挿し直し)
/dev/mmcblk0p2 の中には、raspbian のイメージが展開されているので、
その中の /etc/network/interfaces を以下のように編集する。

auto lo
iface lo inet lookback
iface eth0 inet static
address 192.168.x.y
netmask 255.255.255.0
gateway 192.168.x.z

(3) sshd の設定変更
次の1箇所を修正
PermitRootLogin no

(4) 電源投入&ログインチェック
# ssh pi@192.168.x.y
ログイン出来ればOK.

今日はここまで。

Virtualbox on Debian 7 (Wheezy)

前記事:

VirtualBox 4.3.10 に変更したら、ホスト側で Bridge の設定をすることなく、Bridge Mode が利用できるようになった。

便利だけど、何か複雑な気分。

突然ですが、Beaglebone Black

仕事で Beaglebone Black (以後 BBBと省略)を使ってみようということで、
BBB Startup ページ
を参考に、BBB開発環境を作ろうとしたら、嵌まってしまいました。

結論を言うと、
BBB を PC に接続した後、リセットボタンを押す
と上記 "Getting Started" に記載のとおりに動きました。
*1

めでたし、めでたし!


===================================================================
ここより下は、備忘録という名の『愚痴』です。
落ちもないので、興味ない方はよみとばしてくださいな。


【背景(BBBを使用する発端)】
仕事で、装置の遠隔監視を行うための簡単なシステムを作ることになりました。
はじめは、古くなって誰も使わなくなったPCを使って
*2
FT245RL USBパラレル変換モジュールで装置状態端子・警報ランプのON/OFFを検知して、監視しようとしたのだが…

ちなみにプログラミング言語C# 2010 + .NET 4 framework で作成。
1秒ごとにFT245Rのデータポートをpollingして、警報(L->H)と判断したら
メールするというだけのプログラムなのだが…
なぜか起動後1日〜3日稼動すると止る(T_T)
また、リモートデスクトップ接続で該当PCに接続するとプログラムが停止する。(T_T)

# PCの負荷とアプリケーションプログラムの関係で停止(hungup)するのかなぁ…

停止する原因がつかめないのと、
次ステップとして、装置の出力するアナログ値を取得し、許容範囲外の値になったら警報通知する。という要件もあったので、
古いPCを使い続けて上記不具合を調査するより、
Beaglebone Black (以後、BBBと表記)で
新しく作った方が早いし、第2の要件も簡単に満足できる!!!
ということで、浮気をしました。

*1:そんなことをしなくても動いた人は多かったのでしょうか…

*2:とはいえ、Banias or Dothan 世代のPentiumM マシンなので、性能はそこそこ良いはずなのに…

Virtualbox (bridged mode) on Debian 7.2 の続き

http://d.hatena.ne.jp/grasso0210/20130813/1376417557
で中断していた上記作業を再開。

その間に、いろいろと環境が変ったので、整理すると

で、本題。
VirtualBox の guest OS を Bridged Network で動作させるには。
とりあえず、以下の方法で何とか静的IPアドレスまでできたかな。

(1) トンネリングデバイスの設定変更 (see. http://codesupply.net/content/setup-bridged-networking-virtualbox-ubuntu-1110)

(1)-1 /dev/net/tun の属性変更
# chmod g+rw /dev/net/tun
# chown root:vboxusers /dev/net/tun

(1)-2 /etc/udev/rules.d/10-vboxdrv.rules の変更
以下の一行を追加
KERNEL=="tun", NAME="net/%k", GROUP="vboxusers", MODE="0660"

(2) bridge-ctrl のインストールと仮想ブリッジの構築 (see. http://www.usupi.org/sysad/162.html)

(2)-1 インストール
apt-get install bridge-utils

(2)-2 仮想ブリッジの構築; /etc/network/interfaces を以下のように修正

auto lo
iface lo inet lookback

auto eth0
iface eth0 inet static
address 0.0.0.0

auto vbr0
iface vbr0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.255
bridge_ports eth0
bridge_stp off

(3) VirtualBox guest OS 用のインターフェースの構築
/etc/vbox/vbox.cfg に以下の行を記述
VBoxTunctl -u (vbox user id) -g vboxusers -t vbox0 -f/dev/net/tun
brctl addif vbr0 vbox0
ifconfig vbox0 up

(そもそも、vbox.cfg に記述するのが適切か?疑問。)

        • -

一応、bridged network で guest OS に固定IPv4 アドレスを割り当てることができたが…

Guest OS の RDP を有効にしても、接続できない…
ping は通るのだが…)

要調査。