故障したLinkStationのsamba設定を直接編集した話(ファイル共有)

2021年2月10日

Windows10からアクセスしているうちに、壊れてしまったLinkStation。

前回はRAID5をデグレードで再構築させました。

次はいよいよNASとしての機能、ファイル共有機能の復活です。

LinkStationをLinuxサーバとして起動している訳ですが、ここまで来ると、なかなか後には引けなくなって、LinkStationの管理ページにアクセスすることも危険になってきます。

何故なら、

・管理ページでの設計値・設定値と、私がいじり倒した現在の動作に、差が出てきた
・管理ページでは、設計値・設定値に合わせて、裏でLinuxのコマンドが走る仕組みになっている
・LinkStationを再起動すると、私がいじり倒した部分が管理ページに上書きされる(らしい)

ということです。つまり、私は再起動無しに、NASを復活させなくてはならなくなったのです。

では、行きます!

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定義ファイルを直接編集

・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の機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。

故障したLinkStationから自力でデータ復旧した方法