WD ShareSpace: обновление и улучшение

Как я писал раньше, с WD ShareSpace были некоторые проблемы и шероховатости, вроде омерзительно низкой скорости предечи данных. Кое что удалось решить.

Во-первых, проблема с нечитаемыми Finder’ом некоторыми директориями и файлами при монтировании ФС по NFS. Оказалось, что проблема в символе ‘й’: там, где он есть возникала проблема чтения. Там, где его нет – все ОК. Проблема в Finder’e (ls прекрасно все видит), решил переименованием.

Во-вторых, на устройстве весь софт очень старый и его мало.В WD решили уже ничего не обновлять, ну и черт с ними в конце концов, это же linux. Собственно, мени интересовало отключение всего ненужного, вроде iTunes Server, Twonky и Moinet и замена Samba с 3.0, которая выдает 3-7 МБ/с на 3.6, которая выдает 15 и обновлении сервера NFS. Как и большинство готовых “коробок”, WD ShareSpace страдает от карательного обрезания всего чего можно, / имеет размер в 200 мегабайт. Вопрос решаем просто:

– втыкаем в USB флешку (/dev/sdg)
– форматируем ее в ext3
– прописываем в /etc/init.d/rcS ‘mount /dev/sdg1 /opt’ предпоследней строкой.

Теперь у нас есть /opt большого размера, куда мы будем ставить то, что нам надо. Нужен репозитарий, откуда ставить, вот он:

wget http://mybookworld.wikidot.com/local–files/optware/setup-whitelight.sh

Это репозитарий от немного другого по форме устройства, белого WD MyBook, но он подходит. На вский случай, сам скрипт:

# feed=http://ipkg.nslu2-linux.org/feeds/optware/cs05q1armel/cross/unstable
# ipk_name=$(wget -qO- $feed/Packages | awk ‘/^Filename: ipkg-opt/ {print $2}’)
# wget $feed/$ipk_name
# tar -xOvzf $ipk_name ./data.tar.gz | tar -C / -xzvf –
# mkdir -p /opt/etc/ipkg
# echo “src armel $feed” > /opt/etc/ipkg/armel-feed.conf
# wget http://mybookworld.wikidot.com/local–files/optware/sort_dirname.tar.gz
# tar xvfz sort_dirname.tar.gz -C /

Как видно, он ставит все в /opt, что нам и надо. Далее, устанавливаем при помощи ipkg samba36 и nfs-utils:

/opt/bin/ipkg install samba36
/opt/bin/ipkg install nfs-utils

Теперь можно перенести из /etc/init.d всякую ненужную муть напримр в /root, чтобы иметь возможность откатиться. Вот список мусора: S10portmap, S55mini_httpd, S80nfsd, S90smbd, S97twonkyserver, S9M_mionet, S9WiAutoConfig, _S93RemoveTwonkyINI-2.sh, _S93RemoveTwonkyINI.sh, _SK9iTune,S99sxminit, S95windbindd, S96wixalarm, S9mDNSResponder. Кроме того, я убрал из /etc rc.monitor_io и rc.nmbd.

Оригинальные скрипты я заменл на лежащие в /opt/etc/init.d:
~ $ ls -la /etc/init.d/
drwxr-xr-x 2 root root 1024 May 6 20:47 .
drwxr-xr-x 11 root root 3072 May 6 21:33 ..
-rwxr-xr-x 1 root root 1792 May 6 20:49 S01auto_mountd
lrwxrwxrwx 1 root root 26 May 6 18:25 S10portmap -> /opt/etc/init.d/S55portmap
-rwxrwxr-x 1 root root 777 Dec 8 2006 S40network
lrwxrwxrwx 1 root root 9 May 5 20:58 S50sshd -> _SK50sshd
-rwxrwxr-x 1 root root 395 Jun 27 2006 S60inetd
lrwxrwxrwx 1 root root 28 May 6 18:24 S80nfsd -> /opt/etc/init.d/S56nfs-utils
lrwxrwxrwx 1 root root 13 Oct 14 2011 S85ntpdated -> _SK85ntpdated
lrwxrwxrwx 1 root root 24 May 6 17:53 S90smbd -> /opt/etc/init.d/S08samba
-rwxr-xr-x 1 root root 1860 Apr 2 2009 S94fuse
-rwxr-xr-x 1 root root 918 Sep 1 2011 S98logrotate
-rwx—— 1 root root 98 Apr 24 00:10 S99toptware
-rwxr-xr-x 1 root root 806 Sep 1 2011 S9lltd
-rwxr-xr-x 1 root root 1068 Sep 1 2011 _SK50sshd
-rwxr-xr-x 1 root root 476 Sep 1 2011 _SK75apcupsd
-rwxr-xr-x 1 root root 898 Sep 1 2011 _SK80nfsd
-rwxr-xr-x 1 root root 573 Sep 1 2011 _SK85ntpdated
-rwxr-xr-x 1 root root 7884 Sep 1 2011 _SK91atalk
-rwxrwxr-x 1 root root 1822 Sep 27 2007 _SK9C_cds
-rwxr-xr-x 1 root root 2077 May 6 20:29 rcH
-rwxr-xr-x 1 root root 7793 May 6 21:02 rcS
~ $
Файлы конфигурации аналогично делаем симолинками в наш /opt.

После этого по непонятной причине стали стартовать не все скрипты, решение – принудительный старт из /etc/init.d/rcS. Добавл в конец:

/etc/init.d/S10portmap start
/etc/init.d/S80nfsd start
/etc/init.d/S90smbd start

Так же я отключил там мигание лампочками и уведомления веб-интерфейса (он уже отключен) и системных говноскриптов на php о разных событиях. В /etc/init.d/S01auto_mountd отключил все, что связано с квотой.

Все, после перезагрузки примерно такая картина:

~ $ ps ax
PID Uid VmSize Stat Command
1 root 496 S init
2 root SWN [ksoftirqd/0]
3 root SW< [events/0]
4 root SW< [khelper]
5 root SW< [kthread]
10 root SW< [kblockd/0]
13 root SW [khubd]
45 root SW [pdflush]
46 root SW [pdflush]
48 root SW< [aio/0]
47 root SW [kswapd0]
50 root SW< [xfslogd/0]
51 root SW< [xfsdatad/0]
52 root SW [xfsbufd]
181 root SW [scsi_eh_0]
182 root SW [scsi_eh_1]
183 root SW [scsi_eh_2]
184 root SW [scsi_eh_3]
222 root SW [mtdblockd]
240 root SW [scsi_eh_4]
241 root SW [usb-storage]
246 root SW [scsi_eh_5]
247 root SW [usb-storage]
252 root SW [scsi_eh_6]
253 root SW [usb-storage]
264 root SW [md1_raid1]
265 root SW [md0_raid1]
362 root SW [kjournald]
448 root 636 S udhcpc -n -p /var/run/udhcpc.egiga0.pid -i egiga0
694 root SW [wixbtn_thread]
697 root 288 S /usr/bin/wixled_blink gpio06
722 root SW [kjournald]
788 root 636 S udhcpc -n -p /var/run/udhcpc.egiga0.pid -i egiga0
808 root 1400 S /usr/sbin/sshd
817 root 684 S /usr/sbin/inetd
834 root 388 S /usr/sbin/ntpdated 86400
855 root 568 S /usr/sbin/logrotate /etc/logrotate.conf
869 root 504 S /usr/sbin/lld2d egiga0
877 root 1668 S sshd: root@pts/0
881 root SW [kjournald]
895 daemon 372 S /opt/sbin/portmap
909 root 780 S /opt/sbin/statd
913 root SW [nfsd]
915 root SW [lockd]
916 root SW< [rpciod/0]
917 root 740 S /opt/sbin/mountd
926 root 724 S -sh
937 root 2324 S /opt/sbin/nmbd -D
945 root 3992 S /opt/sbin/smbd -D
952 root 632 S /sbin/getty -L ttyS0 115200 vt100
953 root 3764 S /opt/sbin/smbd -D
1020 shaman00 5092 S /opt/sbin/smbd -D
1445 root 4240 S /opt/sbin/smbd -D
1446 root 4244 S /opt/sbin/smbd -D
1461 root 4440 S /opt/sbin/smbd -D
1468 root 4636 S /opt/sbin/smbd -D
1832 root 4248 S /opt/sbin/smbd -D
1833 root 4248 S /opt/sbin/smbd -D
1852 shaman00 4436 S /opt/sbin/smbd -D
1857 shaman00 4480 S /opt/sbin/smbd -D
2068 root 632 R ps ax

В результате:

– новые версии Самбы и NFS. Теперь телевизор гораздо быстрее получает листинги, а на устройство можно гораздо быстрее копировать файлы.
– выключено все, что не является файловым сервером, особенно мионет и твонки.