準備

Debian LS-QVL

まずは 準備(LS-QL の場合) の手順。

標準ファームに root でログインできるようにする

標準ファームの HDD のコピー

(1) ドライブ1に標準ファームの HDD をセット、 ドライブ2にパーティションを削除した HDD をセットして起動します。

パーティションを削除した HDD をドライブ2にセットして起動

何故か DISK2 の LED も緑点灯。謎

(2) 標準ファームの Web 管理画面を用い DISK2 を XFS でフォーマットします。

「システム」→「ディスク」で ディスク2が「取り外し済」になっているので、 ディスク2を選択して「ディスクフォーマット」を実行
I20 ハードディスクをフォーマット中です
しばらくしてフォーマットが終了。

「システム」→「ディスク」でディスク2が正常に認識されていることを確認。

「共有フォルダー」から、share の共有を「削除」しておく

(3) 電源 OFF。コンセントも抜きます。

標準ファームで起動

ドライブ1の HDD を抜き、 ドライブ2の HDD をドライブ1にセットし、 起動。

E22 「ハードディスクのマウントに失敗しました。」
だけど気にしない。

ハックキットのファイルを置く

まずは管理画面の「共有フォルダー」→「共有フォルダー」で 「共有フォルダーの作成」して share という共有フォルダーを作成、、

しようとしたら、 必須項目である「ディスク領域」の選択肢がなく選べない、
必須項目であるためスキップもできない
という地雷を踏んでしまった。

いつまでこんな品質のものを出しているの??

目的は共有フォルダを作ることではないので、 ftp でファイルを転送する

root@LS-QVLF42:~# mkdir -p /mnt/disk1/share/hackkit
root@LS-QVLF42:~# cd !$
cd /mnt/disk1/share/hackkit
root@LS-QVLF42:/mnt/disk1/share/hackkit# ftp 192.68.2.50
-bash: ftp: command not found
root@LS-QVLF42:/mnt/disk1/share/hackkit# sftp yasunari@192.168.2.50
Connecting to 192.168.2.50...
The authenticity of host '192.168.2.50 (192.168.2.50)' can't be established.
RSA key fingerprint is 1a:23:8b:dd:82:a8:bc:67:e6:27:ed:cb:59:23:c2:41.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.50' (RSA) to the list of known hosts.
yasunari@192.168.2.50's password:
sftp> cd /mnt/disk1/share/hackkit/current
sftp> ls
.                                       ..
busybox-telnetd_static                  hackkit_config.sample
hackkit_wheezy_131215.sh                hackkit_wheezy_armel_131216.tar.gz
hackkit_wheezy_armhf_131216.tar.gz      mkimage
ramroot_131208.sh
sftp> mget *
Fetching /mnt/disk1/share/hackkit/current/busybox-telnetd_static to busybox-telnetd_static
/mnt/disk1/share/hackkit/current/busybox-teln 100%  631KB 631.4KB/s   00:01
Fetching /mnt/disk1/share/hackkit/current/hackkit_config.sample to hackkit_config.sample
/mnt/disk1/share/hackkit/current/hackkit_conf 100%   35     0.0KB/s   00:00
Fetching /mnt/disk1/share/hackkit/current/hackkit_wheezy_131215.sh to hackkit_wheezy_131215.sh
/mnt/disk1/share/hackkit/current/hackkit_whee 100%   20KB   0.0KB/s   00:00
Fetching /mnt/disk1/share/hackkit/current/hackkit_wheezy_armel_131104.tar.gz to hackkit_wheezy_armel_131104.tar.gz
/mnt/disk1/share/hackkit/current/hackkit_whee 100%   98MB 848.3KB/s   01:46
Fetching /mnt/disk1/share/hackkit/current/hackkit_wheezy_armhf_131104.tar.gz to hackkit_wheezy_armhf_131104.tar.gz
/mnt/disk1/share/hackkit/current/hackkit_whee 100%   95MB 851.0KB/s   01:45
Fetching /mnt/disk1/share/hackkit/current/mkimage to mkimage
/mnt/disk1/share/hackkit/current/mkimage      100%   16KB   0.0KB/s   00:00
Fetching /mnt/disk1/share/hackkit/current/ramroot_131208.sh to ramroot_131208.sh
/mnt/disk1/share/hackkit/current/ramroot_1312 100% 1265     0.0KB/s   00:00
sftp> bye
root@LS-QVLF42:/mnt/disk1/share/hackkit#
armhf は要らなかった。。。
root@LS-QVLF42:/mnt/disk1/share/hackkit# ls -l
-rw-r--r--    1 root     root       646596 Dec 21 01:27 busybox-telnetd_static
-rw-r--r--    1 root     root           35 Dec 21 01:27 hackkit_config.sample
-rw-r--r--    1 root     root        20132 Dec 21 01:27 hackkit_wheezy_131215.sh
-rw-r--r--    1 root     root    102307216 Dec 21 01:28 hackkit_wheezy_armel_131104.tar.gz
-rw-r--r--    1 root     root    100029705 Dec 21 01:30 hackkit_wheezy_armhf_131104.tar.gz
-rw-r-----    1 root     root        15920 Dec 21 01:30 mkimage
-rw-r--r--    1 root     root         1265 Dec 21 01:30 ramroot_131208.sh
root@LS-QVLF42:/mnt/disk1/share/hackkit#

RamBoot モードへの変更

(1) 標準ファームに root でログインします。

(2) initrd.buffalo の変更

先日変更した ramroot_131208.sh を実行する
root@LS-QVLF42:/mnt/disk1/share/hackkit# sh -x ramroot_131208.sh
+ echo Extracting initrd...
Extracting initrd...
+ umount /boot
+ mount /dev/md0 /boot
+ cd /boot
+ dd if=initrd.buffalo of=initrd.gz bs=64 skip=1
150736+1 records in
150736+1 records out
+ gunzip initrd.gz
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop0 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop1 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop2 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop3 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop4 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop5 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop6 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop7 ']'
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop8 ']'
+ mknod /dev/loop8 b 7 8
+ for minor in 0 1 2 3 4 5 6 7 8 9
+ '[' '!' -e /dev/loop9 ']'
+ mknod /dev/loop9 b 7 9
+ echo mounting initrd...
mounting initrd...
+ mkdir /tmp/root
+ mount -o loop initrd /tmp/root
+ echo editing linuxrc...
editing linuxrc...
+ cd /tmp/root
+ mv linuxrc linuxrc.orig
+ sed -e 's/^ANSWER=.*$/ANSWER=1/' -e /-RamdiskRoot-/a/usr/sbin/telnetd linuxrc.orig
+ chmod 700 linuxrc
+ echo 'copying telnetd...'
copying telnetd...
+ cp /mnt/disk1/share/hackkit/busybox-telnetd_static usr/sbin/telnetd
+ chmod +x usr/sbin/telnetd
+ echo 'clearing root'\''s password...'
clearing root's password...
+ cd /tmp/root/etc
+ mv shadow shadow.orig
+ sed -e 's/^root:[^:][^:]*:\(.*\)$/root::\1/' shadow.orig
+ chmod 400 shadow
+ echo rebuilding initrd.buffalo...
rebuilding initrd.buffalo...
+ cd /boot
+ umount /tmp/root
+ echo gziping initrd ... wait 5 minutes
gziping initrd ... wait 5 minutes
+ gzip initrd
+ '[' '!' -f initrd.buffalo.orig ']'
+ mv initrd.buffalo initrd.buffalo.orig
+ chmod +x /mnt/disk1/share/hackkit/mkimage
+ /mnt/disk1/share/hackkit/mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
Image Name:   initrd
Created:      Sat Dec 21 01:32:22 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    9923118 Bytes = 9690.54 kB = 9.46 MB
Load Address: 0x00000000
Entry Point:  0x00000000
root@LS-QVLF42:/mnt/disk1/share/hackkit#
できたか??

(3) 電源 OFF。コンセントも抜きます。

(4) コンセントを刺し、電源 ON。RamRoot モードで起動してきます。

どうやって確認しろと??

ログイン

telnet する
yasunari@sil:~$ telnet qvl
Trying 192.168.2.56...
Connected to qvl.
Escape character is '^]'.

BUFFALO INC. LinkStation series
sh-3.2#
OK!

時計を合わせる

sh-3.2# date
Sat Dec 21 01:34:42 JST 2013
sh-3.2#
だいたい合ってる

ディスクのマウント

sh-3.2# mkdir /mnt/disk1
sh-3.2# mount /dev/sda6
ここまでタイプして気がついた。
さっきハックキットのファイルを置いたのは、 sda6 ではなくて、root fs (md1) では??
sh-3.2# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4]
unused devices: 
sh-3.2# mdadm --assemble -scan
mdadm: /dev/md/10 has been started with 1 drive (out of 4).
mdadm: /dev/md/1 has been started with 1 drive (out of 4).
mdadm: /dev/md/0 has been started with 1 drive (out of 4).
sh-3.2# ls -l /dev/md*
brw-r-----    1 root     disk       9,   0 Dec 21 01:36 /dev/md0
brw-r-----    1 root     disk       9,   1 Dec 21 01:36 /dev/md1
brw-r-----    1 root     disk       9,  10 Dec 21 01:36 /dev/md10

/dev/md:
lrwxrwxrwx    1 root     root            6 Dec 21 01:36 0 -> ../md0
lrwxrwxrwx    1 root     root            6 Dec 21 01:36 1 -> ../md1
lrwxrwxrwx    1 root     root            7 Dec 21 01:36 10 -> ../md10
sh-3.2#
マウントする
sh-3.2# mkdir /tmp/root
sh-3.2# mount /dev/md1 /tmp/root
sh-3.2#
中を見る
sh-3.2# ls /tmp/root
bin         etc         lib         proc        sbin        usr
boot        home        lost+found  resources   sys         var
dev         initrd      mnt         root        tmp         www
sh-3.2# ls /tmp/root/mnt/disk1/share/hackkit/
busybox-telnetd_static              hackkit_wheezy_armhf_131104.tar.gz
hackkit_config.sample               mkimage
hackkit_wheezy_131215.sh            ramroot_131208.sh
hackkit_wheezy_armel_131104.tar.gz
sh-3.2#
やっぱり。

/dev/sda6 をフォーマットする

sh-3.2# mke2fs -j /dev/sda6
mke2fs 1.40.5 (27-Jan-2008)
Warning: 256-byte inodes not usable on older systems
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
29597696 inodes, 118367232 blocks
5918361 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
3613 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
sh-3.2#
/mnt/disk1 をマウントする
sh-3.2# mount /dev/sda6 /mnt/disk1
sh-3.2#
ハックキットのファイルをコピーする
sh-3.2# cd /tmp/root/mnt/disk1/
sh-3.2# tar cf - share | (cd /mnt/disk1/; tar xvf -)
share/
share/hackkit/
share/hackkit/hackkit_config.sample
share/hackkit/mkimage
share/hackkit/hackkit_wheezy_131215.sh
share/hackkit/hackkit_wheezy_armel_131104.tar.gz
share/hackkit/ramroot_131208.sh
share/hackkit/hackkit_wheezy_armhf_131104.tar.gz
share/hackkit/busybox-telnetd_static
sh-3.2# ls -l /mnt/disk1/share/hackkit/
-rw-r--r--    1 root     root       646596 Dec 21 01:27 busybox-telnetd_static
-rw-r--r--    1 root     root           35 Dec 21 01:27 hackkit_config.sample
-rw-r--r--    1 root     root        20132 Dec 21 01:27 hackkit_wheezy_131215.sh
-rw-r--r--    1 root     root    102307216 Dec 21 01:28 hackkit_wheezy_armel_131104.tar.gz
-rw-r--r--    1 root     root    100029705 Dec 21 01:30 hackkit_wheezy_armhf_131104.tar.gz
-rwxr-x--x    1 root     root        15920 Dec 21 01:30 mkimage
-rw-r--r--    1 root     root         1265 Dec 21 01:30 ramroot_131208.sh
sh-3.2#
root はアンマウントしておく
sh-3.2# cd /
sh-3.2# umount /tmp/root
sh-3.2#


LS-QVL
バッファローダイレクト
楽天市場
amazon
ドスパラ
livedoor デパート
Yahoo!ショッピング
バリューモア
ムラウチドットコム


散歩
ハックの記録
LinkStation/玄箱 をハックしよう

インストール

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

Copyright (C) 2003-2013 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市