LS-VLに手軽にインストールする手順をまとめました。(linux初心者にも分かりやすく書きました)

内容は
カーネルはBuffaloオリジナルの2.6.31.8。(uImage.buffalo)
initrdはほぼBuffaloオリジナル。(initrd.buffalo)
ルートファイルは好きなOS。
という単純なものですが、問題なく動作します。
必要なファイルは元のルートファイルからもってきます。

インストールに必要なもの
・SATAのHDD   ・・・(A)
・母艦となるパソコン   ・・・(B)
・USBメモリ256M以上とknoppixのCD (母艦PCにLINUXが入っていればともに不要) ・・・(C)


手順1 LS-VLを開けます

まずLS-VLを開けて、HDDを取り出します。(当然メーカ保障はなくなりますので自己責任で)
上部のプラスネジをはずすとファンが取れるようになります。
あとは上部、下部、後部にある穴を押しながらすこしずつ開いていきます。
開いたら慎重にHDDと基盤を取り出します。
HDDを固定しているネジをはずしてHDDのみにします。・・・(D)


手順2 HDDのバックアップ

元のBuffaloのHDDからバックアップを取ります。
BのパソコンにUSBでDのHDDを接続します。(最近のカーネルのものなら普通に認識します。)
# fdisk -l
でHDDがどの名前で認識されているか調べます。

sdbの場合(間違いのないようマウントし直します)

# umount /dev/sdb1
# umount /dev/sdb2
# umount /dev/sdb6
# mkdir /media/sdb1
# mkdir /media/sdb2
# mkdir /media/sdb6
# mount /dev/sdb1 /media/sdb1
# mount /dev/sdb2 /media/sdb2
# mount /dev/sdb6 /media/sdb6
# cd /media/sdb1
# tar zcvf /tmp/sdb1.tar.gz *
# cd /media/sdb2
# tar zcvf /tmp/sdb2.tar.gz *
# cd /media/sdb6
# tar zcvf /tmp/sdb6.tar.gz *

バックアップはできましたのでUSBメモリなどに接続して保管しておいてください。(cp /tmp/sdb*tar.gz /media/USBメモリ名)

# umount /media/sdb1
# umount /media/sdb2
# umount /media/sdb6

DのHDDを取り外し、大事に保管しておいてください。


手順3 フォーマット

今度はAのHDDをUSBでBのパソコンに接続します。
同じようにfdisk -lで名前を調べます。

sdbの場合
# fdisk /dev/sdb

まずpを打つと今のパーティションの状態が出てきます。
dコマンドですべて消してください。(数字指定すればそのパーティションが削除されます)
pでなくなったことを確認できたら新規にパーティションを作成します。

コマンド
n + エンターキー
p + エンターキー
1 + エンターキー
エンターキー
79 + エンターキー
まずひとつ。つぎも同様に
n + エンターキー
p + エンターキー
2 + エンターキー
エンターキー
799 + エンターキー
3つめ
n + エンターキー
p + エンターキー
3 + エンターキー
エンターキー
1199 + エンターキー
完了したら
w + エンターキー

で完了です。
もしここでエラーが出たらパーティションがmountされているということなのでumountしてfdiskしてください。入ったらwのみ実行で結構です。
作成したパーティションをフォーマットします。(sdbの場合)
# mke2fs -j -I 128 /dev/sdb1
# mke2fs -j /dev/sdb2
# mke2fs -j /dev/sdb3


手順4 バックアップ分のインストール

ここでバックアップしたtarファイルをHDDに展開します。

# mount /dev/sdb1 /media/sdb1
# mount /dev/sdb2 /media/sdb2
# mount /dev/sdb3 /media/sdb3
# tar zxvf /tmp/sdb1.tar.gz -C /media/sdb1
# tar zxvf /tmp/sdb2.tar.gz -C /media/sdb3
# vi /media/sdb2/etc/shadow

を実行し、rootの行を編集します。

root:$1$o97Wt5Qj$.6rmXiQrHYoWhAi9q2lmm.:15107:0:99999:7:::

のようにroot:のあとに不明な文字列が次の:まで続いてるので消します。(カーソルを合わせてESC + dキーで削除。: + w!で強制保存 : + q で終了)
root::15107:0:99999:7:::

このようになるはずです。
次に
vi /media/sdb2/etc/sshd_config

を実行し、
#ChallengeResponseAuthentication yes

の行のコメントをはずします

PermitEmptyPasswords yes

となっていることも確認します。

あとは/dev/sdb3に好きなOSをインストールしますがここではdebianを例にしてみます。


手順4 OSのインストール

Bのパソコンでファイルをダウンロードします。

# wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.32_all.deb
# mv debootstrap_1.0.32_all.deb /media/sdb2
# cd /media/sdb2

すべて展開します。

# ar -x debootstrap_1.0.32_all.deb
# tar zxvf data.tar.gz
# tar zxvf control.tar.gz

使用するdebootstrapのパスを設定します。(しないと付属のものでなく/usr/sbin/debootstrapが使われる)

root@ubuntu1:~# export DEBOOTSTRAP_DIR=usr/share/debootstrap

インストーラはx86上でchrootしてarm版の作業をするのでqemuをインストールします。(debain ubuntu系の場合)

root@ubuntu1:~# apt-get install qemu-user-static

qemu-user-staticなのはchrootするときqemuの使用する同名のライブラリを間違って呼ばないようにするため。
そのためにはchroot後のusr/bin/qemu-arm-staticがコピーされていないといけない。

root@ubuntu1:~# mkdir /media/sdb2/usr/bin
root@ubuntu1:~# cp -pa /usr/bin/qemu-arm-static /media/sdb2/usr/bin/qemu-arm-static

インストール開始します。
root@ubuntu1:/debian# usr/sbin/debootstrap --arch armel squeeze /media/sdb2 http://ftp.us.debian.org/debian


手順4 インストール後の設定

debain用のネットワークの設定をします。

root@ubuntu1:/# vi /etc/network/interfaces
root@ubuntu1:/# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.10
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1

ネットワークの数値は自分の使用しているものにあわせます(例 nameserverは自分のルータIPなど)



オリジナル以外のルートファイルでも起動できるようにinitrd.buffaloのチェックをはずします。

# mount /dev/sdb1 /media/sdb1
# cp -pa /media/sdb1/initrd.buffalo /tmp
# dd if=/tmp/initrd.buffalo bs=64 skip=1 of=/tmp/initrd.gz
70634+1 records in
70634+1 records out
# gunzip /tmp/initrd.gz
# mkdir /media/initrd
# mount -o loop /tmp/initrd /media/initrd
# vi /media/initrd/linuxrc

ファイルの編集は373行目から、以下の8行分コメントアウトします

HasUpdatedFile
if [ $? != 0 ]; then
echo "** has Updated Files **"
echo "** Creating system hotadd pending flag **"
touch /tmp/need_firmup
echo "0x100" >/proc/sys/kernel/real-root-dev
return
fi
if [ "${SUPPORT_RAID}" = on ] ; then
AssembleSysMd
fi

TestRootfs ${DEV_ROOTFS1}
# if [ $? != 0 ]; then
# echo "0x100" > /proc/sys/kernel/real-root-dev
# else
# if [ "${SUPPORT_RAID}" = on ] ; then
# echo "0x901" > /proc/sys/kernel/real-root-dev
# else
echo "0x802" > /proc/sys/kernel/real-root-dev
# fi
IS_HDDROOT=1
# fi
}

保存して終了。

# umount /media/initrd
# gzip /tmp/initrd
# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d /tmp/initrd.gz /media/sdb1/initrd.buffalo

mkimageが入っていない場合は apt-get install u-boot-tools でインストールします(debian,ubuntu系)

完了したらアンマウントします。
# umount /media/sdb1
# umount /media/sdb2
# umount /media/sdb3

DのHDDを取り外してLS-VLに接続します。
電源を入れる。

SSH使えるターミナルソフトを使ってLS-VLにログインします。(teratermなど)
IDはroot、パスはなし


ここでシェルを作成します。(viを起動してiを押したのち、ソースを貼り付けでよい)
root@LS-VLF00:~# vi ~/1.sh
↓ここからシェル
#!/bin/sh

BUF_KERNEL=/dev/sdb1
ROOT=/dev/sdb2
BUF_ROOT=/dev/sdb3
MOUNT=/mnt
mount $BUF_ROOT $MOUNT

cd $MOUNT
echo copy shell file...

tar cvf /sh.tar usr/local/sbin/kernelmon usr/local/sbin/kernelmon.sh usr/local/bin/agingtest_sub.sh usr/local/bin/kernelmon_exec.sh usr/local/bin/fw_deployment.sh usr/local/bin/funcsw.sh usr/local/bin/hdd_normal.sh usr/local/bin/initsw.sh usr/local/bin/lcd_error_man.sh usr/local/bin/led_control.sh usr/local/bin/service_control.sh usr/local/bin/shutdown.sh usr/local/bin/ups_shutdown.sh usr/local/lib/libbuffalo.sh usr/local/lib/libsys.sh usr/local/lib/libmd.sh usr/local/lib/libdisk.sh etc/init.d/networking.sh etc/init.d/SleepCtrl.sh etc/init.d/pwrmgr.sh etc/init.d/pmcd.sh etc/default/buffalo etc/nas_feature usr/local/lib/libsys etc/init.d/logtag usr/local/sbin/miconapl-nomicon usr/local/sbin/miconapl-nomicon.sh etc/init.d/bootcomplete.sh usr/local/sbin/miconapl usr/local/lib/libbuffalo_bin.so usr/local/lib/libbuffalo_bin.so.1 usr/lib/libgcc_s.so.1 lib/libdl-2.5.so lib/libc-2.5.so lib/ld-2.5.so etc/ld.so.conf;

echo paste shell file...
cd /
tar xvf sh.tar

umount $MOUNT
rm /sh.tar echo end.
↑ここまでシェル

root@LS-VLF00:~# chmod 755 ~/1.sh
root@LS-VLF00:~# ~/1.sh

シェル実行後

# /sbin/ldconfig
# /usr/local/sbin/miconapl -a fan_set_speed full

ファンの音が強くなっていれば問題ありません。

miconの起動処理を実行してLEDを点滅から点灯にします。
# /usr/local/sbin/miconapl -a boot_end

電源を落とす場合は
# echo on > /proc/buffalo/gpio/switch/sw_control
# /usr/local/sbin/kernelmon &

を実行したあと、電源スイッチをオフで自動に切れます。

→運用編へ


意見、感想、質問メールなどはこちらから
掲示板はこちら