LANDISK HDL4-Gにtelnet[追記あり]
ついにやりました。ずっとやろうと思って、計画していたこと。それは、LANDISK HDL4-Gにtelnetを入れることです。正確には、telnetは最初から入っていて、それを有効化するだけです。
[amazonjs asin="B000PGVH92" locale="JP"]この記事で紹介したリンク以外にも、telnet有効化の記事はたくさんあります。大変参考になりました。ありがとうございます。
以下の内容を実行すると、LANDISKを壊してしまうかもしれません。自己責任でお願いします。また、データの事前バックアップもしておいた方が良いと思います。
telnetの有効化は、大体、次の手順です。
- データのバックアップ
- 共有フォルダのバックアップ
- システム領域のバックアップ
- ファームウェアアップデートファイルの準備
- ファームウェアアップデート
- telnetdの起動確認
- telnetで接続し、最低限のセキュリティ設定
- パスワード設定
- /etc/securettyの設定
- /etc/init.d/rc.localの修正
- おまけ
- 再起動して動作確認
(1)〜(4)は、Mac OS X/Ubuntuなどで実行します。(5)〜(6)はHDL4-Gの中でします。
(1)データのバックアップ
データをバックアップするのが一番大変です。
(1-1)共有フォルダは、ディスクをマウントしておいて、tarでバックアップしました。私は、作業をMac OS Xでしました。Ubuntuでも同様の方法でできると思います。/Volumes/HD1は、外付けのハードディスクです。バックアップには、十分な容量が必要です。
$ cd /Volumes/LANDISK
$ tar cpf – data | (cd /Volumes/HD1 ; tar xpf – )
(1-2)システム領域は、HDL4-G内のハードディスクを取り出し、直接Ubuntu 9.10につないで、ddでバックアップしました。ddでダンプするだけなので、デバイス名さえわかれば、Mac OS Xでもできると思います。バックアップには、合計、600MB強位の領域が必要です。
$ cd
$ mkdir LANDISK_backup
$ cd LANDISK_backup
$ sudo dd if=/dev/sde1 of=sde1.img
$ sudo dd if=/dev/sde2 of=sde2.img
Ubuntuにつないだ時のデバイス名は、Ubuntuメニューの、システム→システム管理→ディスク・ユーティリティで調べました。USB 2.0とIEEE1394の両方を試してみましたが、どちらも、/dev/sde1と/dev/sde2でした。
telnetができるようになってから調べてみたところ、/dev/sde1は"/boot"、/dev/sde1は"/"にマウントされている様です。
システム領域のバックアップを取ったものの、RAID-5で組まれているデータをリストア出来るかどうかは、不明です。
ddによるバックアップは、次のページを参考にさせていただきました。ありがとうございます。
(追記 2013-02-20 06:46 システム領域は、別の領域にあるらしく、ここに書いた方法では不完全な様です。)
(追記 2013-05-06 21:44 次のページに、システムのバックアップ方法を掲載しました。リストアできるかどうかは、未検証です。)
- HDL4-G2.0の種HDDデータを作る: プラスα空間 (2013年4月14日)
(2)ファームウェアアップデートファイルの準備
ファームウェアアップデート用データの準備が、telnet有効化の鍵です。
調べた限り、telnetの有効化には、大きく分けて二つの流派があることがわかりました。
- 純正ファームウェアアップデート内のファイル(rc.local)を書き換える
- 擬似ファームウェアアップデートでアップデートする
現在リリースされているHDL4-Gのファームウェアバージョンは1.21です。私が使っているHDL4-Gのファームウェアバージョンは1.20でした。ファームウェアのバージョンアップを兼ねて、rc.localを書き換える方法を選びました。
このページに記載されている通りに実行し、うまく行きました。ありがとうございます。
自分のメモ用に、まとめ直させていただきます。pオプションが重要だそうです。
純正ファームウェアは、Mac OS X用がZIPファイルになっているので、扱いが楽です。以下の作業は、Mac OS XかUbuntuでします。私は、Ubuntuで作業しました。純正ファームウェアを、~/Downloadsにダウンロードしたとします。
$ cd $ mkdir work $ cd work $ mv ~/Downloads/hdl4_f121.zip . $ unzip hdl4_f121.zip $ cd hdl4_f121 $ mkdir update $ tar zxvfp update.tgz -C update $ cd update $ mkdir update-files $ tar zxvfp update-files.tar.gz -C update-files $ cd update-files/etc/init.d $ vi rc.local
rc.localは、ファイルの最後に、次の行を足します。
/usr/sbin/telnetd -l /bin/sh
update.tgzを作り直します。
$ tar zcfp ../update-files.tar.gz . $ cd .. $ rm -rf update-files $ tar zcfp ../update.tgz *
すでに、最新のファームウェアにアップデートしている場合は、この方法は使えません。擬似的なファームウェアアップデートファイルを作る必要があります。
この方法は次のページが参考になると思います。勉強させていただきました。ありがとうございます。
- 「忘れないうちに書いておこうシリーズ」 特設ページ
- HDL4-G の telnetd を有効にする – 木になる木
- LANDisk Home(HDL2-G)をいじる:telnetサーバの起動 – アヒルのように歩きアヒルのようにガーガー鳴くならそれはきっとアヒルに違いない – Yahoo!ジオシティーズ
結局、原理的な事は、次のページの通りのようです。ありがとうございます。
(3)ファームウェアアップデートの方法は、取扱説明書を見て下さい。違うのは、(2)で準備したファームウェア"update.tgz"を指定する事です。
(4)ファームウェアアップデート
HDL4-Gが起動したら、telnetdの起動確認をします。しなくても、telnetでつなげてみればわかるので、省略しても構いません。IPアドレスは、環境に合わせて変更してください。
$ nmap -sT 192.168.0.200 Starting Nmap 5.00 ( http://nmap.org ) at 2010-05-22 18:04 JST Interesting ports on 192.168.0.200: Not shown: 991 closed ports PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 139/tcp open netbios-ssn 427/tcp open svrloc 445/tcp open microsoft-ds 548/tcp open afp 3689/tcp open rendezvous 6543/tcp open mythtv 30000/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
telnetが見えるようになりました。
(5)telnetdの起動確認
telnetすると、パスワードも聞かれず、いきなりloginしちゃいます。最低限のセキュリティの設定をします。
を参考にさせていただきました。ありがとうございます。
# mount -o remount,rw,noatime / # passwd # vi /etc/securetty # vi /etc/init.d/rc.local # touch /etc/busybox.conf
(5-1)パスワードの設定に説明は不要でしょう。
(5-2)/etc/securettyには、pts/0とpts/1を追加します。二つ追加する理由は、二つのtelnet接続を受け付けるようにするためです。端末が二つ無いと、各種作業で不便です。
pts/0 pts/1
(5-3)/etc/init.d/rc.localを修正します。
/usr/sbin/telnetd -l /bin/sh
↓
/usr/sbin/telnetd
(5-4)/etc/busybox.confを作ります。これは、してもしなくても良いのですが、設定しておいた方が心休まるかもしれません。
LANDISKは、BusyBoxのtelnetdを使っている様です。
# ls -l /usr/sbin/telnetd
lrwxrwxrwx 1 root root 17 2007-05-09 14:49 telnetd -> ../../bin/busybox
BusyBoxについては、WikiPediaをどうぞ。
(6)再起動して動作確認
再起動します。
# reboot
起動したら、telnetで接続します。login: と聞かれるので、rootと設定したパスワードを入力して、loginします。
ディスカッション
コメント一覧
まだ、コメントがありません