PogoplugをWebサーバ化 (その1) | ほげほげ商店 season.02 | LinuxやAndroid,iphoneケータイ,VPSのことをほげほげーっと掲載中

PogoplugをWebサーバ化 (その1)

2月 11, 2011 by     1 Comment     Posted under: Linux

pogoplugを買ったのは、Webサーバとして稼動させるためでした。
なので、早速セットアップしていきます。

目標とするのは、Webサーバなど必要なシステムファイルをUSBメモリに、
USB HDDをログやデータ格納場所にします。
しかも、WordPressを移行して、開発サーバとしても利用出来る状態にします。

ここからは、責任持てませんし、保証しません!
自己責任ということでお願いします<(_ _ )>

まぁ、こういったマニアックな製品を買っている人だと思うので、
何かあったときはどうにか出来ると思いますが…。

ということで、準備するもの。

  1. USBメモリ(今回は4GB)
  2. USB HDD(今回はハードディスクケース+SATA500GB)
  3. 根性・勇気


まず、pogoplugにSSHでアクしセスできるようにます。
pogoplugのWebサイトにアクセス。
右上の設定をクリック→セキュリティ設定をクリック→「このpogoplug機器へのSSHアクセスを有効にする」をクリック。(ここでパスワードも設定します)
これで、pogoplugへのSSHでアクセスできるようになりました。

次に、接続しているUSBメモリを取り外します。
物理的には接続している状態で、Webサイトから取り外します。

次に、TeraTermなどのSSHクライアントで接続します。(おすすめはTeraTerm)
ID:root、パスワードは先程のSSHでのアクセス許可のページで設定した文字です。

ファイルシステムフォーマットするためのコマンドをダウンロード

 # cd /tmp
 # wget http://plugapps.com/os/pogoplug/mke2fs
 # chmod 755 mke2fs
 # killall hbwd

次に、fdiskにて、USBメモリのパーティションを作成します。

 # /sbin/fdisk /dev/sda
 The number of cylinders for this disk is set to 14804.
 There is nothing wrong with that, but this is larger than 1024,
 and could in certain setups cause problems with:
 1) software that runs at boot time (e.g., old versions of LILO)
 2) booting and partitioning software from other OSs
 (e.g., DOS FDISK, OS/2 FDISK)

 Command (m for help): d ← dと入力

 Selected partition 1

 Command action
 e   extended
 p   primary partition (1-4)
 p
 Partition number (1-4): 1
 First cylinder (1-1018, default 1): Using default value 1
 Last cylinder or +size or +sizeM or +sizeK (1-1018, default 1018): Using default value 1018

 Command (m for help): w ← wと入力
 The partition table has been altered!<

 Calling ioctl() to re-read partition table

次にext2フォーマットします。

 # ./mke2fs /dev/sda1

フォーマットが終わったら、USBメモリを抜いて、再起動します。

 # /sbin/reboot

さて、いよいよOpenPogoをインストールします。
先程のUSBメモリを指して、SSHクライアントで接続、OpenPogoをダウンロードインスールします。
http://openpogo.com/base/openpogo-usb.tar.gz でダウンロードができなくなっているので、
Windowsにて、http://www.pogoplugged.com/download/list?cat=36 にアクセス。
「Create an openpogo base system on a USB drive」からダウンロードします。
で、SCPにてアップロード。

 # cd /tmp/.cemnt/mnt_sda1
 # mv /root/opt.tar.gz ./
 # tar xzvf opt.tar.gz
 # mount -o rw,remount /
 # ln -s /tmp/mnt_opt/.opt /opt

起動スクリプトを作成

# cp /etc/init.d/rcS /etc/init.d/rcS.original
 # echo '# code added below for OpenPogo /opt on USB with init on boot' >> /etc/init.d/rcS
 # echo '/etc/init.d/mount_opt' >> /etc/init.d/rcS
 # echo '/opt/etc/init' >> /etc/init.d/rcS
 # echo '#!/bin/bash' > /etc/profile
 # echo '# New profile added for OpenPogo /opt on USB' >> /etc/profile
 # echo '#' >> /etc/profile
 # echo 'export PATH=/opt/bin:/opt/sbin:/usr/bin:/usr/sbin:/bin:/sbin' >> /etc/profile
 # cp /tmp/.cemnt/mnt_sda1/.opt/mount_opt /etc/init.d/
 # chmod 755 /etc/init.d/mount_opt
 # /sbin/reboot

ただ、これだと、起動時にmountしてくれないため、mount_optを下記に変更

#!/bin/sh

DEVIDS="sda1 sdb1 sdc1 sdd1"

[ ! -d /tmp/mnt_opt ] && `mkdir /tmp/mnt_opt` || `umount /tmp/mnt_opt`

for i in `seq 1 5`
do
for d in $DEVIDS
do
echo "Mounting $d..."
mount -t ext2 -o rw,nosuid,nodev,exec,noatime,sync /dev/$d /tmp/mnt_opt
if [ -d /tmp/mnt_opt/.opt ]
then
{
break 2
}
fi
umount /tmp/mnt_opt
done
sleep 3
done

wgetがまともに使えなかったり、bashがなかったりしますので、どっかからとってきます。
wgetなどはbusyboxを使っているため、busyboxでない通常のコマンドを取り出します。
http://www.plugapps.com/os/2010.12/Plugbox-Linux-2010.12-rootfs.tar.gz をダウンロード&解凍します。

解凍した中から、下記のファイルを取り出します。

 bin\bash
 usr\bin\wget
 lib\libssl.so.1.0.0
 lib\libcrypto.so.1.0.0
 lib\libcrypto.so.1.0.0
 lib\libidn.so.11
 lib\libz.so.1
 lib\libreadline.so.6
 lib\libncursesw.so.5

ちなみに0バイトのファイルはそのリビジョンを見て
例: libreadline.so.6.1 を libreadline.so.6 にリネーム
今後、パッケージをインストールすると、エラーが出ると思うので、同じ感じでshared libraryをコピーします。

これらのファイルをSCPにて、pogoplugに転送。

 # mv /root/libssl.so.1.0.0 /usr/lib/
 # mv /root/libcrypto.so.1.0.0 /usr/lib/
 # mv /root/libcrypto.so.1.0.0.so.1.0.0 /usr/lib/
 # mv /root/libz.so.1.0.0 /usr/lib/
 # mv /root/libreadline.so.6 /usr/lib/
 # mv /root/libncursesw.so.5 /usr/lib/
 # mv /usr/bin/wget /usr/bin/wget_bk
 # mv /root/wget /usr/bin/
 # mv /root/bash /bin/
 # chmod 755 /bin/bash /usr/bin/wge

OpenPogoのパッケージ管理は、ipkgで行います。
CentOSならyum、Debian系ならaptってところです。
ちなみに、リポジトリが無くなっているらしく、違うところにします。

 # cd /opt/etc/ipkg/
 # vi armel-feed.conf

↓のように記述します。

 #src cross http://openpogo.com/repo
 src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable

再起動します。

 # /sbin/reboot

パッケージupdateしてみます

# ipkg update

次回は、各種パッケージをインストールします

1 Comment + Add Comment

tag cloud