20th
題名の通りですが、日経Linux7月号にはSheevaPlugの紹介がされていました。
サインはVGAでデスクトップPC化やカーネルコンパイルなど、どこかで見たことがあるような内容ですがこの手の製品が初めての方にはちょうどよい内容だと思います。(同じことがLS-XHLでも可能です。)
LS-XHLも今日値段を確認したところ、九十九で13,800円(ポイント分を引いて)でした。
海外から発送を待つより、週末HackでLS-XHLも有りかな?
19th
CG-HDC4EU3500用にWD10EADS-M2Bを4つ購入しました。
5400回転ですが静かで低消費電力なのでRAIDを組むのにはちょうどいいと思います。
今回は、UbuntuをインストールしたLS-XHLに対してDNSサーバとDHCPサーバを構築しました。少数のマシンしかないLANを導入するのは高コストですが、このBlogのように外向けのサービスを行っている場合には外側と内側で同じドメインを利用できるので便利です。設定も覚えてしまえば簡単なのでぜひ試してみてください。
1. DNSサーバ
参考 https://help.ubuntu.com/9.04/serverguide/C/dns.html
まずは、DNSサーバであるbind9をインストールします。
$ sudo aptitude install bind9
/etc/bind以下に設定ファイルができるので、ここを編集します。以下の例では設定するドメイン名はchimaki.infoです。適宜変更してください。また192.168.1.0/24のネットワークについて設定をしています。
A. ゾーンの設定
/etc/bind/named.conf.local
zone "chimaki.info" {
type master;
file "/etc/bind/db.chimaki.info";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};
B. 正引き(Name => IP)の設定
db.localhostをコピーして編集します。
設定ファイルのSerialは変更の度に増やす必要があります。そのため日時を入力することが推奨されています。下記の例では、dns.chimaki.info. => 192.168.1.254という対応を作り、www.chimaki.info. = dns.chimaki.info.という別名を設定しています。
/etc/bind/db.chimaki.info
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA dns.chimaki.info. root.chimaki.info. (
5171400 ; Serial <= mmddHHMMの形式とした。
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.chimaki.info.
@ IN A 127.0.0.1
@ IN AAAA ::1
; 名前 => アドレスを定義する。
; IN A
dns IN A 192.168.1.254
linux IN A 192.168.1.10
; 名前の別名を定義する。
; IN CNAME
www IN CNAME dns
C. 逆引き(IP => Name)の設定
db.127をコピーして作成します。
下記の例では、192.168.1.254 => dns.chimaki.info.という対応を設定しています。
同様に他の固定IPのマシンの名前を付けることができます。(例ではlinux.chimaki.infoを定義している。)
/etc/bind/db.192.168.1
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA dns.chimaki.info. root.chimaki.info. (
5171401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
; アドレス => 名前を定義する。
;
IN PTR
254 IN PTR dns.chimaki.info.
10 IN PTR linux.chimaki.info.
D. オプション
192.168.1.0/24に限定するように設定します。
また名前を引けなかったときに、プロバイダのDNSにforwardすることでLANのDNSの記述を一つにできます。
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
allow-query {
192.168.1.0/24;
localhost;
};
allow-recursion {
192.168.1.0/24;
localhost;
};
allow-transfer {
none;
};
forwarders {
# プロバイダのDNSを書く
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
E. サービスの起動
サービスを再起動します。
$ sudo /etc/init.d/bind9 restart
F. テスト
digコマンドで引けるようになっているか確認します。
ANSWER SECTIONがあれば動作しています。
動かない場合は、/var/log/daemon.logなどのログを便りに修正します。
$ dig @192.168.1.254 dns.chimaki.info
; <<>> DiG 9.5.1-P2 <<>> @192.168.1.254 dns.chimaki.info
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50716
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;dns.chimaki.info. IN A
;; ANSWER SECTION:
dns.chimaki.info. 604800 IN A 192.168.1.254
;; AUTHORITY SECTION:
chimaki.info. 604800 IN NS dns.chimaki.info.
;; Query time: 19 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Tue May 19 00:35:16 2009
;; MSG SIZE rcvd: 64
2. DHCPサーバ
DHCPサーバを次のようにしてインストールします。
$ sudo aptitude install dhcp3-server
/etc/dhcp3/dhcpd.confを以下のように編集します。
例では192.168.1.50から192.168.1.60をDHCPアドレスとして配布します。
#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#
ddns-update-style none;
# DNSサーバを作成したらauthoritativeを有効にする。
authoritative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.60;
option domain-name "chimaki.info";
option domain-name-servers 192.168.1.254;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 21600;
max-lease-time 43200;
}
サービスを再起動します。
$ sudo /etc/init.d/dhcp3-server restart
ルータなど他の機器でDHCPを起動していないことを確認して、DHCPでIPアドレスを取得してみます。
DHCPの更新などを行うとうまくとれるはずです。
次のようにしてサーバのログを監視すると動作状況が分かります。
$ sudo tail -f /var/log/messages
3. DNSとDHCPの連携
固定IPならば/etc/bind/db.chimaki.infoなどに記述すれば名前を登録することができます。
DHCPでIPを取得したマシンについても名前を登録することができます。(しかも動的にです。)
上記のDNSの設定と、DHCPの設定が完了し動作していると仮定します。
allow-updateを追加します。
/etc/bind/named.conf.local
zone "chimaki.info" {
type master;
file "/etc/bind/db.chimaki.info";
allow-update {
127.0.0.1;
192.168.1.0/24;
};
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
allow-update {
127.0.0.1;
192.168.1.0/24;
};
};
/etc/dhcp3/dhcpd.conf
# noneからinterimに変更
ddns-update-style interim;
また/etc/bindにbindユーザが書き込めるように権限を変更します。
$ sudo chown bind:bind /etc/bind
最後にサービスをそれぞれ再起動して設定は終了です。
$ sudo /etc/init.d/bind9 restart
$ sudo /etc/init.d/dhcp3-server restart
ログを見ながらDHCPでアドレスを取得させると登録される状況が分かります。
登録されると設定ファイル(例では/etc/bind/db.chimaki.info)に名前が追加されます。
LANのマシンには/etc/resolv.confを
search chimaki.info
nameserver 192.168.1.254
のようにドメインサーチとDNSサーバを追加します。
searchはxxx.chimaki.infoのようにすべて入力しないでもxxxで引けるようにするためのものです。
09th
以前紹介したlocaleの設定では、Ubuntuの場合不完全でしたので修正方法を紹介します。
aptitudeやemacsで日本語が表示されてなかったので、exportで環境変数を表示させてみたところLANGの設定がありませんでした。
簡単な修正としては
$ export LANG=ja_JP.UTF-8
とすれば、LANGが設定されて日本語が期待通り表示されます。
.bashrcに書くのはスマートではないので調べたところ、Ubuntuでは/etc/default/localeにLANGとLANGUAGEを設定するようです。(/etc/init.d/以下のスクリプトを見て発見しました。)
# vi /etc/default/locale
LANG="ja_JP.UTF-8"
LANGUAGE="ja_JP:ja:en_US:en"
設定後、再度ログインするとLANGが設定されていました。(再起動は必要ありません。)
20th
LS-XHL単体では、SATAのディスクを一台しか接続できません。
やはりファイルサーバとしてRAIDができないので運用が難しいところがあります。
少し前になりますが、コレガからCG-HDC4EU3500という最大4台までのHDDのハードウェアRAIDが可能なケースが販売されました。RAID 0, 1, 0+1, 3, 5が可能で、eSATAをサポートしています。
LS-XHLとの接続では、ジェンダーが違うのでLS-XHL(SATA) -> SATA延長ケーブル -> ジェンダーチェンジ -> SATA-eSATA変換 -> CG-HDC4EU3500としました。
このように変換ケーブルを通せば、一般的なeSATAのHDDケースが利用できます。

左がCG-HDC4EU3500、右がLS-XHL
接続して認識するまでは良かったのですが、LS-XHLがブートしないという問題が起こりました。
CG-HDC4EU3500は、PC連動機能がありLS-XHLも例外なく連動して動作します。しかし、連動により立ち上がってからHDDのRAIDのチェックが行われるため、LS-XHLのデータ要求がタイムアウトしてしまい、u-bootで落ちてしまいました。
LS-XHLは赤LED点滅時に前面のFuncキーを押すとTFTPブートを行うので、/bootにあるinitrd.buffaloとuImage.buffaloをtftpサーバに設置し、TFTPブートさせると無事(?)RAIDディスクでブートしました。
単独でブートできない(つまり、rebootできない)のが残念ですが、ファイルサーバなので運用でカバーできる範囲だと思います。
03th
やはり、Debianが動くといってもKernelがオリジナルのままでは利用できないアプリケーションも多いです。
例えば私の場合OpenVPNが利用したかったのですが、当然不要なmoduleはkernelから外されているため利用できませんでした。
Kernelのソースコード自体は公開されており、Cross-Complie用の環境もあるのですが、シリアルがないのとconfigがないのとで起動しない場合にDebugができないため困難ですが、運良く動作する手順を発見したので紹介します。
1. 必要なもの
以下に必要なものを列挙します。
- 32bit Ubuntu
- Kernelソース
- Cross Complie Tool Chain
セルフコンパイルもできなくはないのですが、やはり時間がかかるのでクロスコンパイルを推奨します。
64bit用のツールチェインを取得すれば、64bitマシンでも動くとは思いますが簡単のために32bit Ubuntuとしています。
KernelソースはGPL/LGPL Resource – Buffaloから入手します。
# wget http://buffalo.jp/php/los.php?to=gpl/storage/ls-xhl/100/linux-2.6.22.18.tar.bz2
Cross Complie Tool ChainはSheevaPlugのものを利用しました。
# wget http://www.marvell.com/files/products/embedded_processors/developer/kirkwood/SheevaPlug_Host_SWsupportPackageLinuxHost.zip
# wget http://www.marvell.com/files/products/embedded_processors/developer/kirkwood/SheevaPlug_U-Boot.zip
2. クロス環境の整備
取得したファイルを展開して、クロスコンパイルが出来るようにします。
# unzip SheevaPlug_Host_SWsupportPackageLinuxHost.zip
# cd LinuxHost
# tar xfj gcc.tar.bz2 -C /home
# cd ..
# unzip SheevaPlug_U-Boot.zip
# cd SheevaPlug_U-Boot/Tools
# cp mkimage /usr/bin
# cd -
# tar xfj linux-2.6.22.18.tar.bz2
最後にクロス用のgccのパスを通します。
# export PATH=/home/gcc/bin:$PATH
これで準備が整いました。
3. Kernelのconfig
configはないので、SheevaPlugの手順を参考に行います。
# cd linux-2.6.22.18
# make mv88f6281_defconfig
# make menuconfig
System Type -> BUFFALO Features ->
* BUFFALO_PLATFORM
* BUFFALO_ERRCNT
* USE interrupt driver
* USE gpio driver
* support board info from kernel
の5つにマークしてから、configを保存して終了
Buffaloの設定項目は多いですが、実質コンパイルが通った上で起動するものは以上の設定のみです。
4. uImageの作成
# make uImage
以上の操作でuImageがarch/arm/boot以下に作成されます。
出来上がったuImageをuImage.buffaloにリネームしてLS-XHLの/bootにコピーします。
5. Reboot
うまくいけば、上記の設定で起動するはずです。
dmesgを見て、エラーが出ているものを削ったり、足りない設定を追加などしてconfigを完成させます。
納得いくKernelが完成したら、Kernelモジュールを作成してインストールします。
PC # make modules
PC # make modules_install
PC # cd binaries/lib/modules
PC # scp -r 2.6.22.18 root@<LS-XHLのIPアドレス>:/lib/modules/
LS-XHL # chown -R root:root /lib/modules/2.6.22.18
LS-XHL # depmod -a
再起動して動作すれば、Kernelの入れ替えは終了です。
モジュールはmodprobeにより読み込むことが出来ます。
# modprobe bridge (module name)
よく使うものは/etc/modulesにモジュール名を書いておくと、起動時に読み込まれます。
6. USB
USBを使うためには、一手間必要です。
起動直後はUSBに電源が入っていないために、利用できません。miconaplを使ってUSBの電源を入れる必要があります。
# /usr/locsl/sbin/miconapl -a usb_set_power all_on
利用の度に設定するのは面倒なので、/etc/rc.localに書いておくとよいかと思います。
03th
いよいよBootのときがやってきました。
1. BOOT !
HDDをLS-XHLに組戻して電源を入れます。しばらく待ってpingが期待通りに通ったらSSHをしてみます。
# ssh root@<LS-XHLのIPアドレス>
Linux ls-xhl01 2.6.22.18 #1 Sat May 2 17:44:39 JST 2009 armv5tejl
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Sat May 2 20:34:37 2009 from macbook.local
#
Congratiration!
ブートしない場合の対処法
A. 青LEDが点滅して自動的に電源が落ちる
initrdで失敗しています。linuxrcが適切に編集されていることを確認します。それでもダメなようであれば、パーティションの設定などが間違っている可能性や、ファイルが足りないなど考えられます。
B. pingが通らない
ネットワークの設定や、IPを確認してください。
MACアドレスをルータに設定して、DHCPとするのが確実です。
C. pingは通るがログインできない
ssh-serverが立ち上がっていない可能性があります。
もしくは設定したパスワードが間違っているかもしれません。
2. miconapl
最後にハード制御について設定をすることで完成となります。
/initrd以下にinitrd.buffaloが展開されて置かれますが、ここからmiconaplというハード制御コマンドをコピーします。
# cp -a /initrd/usr/local/sbin/miconapl /usr/local/sbin/
# cp -a /initrd/usr/local/lib/libbuffalo_bin.so* /usr/local/lib/
# ldconfig
起動時にLEDの点滅が止まるように/etc/rc.localに記述を加えます。
# cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# boot complete
/usr/local/sbin/miconapl -a boot_end
# booting flag change.
echo 0 > /proc/buffalo/booting
if [ -f /proc/buffalo/gpio/switch/sw_control ] ; then
echo on > /proc/buffalo/gpio/switch/sw_control
fi
# stop fan (option)
# /usr/local/sbin/miconapl -a fan_set_speed stop
exit 0
上記ではFanを止める設定ですが、slowやfastなど設定をできます。(参考)
3. Kernelモジュール
必要であれば、Kernelモジュールを/initrd/lib/moduleからコピーして利用することができます。
usbなどを利用するためには必要ですが、それ以外の設定が必要など面倒が多いのでKernelに組み込む形で再構築を行った方が便利です。Kernelの再構築を行わないならば、/initrd/etc/init.d/usb.shなど関連するスクリプトを読み、必要な設定を行います。
次回よりKernelの再構築について説明するため、既存のmoduleの利用についてはこれ以上言及しません。
これで高速で、低消費電力なLinuxサーバが出来上がりました。
自由な世界を楽しみましょう。
02th
前回までで、基本的なDebian/Ubuntuのシステムが完成しました。
後はこれらのシステムが起動できるように細かい設定を行います。
HDDのパーティションを変更し、initrdを改変して作成したシステムがブートするようにします。
1. HDDのマウント、バックアップ
LS-XHLを停止して、作成したファイルと現在の状態をすべてバックアップします。
# mkdir /mnt/boot /mnt/root /mnt/disk1
# mount /dev/sdb1 /mnt/boot
# tar cfz /mnt/boot-original.tar.gz /mnt/boot
# umount /mnt/boot
# mount /dev/sdb2 /mnt/root
# tar cfz /mnt/root-original.tar.gz /mnt/root
# umount /mnt/root
# mount /dev/sdb6 /mnt/disk1
# tar cfz /mnt/(debian|ubuntu)-root.tar.gz /mnt/disk1/(debian|ubuntu)-root
# umount /mnt/disk1
2. initrdの改変
/bootに含まれていたinitrd.buffaloを展開して、中にあるlinuxrcを書き換えます。
ここでアップデートや、システムのチェックなどを行っていますが、それらを無効にして、システムがマウント出来るようにします。
# cp /mnt/boot_original.tar.gz .
# tar xfz boot_original.tar.gz
# cd boot
# ls
hddrootfs.buffalo initrd.buffalo u-boot.buffalo uImage.buffalo
このinitrd.buffaloを編集するのですが、手順が多いのでスクリプトを作成しました。
# cat unpack.sh
#!/bin/sh
dd if=initrd.buffalo of=initrd.gz bs=64 skip=1
gunzip initrd.gz
mount -o loop initrd /mnt/initrd
# cat pack.sh
#!/bin/sh
umount /mnt/initrd
gzip initrd
mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
rm initrd.gz
注意事項としては、あらかじめマウントポイント(/mnt/initrd)を作成することと、uboot-mkimageパッケージをインストールしておくことです。
unpack.shでinitrd.buffaloを展開し、pack.shでintird.buffaloに圧縮します。いずれもルートで行ってください。
# ./unpack.sh
# cd /mnt/initrd
# vi linuxrc
(下記のようにする)
# cat linuxrc
==========================================================================
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin
echo "---- in linuxrc ---"
echo "Version 1.00 2008/ 7/ 1"
mount proc /proc -t proc
mount sysfs /sys -t sysfs
. /usr/local/lib/libsys
. /usr/local/bin/libbuffalo
. /usr/local/lib/libmsg
reset_date()
{
TMP=`date "+%s"`
if [ ${TMP} -lt 1133362800 ] || [ ${TMP} -ge 1606748400 ] ; then
date ${INITIAL_DATE}
if [ -L "${HW_CLOCK}" ] ; then
hwclock --systohc --localtime
else
hwclock -w
fi
fi
}
# set the system time from the hardware clock
HW_CLOCK=`which hwclock`
if [ -L "${HW_CLOCK}" ] ; then
# not busybox hwclock version
hwclock --hctosys --localtime
else
# busybox hwclock version
hwclock -s
fi
reset_date
date
# reload /etc/nas_feature
# if failed to copy, anyway go on bootup process with empty setting.
[ -f /etc/nas_feature ] && . /etc/nas_feature
ldconfig
depmod
## Setup Micon communication port and send flash-boot complete message.
miconapl -b -a boot_flash_ok > /dev/null
ln -sf /dev/sde /dev/usbdisk1
ln -sf /dev/sdf /dev/usbdisk2
create_devlink
echo "0x802" > /proc/sys/kernel/real-root-dev
umount /sys
umount /proc
umount -a
exit 0
==========================================================================
# cd -
# ./pack.sh
以上でinitrdの編集は終わりです。変更点はHDDのチェックを飛ばす部分が中心です。
3. パーティションの変更
以前/etc/fstabに記載したようにパーティションを変更します。
LS-XHLは/dev/sdb1がboot、/dev/sdb2が/である必要があります。オリジナルの状態では、ダミーパーティション/dev/sdb3,4がある上、xfsフォーマットが使われているので他で扱いやすいようにext3に変更します。
GpartedなどGUIを使った方が簡単で、間違えません。次のようにフォーマットします。
/dev/sdb1 /boot 512MB
/dev/sdb2 / (好きなだけ)
/dev/sdb3 linux-swap 512MB
これだけではu-bootが/bootを読めないので、次のようにフォーマットします。(参考)
# mkfs.ext3 -j -m 0 -I 128 /dev/sdb1
4. ファイルの書き戻し
準備が整ったので、ファイルを書き戻します。
# mount /dev/sdb1 /mnt/boot
# cp -a initrd.buffalo(改変したもの) u-boot.buffalo uImage.buffalo /mnt/boot/
# umount /mnt/boot
# mount /dev/sdb2 /mnt/root
# tar xfz (debian|ubuntu)-root.tar.gz -C /mnt
(最後に/mnt/rootで設定に誤りがないか確認します。)
# umount /mnt/root
以上で(Debian|Ubuntu)のシステムが起動する準備ができました。
次回はいよいよ起動して、残りの設定について解説します。
03th
Debian Lennyから、armel(kirkwood)が正式にサポートされています。
また、最新のUbuntu 9.04 jauntyでもlennyの成果を利用してarmelのサポートが行われています。
今回は、deboostrapから最小のLinuxシステムを構築する方法を説明します。
1. debootstrapの情報
Lennyはhttp://www.jp.debian.org/releases/stable/arm/
Ubuntu(9.04)はhttps://help.ubuntu.com/9.04/installation-guide/i386/linux-upgrade.html
にdebootstrapの詳細な手順が記載されています。
付加的な情報として、Ubuntuでのarmelについてhttp://www.mail-archive.com/ubuntu-mobile@lists.ubuntu.com/msg01860.htmlがあります。
2. debootstrapのインストール
debootstrapというのは、既存のUNIX/Linux環境からDebian/Ubuntuをインストールする方法です。debootstrapを利用するためにはwgetとarが必要となります。これらはBuffaloのLS-XHLの中にすでに入ってるのでこれを利用します。
Debianの場合
# pwd
/root
# mkdir work
# cd work
# wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.10lenny1_all.deb
# ar -x debootstrap_1.0.10lenny1_all.deb
# cd /
# zcat /root/work/data.tar.gz | tar xv
Ubuntuの場合
# pwd
/root
# mkdir work
# cd work
# wget http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.13~jaunty1_all.deb
# ar -x debootstrap_1.0.13~jaunty1_all.deb
# cd /
# zcat /root/work/data.tar.gz | tar xv
3. debootstrapの作成
debootstrapを作成するためのツールの準備ができたので、作成に入ります。
Debianの場合
# mkdir -p /mnt/disk1/debian-root
# /usr/sbin/debootstrap --arch armel lenny /mnt/disk1/debian http://ftp.us.debian.org/debian
...(しばらく待つ)
Ubuntuの場合
# mkdir -p /mnt/disk1/ubuntu-root
# /usr/sbin/debootstrap --arch armel jaunty /ubuntu-root/ http://ports.ubuntu.com/ubuntu-ports
...(しばらく待つ)
4. 最小のLinuxへchroot
最小のLinuxの準備ができたので、chrootしてLinuxのセットアップを行います。
以下の手順はDebian、Ubuntuで共通です。異なる部分についてはその時に述べます。
A. chrootの実行
# LANG=C chroot /mnt/disk1/(debian|ubuntu)-root /bin/bash
B. procのマウント
# mount -t proc proc /proc
C. deviceの作成
# cd /dev
# MAKEDEV -v generic
D. fstabの作成
# vi /etc/fstab
==============================================================================
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump>
<pass>
proc /proc proc defaults 0 0
sys /sys sysfs defaults 0 0
/dev/sda1 /boot ext3 defaults,noatime 0 1
/dev/sda2 / ext3 defaults,noatime 0 0
/dev/sda3 swap swap defaults 0 0
==============================================================================
E. タイムゾーンの設定
# dpkg-reconfigure tzdata
(Asia / Tokyoを選択)
F. ネットワークの設定
eth1がキーポイントです。
# vi /etc/network/interface
================================================================================
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
# We always want the loopback interface.
#
auto lo
iface lo inet loopback
# To use dhcp:
#
auto eth1
iface eth1 inet dhcp
================================================================================
# vi resolv.conf
================================================================================
nameserver <Add Your Name Server>
================================================================================
G. ホスト名の設定
好きなホスト名を付けます。以下ではls-xhlとしています。
# vi /etc/hosts
================================================================================
127.0.0.1 ls-xhl
127.0.0.1 localhost
================================================================================
# vi /etc/hostname
================================================================================
ls-xhl
================================================================================
H. ロケールの設定
Debianの場合
# aptitude update
# aptitude install locales
# dpkg-reconfigure locales
================================================================================
ja_JP.ECU-JP ECU-JP
ja_JP.UTF-8 UTF-8
default ja_JP.UTF-8 UTF-8
================================================================================
Ubuntuの場合
# aptitude update
# aptitude install language-pack-ja
I. SSHサーバのインストール
これが無いとログインができません。
# aptitude install openssh-server
# /etc/init.d/ssh start
J. その他
/initrdディレクトリを起動後にinitrdが展開されて置かれるので、用意しておきます。
# mkdir /initrd
使いそうなソフトをインストールしておきます。(後でインストールしても構いません。)
# aptitude install psmisc less ntpdate unzip bzip2
最後にパスワードを設定します。ユーザーを追加するもの良いと思います。
# passwd
これで準備が整いました。次回は、パーティションを切り直して、initrdを編集してdebian/ubuntuからブートできるようにします。
02th
作業用のHDDが壊れてしまい、物理的な復旧とやる気の回復に時間がかかってしまいました。
しかし、LS-XHLのカーネルの再構築に成功したため、より多くの人にHackしてもらうために続きを書きたいと思います。
前回のTFTPにより出荷状態にHDDが戻ります。大容量のHDDに交換したり、Hackに飽きて戻す必要があれば前回までの手順でできます。
今回はtelnetを有効にして、出荷状態のLinuxへログインしたいと思います。
次の手順に進む前に、Web管理画面にアクセスできるかなど出荷状態に戻っていることを確認しましょう。
- IPアドレスの確認、変更
- Telnet有効化
1. IPアドレスの確認、変更
まずIPアドレスを確認します。デフォルトではDHCPでアドレスが決定するので、どのIPアドレスが割り振られたかは簡単には分かりません。Windowsであれば、付属のツールを使えばIPアドレスの確認、変更ができます。
それが面倒であれば、DHCPサーバにMACアドレスを登録して固定IPを払い出す方法があります。
一般家庭であれば、ルータにDHCP固定IPアドレス設定などあると思いますのでLS-XHLのMACアドレスを登録しておくと後々便利となります。
2. Telnet有効化
動作確認を終えたら、HDDを取り出してLinuxマシンに接続します。
何度か抜き差しすることになるので、eSATAケーブルか何かで接続してホットスワップできるようにしておくとよいでしょう。
以下、/dev/sdbにLS-XHLのHDDが接続されていると仮定します。(適宜読み替えてください。)
まず、ルートファイルシステムをマウントします。
# mkdir /mnt/root
# mount /dev/sdb2 /mnt/root
次に起動スクリプトrcSを編集して、telnetdを起動するように追記します。
# vi /mnt/root/etc/init.d/rcS
(最終行に以下を追記します)
/usr/sbin/telnetd
rootパスワードを消去します。
# vi /mnt/root/etc/shadow
root:(ここの文字列を削除):11009:0:99999:7:::
これでtelnetdが起動し、rootでログインできるようになります。
HDDをLS-XHLに接続して、起動します。
$ telnet <LS-XHLのIPアドレス>
これでLS-XHLへとTelnetが出来るはずです。
次回は、Telnetが出来たマシン上でDebianもしくはUbuntuのシステムをゼロから作成する手順を紹介します。
03th
まずは、空のHDDを使って製品出荷時の状態に戻します。
その状態でTelnetを有効化し、ログインしてLS-XHL上で操作できるようにします。
今回の手順は以下となります。
- 最新のファームウェアの取得
- TFTPサーバの設定
- LS-XHLのTFTPブート
1. 最新のファームウェアの取得
まずはBuffaloの製品ページから最新のファームをダウンロードします。
今回はversion 1.04βでした。
ダウンロード後にWindows上で解凍します。
解凍してできたファイルのinitrd.imgとuImage.buffaloを別のところへコピーしておきます。
コピーしたinitrd.imgをinitrd.zipと拡張子を変更して、zipを解凍します。
解凍する場合にパスワードを求められますが、「linkstation + password」でググればすぐ分かります。
解凍してできたinitrd.buffaloとuImage.buffaloをTFTPサーバのフォルダーにコピーします。
2. TFTPサーバの設定
LS-XHLを工場出荷状態に戻すために、TFTPブートを行います。
今回はtftp32を使用しました。ノートPCとクロスケーブルで簡単に行えます。
tftp32の設定は以下のとおりです。
Current Directory C:\LS-XHL (ここにinitrd.buffaloとuImage.buffaloをコピーする)
DHCP server
IP pool starting address 192.168.11.10
Mask 255.255.255.0
と設定します。
PCのIPを192.168.11.1(Mask 255.255.255.0)に設定します。
(Windowsのファイアーウォールは無効にしておくこと。)
3. LS-XHLのTFTPブート
PCとLS-XHLをクロスケーブルで接続して、電源を入れます。
LEDが赤点滅になったら、LS-XHLのFuncボタン(小さいプッシュスイッチ)を押すことで、TFTPブートに移行できます。青点滅から青点灯になったら起動完了です。
その後、LSUpdaterを起動するとLS-XHLがEMモードで見つかるのでファームウェア更新を実行します。
下記のような警告が出ますが、構わず続行します。
===========================================================
HDDのパーティション情報が確認できませんでした
HDDをフォーマットし、ファームウェアのアップデートを行います
*HDDの内容は完全に消えてしまいます
HDDのフォーマットをおこなってもよろしいですか?
===========================================================
再起動後は工場出荷状態になっているはずです。
Webの管理画面にアクセスできるか確かめましょう。
次は、Telnetを有効にしてログインした後にDebianをインストールする準備をします。
