LinkStation LS-QLシリーズのハードディスクが調子悪くなったため、LinkStationにtelnetで入り込んで、復旧作業をしています。
LinkStationはLinuxを独自にカスタマイズしたOSをファームウェアとして使っています。
そのため、Linuxの知識があれば、LinkStationをLinuxサーバのようにして使うことも可能です。
ただし、コマンドラインでLinkStationをいじり倒してしまうと、元々LinkStationに備わっているGUIの「管理ページ」での設定状態と同期が取れなくなり、完全復旧への道のりは遠回りになります。
本記事では、LinkStationを一時的に復旧させて、とにかく中のデータだけでも救済したい場合に使えるノウハウとして、LinkStationにtelnetでログインして、sambaのファイ共有設定(ファイル名で言うとsmb.conf)を直接編集する方法について解説します。
なお、LinkStationにtelnetログイン出来るようにするテクニックは以下の記事に書いてあります。
↓
LinkStationのtelnet化手順【RAIDでもOK】
LinkStationのファイル共有プログラム調査
まず、uname -aでLinuxの種類を調べます。
⇒ LinkStation独自Linuxのようでした
次に、ファイル共有のプログラムを調べます。
⇒ NFSではなく、samba(smbd,nmbd)でした。
ちなみに、psコマンドでプロセスを表示させるときは、オプション無しでpsと叩く必要があります。
⇒ 結果は以下の通り
root@LS-QLF9C:~# ps
PID Uid VSZ Stat Command
1 root 3364 S init
2 root SW< [kthreadd]
3 root SWN [ksoftirqd/0]
4 root SW< [events/0]
5 root SW< [khelper]
32 root SW< [kblockd/0]
45 root SW [crypto]
46 root SW [crypto_ret]
49 root SW [pdflush]
50 root SW [pdflush]
51 root SW< [kswapd0]
52 root SW< [aio/0]
53 root SW< [xfslogd/0]
54 root SW< [xfsdatad/0]
242 root SW< [scsi_eh_0]
243 root SW< [scsi_eh_1]
288 root SW< [mtdblockd]
471 root SW< [md0_raid1]
520 root SW< [md10_raid1]
524 root SW< [md1_raid1]
594 root SW< [xfsbufd]
595 root SW< [xfssyncd]
982 root SW< [kjournald]
1026 root 3276 S /usr/local/apache/bin/httpd
1064 root SW< [khubd]
1317 root 1856 S syslogd -m 0
1319 root 2368 S klogd
1324 root 3624 S /usr/sbin/inetd
1328 root 1792 S /usr/local/sbin/errormon
1332 root 2268 S /bin/sh /usr/local/sbin/kernelmon
1350 root 2508 S /bin/sh /usr/local/sbin/miconmon_exec.sh start
1697 root SW< [xfsbufd]
1698 root SW< [xfssyncd]
2007 root 3404 S /bin/bash2 /usr/local/sbin/diskmon_exec.sh start
2129 root 2216 S /usr/local/sbin/clientUtil_server -i eth0
2167 root 4168 S /usr/local/sbin/lsprcvd -i eth0
2171 root 1764 S /usr/local/sbin/daemonwatch -a /etc/daemonwatch.list
2177 root 3364 S /usr/sbin/crond
2333 root 18092 S /usr/local/BootServer/rarpd
2334 root 1700 S /usr/local/BootServer/tftpd
2335 root 9892 S /usr/local/BootServer/rarpcfgd
2338 root 1568 S /usr/local/BootServer/fwupdated
2979 root 3232 S cat /proc/buffalo/kernevnt
4242 root SW< [xfsbufd]
4243 root SW< [xfssyncd]
5326 root 1740 S /usr/local/sbin/mDNSResponderPosix -b -f /etc/bonjour.config
5795 root 10304 S /usr/local/sbin/smbd -D
5799 root 10436 S /usr/local/sbin/smbd -D
5804 root 6020 S /usr/local/sbin/nmbd -D
5832 root 2272 S lpd Waiting
6203 root 3364 R /usr/sbin/telnetd
6204 root 3368 S /sbin/getty -L ttyS0 115200 vt100
17039 root 3364 S /usr/local/apache/bin/httpd
17040 root 3364 S /usr/local/apache/bin/httpd
17041 root 3364 S /usr/local/apache/bin/httpd
17042 root 3364 S /usr/local/apache/bin/httpd
17049 root 3364 S /usr/local/apache/bin/httpd
17257 root 3232 S sleep 10
17268 root 3232 S sleep 3
17269 root 3368 R ps
17408 root 2412 S -sh
28815 root SW< [md2_raid5]
だいぶ、LinkStationを丸裸にしている気分になってきました(笑)。
LinkStationのsamba定義ファイル(smb.conf)の編集方法
・sambaだと分かったので、/etc/samba/smb.confを編集します
⇒ 以下の行を追加しました
[array2]
comment = hogehoge
path = /mnt/array2
browsable = yes
printable = no
writable = no ← とりあえず読み出し専用として設定
guest ok = yes
csc policy = disable
・/etc/samba/smb.confをsambaのプロセス(smbd,nmbd)に再読み込みさせるために、刺激を与えます
⇒ 以下のようにします
root@LS-QLF9C:~# ps | grep smb
5795 root 10304 S /usr/local/sbin/smbd -D
5799 root 10436 S /usr/local/sbin/smbd -D
17456 root 3368 S grep smb
root@LS-QLF9C:~# kill -1 5795
root@LS-QLF9C:~# kill -1 5799
root@LS-QLF9C:~# ps | grep nmb
5804 root 6020 S /usr/local/sbin/nmbd -D
18077 root 3368 R grep nmbd
root@LS-QLF9C:~# kill -1 5804
root@LS-QLF9C:~#
これで/mnt/array2というディレクトリが、array2という名前でLinkStationからファイル共有されるようになります。
NASの復活です!
sambaの設定ファイルを直接編集してLinkStationをファイルサーバとして復活させるのは、データをサルベージするための応急処置です。
データが全て壊れていないかどうかは、この時点では分かりませんので注意が必要です。
LinkStationのHDDが壊れてEMモードにすらならずにハマってしまったけれど、Linuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。
コメント