Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

mybook.jpg

Cette page va résumer de manière très succincte tout ce que j'ai fait sur mon My Book World Edition 1TB (Firmware 1.0.18) et tout ce que j'ai modifié dessus. Il faut savoir que je n'ai quasiment rien fait dessus, juste ce qui m'intéressait, en Googlant vous devriez pouvoir trouver BEAUCOUP d'autres utilisations de ce NAS !

Désormais, mes disques ne se reveillent que lorsque j'y accède, c'est ce que je souhaitais. J'essayerais de maintenir cette page au fur et à mesure des modifications et des astuces que je trouverais.

Néanmoins, je ne suis pas une assistance technique et je ne peux garantir que ces hacks marchent sur votre NAS. Je ne suis également en aucun cas responsable des dommages que vous pouvez causer à votre périphérique au cours de ces manipulations.

Beaucoup d'informations sont tirées du site de Martin Hinner, kyyhkynen, sans oublier le forum MyBookWorld.

Caractéristiques Techniques

Ce que vous trouverez dans votre My Book World Edition II Pro 1Tb (Pfiou c'est long !).

  • Processor: ARM based Oxford Semiconductor OXE800 DSE running at 200MHz. Cette puce possède une Virtual Machine Java en natif.
  • RAM: 32MB ram DDR333?
  • Gigabit Ethernet: Cicada Simpliphy VT6122
  • Operating System: Linux 2.6.17 based custom distribution.
  • File System: ext3
  • SMB/CIFS version: Samba version 3.0.23c
  • Web Server: Lighttpd version 1.4.3
  • Drives : 2xWD5000AAKS serial ATA drives with 16MB cache each

Vous trouverez à peu près tout ce que vous voulez dans la distribution Linux fournit, y compris GCC pour compiler et installer les packages que vous souhaité

[root@abricot]# cat /proc/cpuinfo
Processor       : ARM926EJ-Sid(wb) rev 5 (v5l)
BogoMIPS        : 99.73
Features        : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 4
I line length   : 32
I sets          : 256
D size          : 32768
D assoc         : 4
D line length   : 32
D sets          : 256
 
Hardware        : Oxsemi NAS
Revision        : 0000
Serial          : 0000000000000000

Obtenir un accès SSH

On trouve deux méthodes disponibles actuellement sur le Web, pour la première il vous faudra ouvrir votre NAS, brancher vos disques durs une machine (qui possède un *Unix) et effectuer quelques manipulations basiques. Il y a la deuxième méthode sur laquelle nous allons rester car elle est beaucoup simple. Elle a été crée par Martin Hinner. Cette partie ne fera que reprendre ce qui est décrit sur cette page.

Il vous suffit de créer un utilisateur via l’interface de configuration du NAS (par défaut il n’y en a pas du tout, attention à cette étape, ne la sautez pas !). Ensuite il vous suffit d’entrer cette url dans votre navigateur :

 http://<IP-OF-YOUR-MYBOOK>/auth/firmware_upgrade.pl?fwserver=martin.hinner.info/mybook/firmware.php

Vous devriez voir un message apparaître et qui vous signale qu’un nouveau firmware est disponible. Cliquez sur “Click to download and install”.

Attention : Si vous recevez un message qui vous dit qu’il n’y a pas de firmware disponible, c’est très simplement que votre My Book n’a PAS accès à Internet. Ne cherchez pas avec la version de votre firmware, aucun contrôle de version n’est effectué !

Contrairement à ce qu’il est écrit, le processus ne prend pas 30minutes mais 1 ou 2 minutes. Le temps de générer les host keys ssh. Une fois que c’est fait, le mot de passe du root est reseté à null.

Tentez de vous connecter en ssh sur votre my book, au bout de quelques minutes, cela devrait être possible. Loguez vous avec l’utilisateur créer tout au début, puis faites simplement

su 

. Vous voilà root ! Note : Vous ne pouvez pas vous connecter en root directement, sshd ne l’autorise pas !

Lancer SSHD au démarrage

C’est très simple, il vous suffit d’éditer le fichier /etc/inittab grâce à vi, et d’y ajouter la ligne (un peu où vous le souhaitez) :

 ::sysinit:/usr/sbin/sshd

Vous pouvez redémarrer votre MyBook, tout devra marcher comme sur des roulettes !

Une alternative à l'interface Web par défaut

Martin Hinner (toujours lui !) a crée un outil d'administration web pour notre NAS. Il est très léger, très simple et va vous permettre d'éditer des fichiers de configurations directement dans votre browser. Cet outil tourne sur le port 8080, de ce fait vous pourrez l'utiliser conjointement avec l'outil original de Western Digital !

Comment on l'installe ? Très simplement. Loguez vous sur votre MyBook en tant que root et lancez ça :

# wget http://geekboy.fr/stuff/script/mybook/busybox.tar.gz -q -O - | tar xzvf - -C /
# wget http://geekboy.fr/stuff/script/mybook/haserl.tar.gz -q -O - | tar xzvf - -C /
# wget http://geekboy.fr/stuff/script/mybook/webif.tar.gz -q -O - | tar xzvf - -C /

Ces commandes vont télécharger trois tarball depuis mon serveur (je les ai mis là afin d'être certain de les retrouver, je me méfie de ce genre de fichiers qui disparaissent du net justement quand on a besoin d'eux !). Le premier est une version recompilé de BusyBox avec le support du http. Le second est un script shell amélioré et enfin le troisième est l'interface web avec les scripts de démarrage.

Attention : N'interrompez surtout pas le téléchargement et l'installation du premier tarball, sinon vous allez broyer /bin/busybox. Ce qui briquera votre NAS.

Vous pouvez redémarrer votre MyBook pour profiter de la nouvelle interface. L'utilisation et le mot de passe par défaut sont root/mypassword. Vous pouvez les changer dans /etc/httpd.conf

Retirer MioNet

Je ne sais pas pour vous, mais en ce qui me concerne, ce logiciel n’a été qu’une plaie et de plus, il ne sert pas à grand chose (qui a dit à rien ?). Et ça va nous épargner quelques octets de mémoires ce qui peut être intéressant. Loguez vous en tant que root et effectuez les actions suivantes :

# su
# vi /etc/init.d/post_network_start.sh

Soit vous commentez la ligne suivante dans tout le fichier ou alors vous l'effacez complètement :

 # $SCRIPTS_PATH/mionet.sh start 

Redémarrez le Mybook pour que les changements soient pris en compte.

Je vous conseille très fortemment de passer en IP fixe afin de limiter le nombre d'écriture sur le disque, ce qui sera très utile pour la suite de ce tutoriel et le bon fonctionnement du script de spindown.

Désinstaller Samba et utiliser NFS

Le but de ce changement ? Economiser de la RAM tout d'abord. En effet Samba prends 12mo de ram chez moi, sur les 30 disponibles, ça représente presque 50%, c'est beaucoup trop. De plus en libérant cette RAM, ça permettra d'obtenir de meilleur vitesse de transferts.

Premièrement on va retirer Samba du démarrage, pour cela, on édite le fichier /etc/init.d/nerwork_servers.sh

Il vous suffit de commentez les lignes qui ne vous intérésse pas dans les zones start et stop. En ce qui me concerne j'ai retiré lighttpd, samba et ntp qui ne me servent pas et qui me font economiser énormément de ram. Pour être sûr que personne ne puisse réactiver Samba via une connection, il faut tuer le processus inetd. Pour faire simple, inetd écoute les ports standards et quand un paquet TCP arrive sur l'un de ces ports, il se charge de lancer le service approprié. Pratique dans bien des cas mais pas pour nous !

Une fois ce fichier editez, il vous faudra créer un fichier nfsd.sh dans le repertoire /etc/init.d/, il contiendra :

#!/bin/sh
#
# Start NFS
#
 
 start() {
     echo "Starting NFS"
     /sbin/modprobe nfsd
     sleep 2
     start-stop-daemon --start --exec /sbin/portmap
     start-stop-daemon --start --exec /usr/sbin/rpc.mountd
     start-stop-daemon --start --exec /usr/sbin/rpc.nfsd
     start-stop-daemon --start --exec /usr/sbin/rpc.statd
     start-stop-daemon --start --exec /usr/sbin/rpc.lockd
     start-stop-daemon --start --exec /usr/sbin/rpc.rquotad
     /usr/sbin/exportfs -a        # explicit exportfs is required!
}
 
stop() {
     echo "Stopping NFS"
     start-stop-daemon --stop --exec /usr/sbin/rpc.rquotad
     start-stop-daemon --stop --exec /usr/sbin/rpc.lockd
     start-stop-daemon --stop --exec /usr/sbin/rpc.statd
     start-stop-daemon --stop --exec /usr/sbin/rpc.nfsd
     start-stop-daemon --stop --exec /usr/sbin/rpc.mountd
     start-stop-daemon --stop --exec /sbin/portmap
}
 
restart() {
     stop
     start
}
 
case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        restart
    ;;
    cleanup)
    ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac
 
exit $?

Une fois cela fait, il ne vous reste qu'à le chmoder en 0700 et vérifier qu'il appartient à root:root.

Pour la suite, c'est très simple, retournez dans le fichier /etc/init.d/network_servers.sh et rajoutez :

$SCRIPT_PATH/nfs.sh start 

Pour la partie start et

$SCRIPT_PATH/nfs.sh stop

pour la partie stop.

Une fois cela fait, il vous reste à créer votre fichiers /etc/exports (si ce dernier n'existe pas déjà).

Je vous laisse chercher sur Google afin de créer le votre, après chaque modification, vous devez faire

# exportfs -a

pour que ces dernières soient prises en compte.

/shares/internal/PUBLIC/	10.0.0.0/255.0.0.0(all_squash,no_subtree_check,insecure,nohide,rw,async,anonuid=33)
/shares/internal/PRIVATE/       10.0.0.1(no_subtree_check,all_squash,insecure,nohide,rw,async,anonuid=33)
/shares/internal/PRIVATE/       10.0.0.2(no_subtree_check,insecure,all_squash,nohide,rw,async,anonuid=33)
/shares/internal/PRIVATE/Serie/	10.0.0.0/255.0.0.0(no_subtree_check,insecure,all_squash,nohide,ro,async,anonuid=33)
/shares/internal/PRIVATE/DivX/	10.0.0.0/255.0.0.0(no_subtree_check,insecure,nohide,all_squash,ro,async,anonuid=33)

Ici seuls mes 2 machines (10.0.0.1 & 2) peuvent accéder de manière totale au NAS, les utilisateur de mon réseau ont accès à la partie PUBLIC ainsi que Serie et DivX en lecture seulement.

Attention : anonuid=33 est très important, sans ça vos règles ne marcheront peut être pas (du moins ça m'a causé pas mal de troubles).

[root@Abricot internal]# ls -lsa
total 40
 4 drwxr-xr-x 6 root     root  4096 Nov 26 22:22 .
 8 drwxr-xr-x 4 root     root  4096 Mar 26  2007 ..
 4 drwx------ 2 root     root  4096 Oct  8 19:51 .senvidData
 4 drwxr--r-- 9 www-data root  4096 Jan  6 14:18 PRIVATE
 4 drwxr--r-- 4 www-data root  4096 Jan  7 21:54 PUBLIC
16 drwx------ 2 root     root 16384 Oct  5 21:57 lost+found

C'est un aperçu de mon dossier /shares/internal afin de vous donner une idée des droits que j'ai donner à mes repertoires.

Un petit reboot et vous pouvez dire adieu à ce vilain Samba et goûtez aux joies du NFS. Pour les machines sous Windows, vous devez télécharger et installer SFU (Services For Unix)

Fonction Spindown

Attention : tout ce qui est fait dans le terminal doit être fait en root !!!

Si vous avez déjà eu un disque dur de la série My Book, vous avez pu remarquer que nombre d’entre eux s’allument et s’éteignent avec l’ordinateur et se désactive en cas de non-activité ?

Cette fonction très pratique n’est pas présente sur le My Book World Edition. Pourquoi ? Car il est présenté comme un disque dur foncitonnant 24h/24h. Ceci dit, j’aimerais bien que mes disques durs se reposent un petit peu, ça évite la ventilation et ça rallongera leurs vies.

Il y a plusieurs choses à savoir à ce sujet. Le logiciel qui va nous permettre de faire cela est hdparm. Seulement, dans la version fournit avec les My Book World Edition, il est buggé. En effet, si vous faîtes :

hdparm -C /dev/sda

Vous constaterez que votre disque dur est en “Stand By”, ce qui n’est pas vraiment le cas, n’est ce pas ?

Donc il vous suffit très simplement, de télécharger la dernière version de hdparm, disponible à cette adresse.

Téléchargez le tar ball grâce à wget

# wget url.tar.gz

Décompactez le :

# tar xzvf file.tar.gz

Allez dans le répertoire et faites simplement un “make & make install”. Voilà, votre version est à jour. Si vous voulez-vous en assurer, il vous suffira de faire

# hdparm –v

smart_spindown

Ce script (Crée par Bart Samwels) se trouve sur la page de l’auteur. Vous pouvez le télécharger ici.

Une version plus adapté pour le MyBook World Edition 1 TB (avec 2 disques donc) faîtes par kyyhkynen peut se trouver ici.

Je vous conseille de copier le script dans /usr/sbin/. Si vous le placez ailleurs, il faudra regarder le script d’init qui vient après afin de le modifier (une ligne au début).

Pensez à le lire afin d'adaptez à des temps qui vous conviennent. Et n'oubliez de mettre les OUTPUTLEVEL à false si vous ne souhaitez pas débugguez. Ca serait bête que le script vous fasse redemarrez vos disques durs, non ? :)

N’oubliez pas de chmoder le script comme il le faut. Je vous conseille de lui appliquer un chmod 700 et un chown root :root

Action sur spinup/spindown

Vous avez sûrement noté la présence des variables EXECUTE_ON_SPINUP et EXECUTE_ON_SPINDOWN dans la partie configuration du script. Vous pouvez les utiliser pour exécuter des actions quand les disques démarrent et s'arrêtent. Pointer les variables vers des scripts shells que vous voulez lancer sur les démarrages/arrêts des disques (assurez vous que les scripts sont executables). Par exemple, les scripts que vous avez ci dessous éteignent les LEDs si les disques sont éteints et les allument si les disques sont allumés.

Exemple de script sur spinup

#!/bin/bash
 
# back up the RAM disk
/etc/init.d/S13ramdisk backup
 
# turn on the front panel leds
echo 255 > /sys/class/leds/wdc-leds:power/brightness
echo 100 > /sys/class/leds/wdc-leds:fuel-gauge/brightness

Exemple de script sur spindown

#!/bin/bash
 
# turn off the front panel leds by settings their brightness to zero
echo 0 > /sys/class/leds/wdc-leds:power/brightness
echo 0 > /sys/class/leds/wdc-leds:fuel-gauge/brightness
 
#cache /shares directroy
ls -Rl /shares > /dev/null

start+stop script

C’est bien beau de pouvoir les monitorer, maintenant il faut que ça se fasse automatiquement et sans que nous le sachions.

On va donc utiliser ce script : (Il faut le placer dans /etc/init.d/)

Attention : N'oubliez pas de modifier l'emplacement du script si vous l'avez placé ailleurs que /usr/sbin/.
#! /bin/sh
#
# smart_spindown startup/stop script
# by kyyhkynen at gmail.com
 
SVCNAME=smart_spindown
SMART_SPINDOWN_SCRIPT=/usr/sbin/smart_spindown
SMART_SPINDOWN_LOG=/mnt/ramdisk/smart_spindown.log
SMART_SPINDOWN_PID=/var/run/$(basename ${SMART_SPINDOWN_SCRIPT}).pid
 
checkconfig() {
	if [ ! -r $SMART_SPINDOWN_SCRIPT ] ; then
		echo "Spindown script not found at $SMART_SPINDOWN_SCRIPT"
		return 1
	fi
 
	for A in dirty_expire_centisecs dirty_writeback_centisecs dirty_ratio dirty_background_ratio laptop_mode swappiness ; do
		if [ ! -w /proc/sys/vm/$A ] ; then
			echo "VM config /proc/sys/vm/$A not writable"
			return 1
		fi
	done
}
 
 
start() {
	checkconfig || return 1
	echo "Starting ${SVCNAME}"
 
	echo 0 > /proc/sys/vm/dirty_expire_centisecs
	echo 0 > /proc/sys/vm/dirty_writeback_centisecs
	echo 95 > /proc/sys/vm/dirty_ratio
	echo 10 > /proc/sys/vm/dirty_background_ratio
	echo 5 > /proc/sys/vm/laptop_mode
	echo 40 > /proc/sys/vm/swappiness
	start-stop-daemon --start --background --quiet \
		--pidfile ${SMART_SPINDOWN_PID} --make-pidfile \
		--exec ${SMART_SPINDOWN_SCRIPT}
 
}
 
stop() {
	echo "Stopping ${SVCNAME}"
 
	# "echo" before start-stop-deamon,
	# so we get the error code of s-s-d as exit code
	echo 3000 > /proc/sys/vm/dirty_expire_centisecs
	echo 500  > /proc/sys/vm/dirty_writeback_centisecs
	echo 40 > /proc/sys/vm/dirty_ratio
	echo 10 > /proc/sys/vm/dirty_background_ratio
	echo 0 > /proc/sys/vm/laptop_mode
	echo 60 > /proc/sys/vm/swappiness
	start-stop-daemon --stop --quiet --pidfile ${SMART_SPINDOWN_PID}
	cp /mnt/ramdisk/smart_spindown.log /var/log
}
 
case "$1" in
	start)
		start
		restart
		;;
	stop)
		stop
		;;
	restart)
		stop
		start
		;;
	*)
		echo $"Usage: $0 {start|stop|restart}"
		exit 1
		;;
esac
 
exit $?

On va modifier le fichier /etc/fstab et changer la ligne /dev/md3 pour la faire ressembler à ça :

/dev/md3 /var ext3 defaults,noatime,commit=43200 0 2

Une fois cela fait vous êtes paré. Vous n'avez plus qu'à lancer vos scripts avec la commande suivante :

# /etc/init.d/smart_spindown start

Pour l'utiliser comme un service, je vous conseille de le nommer S[nombre]smart_spindown et de faire un lien comme cela :

# ln -s /etc/init.d/S51smart_spindown /etc/init.d/K52smart_spindown

Cela permettra au script de se lancer au démarrage et de s'éteindre avec le NAS de manière propre.

Attention : N'oubliez pas d'attribuer des droits (chmod) de type 0700 et de chowné le fichier en root:root !!! Cela vaut également pour le lien symbolique

Engage Kage !

Celui qui sait d'où vient cette réplique a vraiment une culture très….underground ;)

C'est bien d'avoir installer smart_spindown mais il y'a un soucis. En effet, des fichiers sont accédés par des scripts du système, ce qui a pour effet de reveiller inutilement nos disques.

Comment les détecter ?

Très simple, vous n'avez qu'à éditer /etc/inittab et à commenter ces deux lignes :

::respawn:/sbin/syslogd -n -m 0
::respawn:/sbin/klogd -n

Ensuite, redémarrez le NAS.

Pour activer le debug de l'I/O (Input/Output), tapez cette commande :

# echo 1 > /proc/sys/vm/block_dump

Tout ce qui va se passer sur vos disques va désormais être logué. Vous pourrez voir ces logs via dmesg. Je vous conseille de faire dmesg -c afin de nettoyer un petit peu le log pour y voir plus clair.

Maintenant vous n'avez plus qu'à laisser vos disques tranquilles pendant environ 1h.
En revenant, tapez la commande dmesg. Vous allez observer des lignes du type :

<7>dmesg(10078): READ block 2525104 on md1

En règle général, dans les lignes que vous verrez, vous trouverez toujours une structure de type :
nom de l'éxecutable, process id et la description de l'évenement.

La ligne que j'ai copié ci dessus signifie que dmesg était entrain de lire le disque md1.

Quand un process écrit sur le disque, la ligne de log ressemblera à cela :

<7>tail(10976): dirtied inode 45 (temperature.log) on ram1

Cela veux dire que tail écrivait sur le fichier temperature.log dans le “ram disk”.

En fait, la donnée est écrite dans le buffer d'écriture (qui est en mémoire) et sera écrit sur le disque après un certain temps.
La “véritable” écriture sera indiqué par une ligne ressemblant à :

<7>pdflush(36): WRITE block 984 on ram1

Vous pouvez donc voir ce qui cause le reveil de vos disques durs. N'oubliez surtout pas de désactiver le debug via la commande suivante :

# echo 0 > /proc/sys/vm/block_dump

Maintenant que l'on sait ce qui nous dérange, désactivons les !

Tout d'abord, éditez le fichier /etc/crontab/root et commentez la seule ligne qui doit être présente (sauf si vous avez ajouté vous même des cron jobs).
Ce cron job écrit l'heure dans un fichier. Ce qui jusqu'à présent ne s'est pas revelé utile…

Maintenant, désactivons la feature qui vous affiche le taux d'occupations du disque.
Pourquoi ?

  • Elle ne sert à rien (avouez le !).
  • Pour afficher le taux d'occupations, il faut le calculer et donc…faire des accès disques.

Editez le fichier /etc/init.d/S15wdc-fuel-gauge et commentez cette ligne :

$FGD &

Puis arrêtez le service :

# /etc/init.d/S15wdc-fuel-gauge stop

Si vous ne l'avez pas déjà fait, désactivez syslog et klogd, pour cela, il vous suffit de commenter ces deux lignes dans /etc/crontab/root

::respawn:/sbin/syslogd -n -m 0
::respawn:/sbin/klogd -n

RamDisk

Création

Soit vous tuez tout vos logs, ce qui n'est pas forcémment pratique soit vous les passer dans un “ramdisk”, ce qui évite les écritures sur le disque dur. C'est ce que nous allons voir ici.

Avant de configurer les différents services (ntpd et samba) à utiliser le ramdisk, on va tout d'abord le créer, pour cela il suffit de rentrer ces petites commandes :

# /sbin/mke2fs -vm 0 /dev/ram1 1024
# mkdir /mnt/ramdisk
# /bin/mount -t ext2 /dev/ram1 /mnt/ramdisk/
</code bash>
 
Et voilà c'est fini. Pas très dur non ? On a donc un ramdisk de 1024 octets, soit 1 Mo. Ca sera largement suffisant pour y mettre les logs de nos applications.
 
==== ntpd ====
Modifions donc ntpd pour commencer, editez le fichier /etc/ntp.conf et changer l'emplacement du fichier drift :
<code bash>driftfile /mnt/ramdisk/ntp.drift

Pour ceux qui se demandent à quoi ce dernier sert, il permet au démon ntpd de connaître la dérive temporelle de votre système. Ce qui lui permets de corriger en permanence. Vous ne pouvez pas “effacer” ce fichier, ntpd le créera de toute façon.

Désactivons également le système de log de ntpd, pour cela éditez le fichier /etc/ntp.conf et faîtes pointer le fichier de log vers /dev/null. Ce qui nous donne : (Si vous souhaitez le garder, faites pointer vos logs vers /mnt/ramdisk/)

logfile=/dev/null

Redémarrez ntpd :

# /etc/init.d/ntp.sh restart

Copions donc notre fichier dans notre ramdisk et redémarrons le service :

# cp /etc/ntp.drift /mnt/ramdisk
# /etc/init.d/ntp.sh restart

Samba

Editez le fichier /var/oxsemi/smb.conf et changez les lignes suivantes pour obtenir cela :

smb passwd file=/mnt/ramdisk/private/smbpasswd
private dir=/mnt/ramdisk/private
log file=/mnt/ramdisk/log.%m
lock directory=/mnt/ramdisk/locks
pid directory=/mnt/ramdisk/locks

Tant qu'on est à Samba, il y a le démon nmbd qui log également. Ce dernier sert pour les utilisateurs Windows à leur fournir les informations Netbios requise par le module “Favoris Réseaux” de Windows. Pour lui dire de ne rien logguez, il suffit de modifier le fichier /etc/init.d/samba.sh Dans la fonction start(), vous trouverez cette ligne :

/usr/local/samba/sbin/nmbd -D -s/var/oxsemi/smb.conf -l/var/log

Celle ci nous conviendra mieux :

/usr/local/samba/sbin/nmbd -D -s/var/oxsemi/smb.conf -l/mnt/ramdisk

Enfin, editez le fichier /etc/inetd.conf et modifier le repertoire de log :

netbios-ssn stream tcp nowait root /usr/local/samba/sbin/smbd smbd -s/var/oxsemi/smb.conf -l/mnt/ramdisk -d0

Et pour finir, on copie tout ces fichiers dans notre ramdisk :

# mkdir /mnt/ramdisk/locks
# cp /var/locks/* /mnt/ramdisk/locks/
# mkdir /mnt/ramdisk/private
# cp /var/private/* /mnt/ramdisk/private/
# cp /var/log/log.* /mnt/ramdisk/

Et enfin redemarrez Samba :

# /etc/init.d/samba.sh restart

Ramdisk au boot

Pour automatiser tout cela (en cas de reboot du NAS), on va utiliser le script fait par kyyhkynen. Je me suis permis d'héberger le script au cas où ce dernier disparaitrait (Je suis un peu parano sur les bords).

# wget http://geekboy.fr/stuff/script/mybook/S13ramdisk
# mv S13ramdisk /etc/init.d	
# chmod 0700 /etc/init.d/S13ramdisk
# chown root:root /etc/init.d/S13ramdisk
# ln -s /etc/init.d/S13ramdisk /etc/init.d/K71ramdisk

Conseil

Si vous avez regardez le script de démarrage du ramdisk, quand celui s'eteint il recopie les données contenu vers le disque dur. Car dès qu'il n'y a plus de courant vos logs sont perdus. Si vous voulez le faire plus souvent qu'à chaque shutdown du NAS, vous pouvez modifier le script smart_spindown afin de le faire à chaque spin up (démarrage) des disques.

Pour faire cela, trouvez la ligne suivant dans le script smart_spindown : (Ce devrait être la ligne 142)

THISWAIT=$(($WAITTIME*$BACKOFF_FACTOR/100)) ;

Juste avant cette ligne, ajoutez cela :

/etc/init.d/S13ramdisk backup ;

Et enfin, redemarrez smart_spindown :

# /etc/init.d/S50smart_spindown restart

Et voilà, tous vos logs sont sauvegardé dans un disque ram. Ils seront écrit sur le disque à chaque fois que le disque se reveillera.

Gestionnaire de température alternatif

Ce qui serait vraiment géant maintenant, c'est que les ventilateurs se coupent tout seul avec le spindown. Surtout que kyyhkynen a déjà écrit le script !

Désactivons d'abord le gestionnaire par défaut, en éditant le fichier /etc/init.d/S15wdc-heat-monitor, commentez la ligne :

$HEAT_MON &

Stoppez le service :

# /etc/init.d/S15wdc-heat-monitor stop

Téléchargeons et installons le script de kyyhkynen : (Les fichiers sont hebergés sur mon serveur, on ne sait jamais!)

# wget http://geekboy.fr/stuff/script/mybook/temperature_monitor
# mv temperature_monitor /usr/sbin
# chmod 0700 /usr/sbin/temperature_monitor
# chown root:root /usr/sbin/temperature_monitor
# wget http://geekboy.fr/stuff/script/mybook/S51temperature_monitor
# mv S51temperature_monitor /etc/init.d
# chmod 0700 /etc/init.d/S51temperature_monitor
# chown root:root /etc/init.d/S51temperature_monitor
# ln -s /etc/init.d/S51temperature_monitor /etc/init.d/K51temperature_monitor

Les scripts dont le nom commence par S[nombre] dans le repertoire /etc/init.d sont automagiquement lancés au démarrage. Tout comme ceux avec K[nombre] sont lancés lorsque le NAS est entrain de s'éteindre (typiquement pour quitter proprement les services!).

Il est bien sûr libre à vous d'adaptez les paramètres du script à votre usage !

Vous pouvez désormais lancer le service :

# /etc/init.d/S51temperature_monitor start

Et voilà !

Conclusion

Cette page est en grande partie une traduction française de ce que vous allez trouver chez kyyhkynen. J'ai également rajouter mes petites astuces que j'ai trouver à force de chercher sur Google et de parcourir le forum MyBookWorld. En ce qui me concerne, toutes ces étapes ont suffit à rendre silencieux une bonne fois pour toutes mes disques durs. Je vous engage cependant à faire des tests qui sont très simples à réaliser. Pour ma part, j'ai mis les OUTPUTLEVEL du script smart_spindown sur true et j'ai lancer le script à la main. J'ai attendu 24h et j'ai pu constaté que mes disques ne s'était pas reveillés de la journée.

Avec un peu de persévérance, on arrive à tout ;)

tutorial/divers/tutorial_tune_son_western_digital_my_book_world_edition.txt · Dernière modification: 2009/06/21 19:58 (édition externe)
Piste: post-it_tunnel_ssh tutorial_installer_et_configurer_xcache safe_clfags tutorial_installer_et_configurer_mysql_phpmyadmin post-it_ubuntu_hard_drive_problem start tutorial_internet_la_tete_en_bas post-it_mdadm tutorial_backup_gmail tutorial_tune_son_western_digital_my_book_world_edition
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0