NASBOX314

image principale NASBOX314

Difficulté:

Créer votre NAS avec 2 disques 3To, une Xbox360 et un raspberry pi.



Comme tout un chacun, j’ai accumulé des quantités de données très importantes avec les années, dont les photos de famille, auxquelles je tiens plus que tout.
j’ai rapidement confier ce stockage à un NAS, pour sa simplicité et le partage de fichiers en réseau local.


Au bout d’un moment mon NAS est devenu trop petit, et j’ai eu besoin d’évoluer vers un stockage supérieur à moindre coût.


J’utilise les Raspberry Pi pour divers projets : caméra Motionpi, photomaton, émulateur Retropie, lecteur multimedia Kodi,
L’un d’entre eux est devenu, depuis fin 2013, un NAS, équipé de deux disques de 3TO redondant, afin de stocker mes données personnelles de façon pérenne,
le tout fonctionne sous Raspian et le partage est fait via samba.


L’utilisation d’un RasPi pour un projet de NAS n’est pas une nouveauté, c’est surement l’une des utilisation les plus courante.
Après avoir configuré le NAS, je voulais améliorer ses performances, fiabiliser le fonctionnement, ranger le tout dans un boîtier propre et utiliser une alimentation électrique plus fiable qu’un simple chargeur usb.


J’ai donc transférer le système d’exploitation sur un disque dur pour de meilleures performances et aussi pour économiser les cartes SD qui avaient tendance à griller après quelques semaines/mois,
j’ai aussi configurer une sauvegarde sur un disque indépendant pour sécuriser mes données.


Pour éviter une surcharge électrique sur le port USB de mon Raspberry Pi, j’ai choisi d’utiliser des boîtiers externes sata/usb avec alimentation externes pour assurer l’indépendance des alimentations.


Après des semaines de fouilles dans les greniers et les brocantes, et des tentatives de création de boitier DIY très laid, je suis tombé sur une xbox360 1ère génération… et cette dernière est exactement ce dont j’avais besoin :


– Un boitier sympa et moderne
– Une alimentation externe discrète qui fournit 12v DC et 5V DC
– Des dimensions parfaite pour mon projet


Voila donc de quoi créer un NAS, dans une xbox avec un raspi…


il ne m’en fallait pas plus : le NASBOX314 était né !!! \o/


Voici donc comment créer le votre :

Matériel :

Budget : Non défini

  • – 1 XBOX360 1ere génération, si possible HS (20€) (seul le boitier et l’alimentation nous intéressent)
  • – 1 Raspberry pi modèle B 512Mo (35€)
  • – 1 boitier pour raspberry pi (8€)
  • – 1 carte SD 8 Go Class10 (10€)
  • – 2 disques dur de 3To 3.5″ SATA (180€)
  • – 2 boitier externes 3.5″ SATA/USB2.0 (35€)
  • – 1 cable ethernet de 50cm
  • – 1 connecteur à 4 broches
  • – 2 connecteurs 2 broches des connecteurs (à récupérer dans un vieil ordinateur)
  • – 2 LED pour l’activité HDD
  • – 1 LED pour l’affichage de la puissance
  • – 1 coupleur RJ45
  • – 3 résistances de 300 Ω
  • facultatif :
  • – 2 dissipateurs pour puce RAM
  • – une goutte de pâte thermique1 outils Dremel avec disque à tronconner.

Etape 1 : Installation du Raspberry pi, Le système d’exploitation.


A) PRESENTATION

Diverse solution sont possible en terme de système d’exploitation pour profiter de votre raspberry; certaines distribution vous offrent des interface d’administration très complète pour gérer votre NAS, et d’autre ne vous offre que le minimum pour démarrer et vous laisser la main.

A l’époque de la création du NASBOX314 certaines distributions n’existaient pas, mais je tiens à vous informer de différentes alternative que j’ai pu découvrir ou tester au gré de mes recherches sur le web et de mes besoins.

1) Raspian
Raspbian est le système d’exploitation officiel basé sur Linux/Debian et optimisé pour fonctionner sur un Raspberry Pi.
N’utilisant qu’un simple partage de fichier samba sur reseau local, sans gestion d’accès, C’est le systeme d’exploitation que j’utilise dans mon NASBOX314.

2) Raspian + Owncloud
ownCloud est un logiciel pour créer un service de stockage et de partage de fichiers en ligne de type cloud, pratique pour acceder à vos fichiers depuis n’importe où.

3) OpenMediaVault
OpenMediaVault est un système d’exploitation sous licence libre, basé sur Debian, spécialement conçu pour gérer NAS, il offre une gestion très poussées de votre machine et de vos utilisateurs.

4) moebius
Une distribution linux minimaliste de 250 mo seulement. elle ne propose que le strict minimum pour exploiter votre RasPi.
simple, efficace mais dépourvue d’interface graphique, elle se gère en ligne de commande via ssh.

Vous trouverez de nombreuse distributions plus ou moins adaptée à vos besoin et à vos compétences,
Chacune d’entre elle possède ces avantages et ces inconvénients, mais je vous rassure, on s’y met très vite.

Comme c’était mon 1er Raspi à l’époque et que je n’avait aucune expérience linux à ce moment là,
j’ai choisit de faire au plus simple en adoptant la solution Raspian+partage samba.
Certes les solutions spécialisées sont mieux car administrables mais cela ne correspond pas à ce que je recherchais, je voulais juste un partage de fichiers local et c’est tout.

Voici deux listes non-exaustive d’OS disponible:
http://fantasticpi.lookit.fr/?Distributions_et_systèmes
http://elinux.org/RPi_Distributions

B) INSTALLATION

La procédure de décompression et l’installation du système d’exploitation, est à la même pour tout les OS du Raspi,
N’ayant pas l’envie de réinventer ce que je n’ai pas conçu, voici un lien vers le site Framboise314.fr, qui vous expliquera comment installer Raspian sur votre carte SD pour utiliser votre Raspberry pi :

http://www.framboise314.fr/preparer-la-premiere-carte-sd-de-framboise314-un-os-raspbian-pour-mon-raspberry-pi/

Etape 2 : Configuration du sytème


ATTENTION ! cette partie du tuto fait (un peu) peur, elle peut paraître (un peu) longue, mais il n’y a rien de compliquer, j’avais un niveau débutant à l’époque ou j’ai écrit cette étape et pourtant tout à fonctionner directement sans problème.
version telechargeable : http://www.petit-fichier.fr/2014/12/04/config-nasbox-shared/
#####################################################################
Préparation des disques USB
#####################################################################

Utiliser gparted via un pc ou un live cd ubuntu pour formater les disques dur usb
=> HDD1 = 1swap 1go, 1 partition ext3 sur l’espace restant
=> HDD2 tout en ext4
#####################################################################
———————————————————————
#####################################################################

#### config initiale ####
sudo raspi-config

Expand Filesystem
Internationalisation options

Locale => fr_FR.UTF-8 UTF-8 taper espace + tab + enter puis confirmer
Time zone => Europe / Paris
Keyboard => “PC Générique 105 touche” + espace + tab + OK
Disposition => Autre + Français + Dispo par défaut + pas de compose + non

Advanced options

Update this tools
Enable SSH
HostName : NASBOX314.

#### mise a jour complete ####

sudo apt-get update && sudo apt-get upgrade

#####################################################################

—————-REBOOT————————-REBOOT———

#####################################################################

#### CREATION DES DOSSIERS ####

sudo mkdir /home/pi/documents
sudo mkdir /media/USBHDD1
sudo mkdir /media/USBHDD2

### identification des disques ###

sudo blkid

***EXEMPLE BLKID***
/dev/mmcblk0p1: SEC_TYPE=”msdos” LABEL=”boot” UUID=”7D5C-A285″ TYPE=”vfat”
/dev/mmcblk0p2: UUID=”8z8z8z8-9z9z-5d5d-2q2q-4q4q4q4q4q4q” TYPE=”ext4″
/dev/sda1: UUID=”1d1d1d1d-2a2a-3c3c-4d4d-5c5c5c5c5c5c” TYPE=”swap”
/dev/sda2: UUID=”d2d2d2d2-4d4d-8e8e-6s6s6s6s6s6s6s6s6″ TYPE=”ext3″ <=======
/dev/sdb1: UUID="4r4r4r44-1rr1-1r1r-5r5r5r5r5r5r5r5r5" TYPE="ext4" <=======

### montage des disques dur ###

sudo mount -t auto /dev/sda2 /media/USBHDD1
sudo mount -t auto /dev/sdb1 /media/USBHDD2

#### important repérer quel est le disque utiliser/vide ####

sudo ls -l /home/pi/documents/
### contiendra des fichiers

sudo ls -l /media/USBHDD1/
### /media/USBHDD1 est vide

sudo ls -l /media/USBHDD2/
### /media/USBHDD2 est vide

#####################################################################
###transfert OS de la carte SD vers le HDD.###
#####################################################################
### reperage des disques ###

sudo blkid

***EXEMPLE BLKID***
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="7D5C-A285" TYPE="vfat"
/dev/mmcblk0p2: UUID="8z8z8z8-9z9z-5d5d-2q2q-4q4q4q4q4q4q" TYPE="ext4"
/dev/sda1: UUID="1d1d1d1d-2a2a-3c3c-4d4d-5c5c5c5c5c5c" TYPE="swap"
/dev/sda2: UUID="d2d2d2d2-4d4d-8e8e-6s6s6s6s6s6s6s6s6" TYPE="ext3" <=======
/dev/sdb1: UUID="4r4r4r44-1rr1-1r1r-5r5r5r5r5r5r5r5r5" TYPE="ext4"

###Transférer le ROOT FILE SYSTEM###

sudo dd if=/dev/mmcblk0p2 of=/dev/sda2 bs=512

###Controler la copie des fichiers systeme###

mkdir /home/pi/system
sudo mount -t ext4 /dev/sda2 /home/pi/system
ls -l /home/pi/system

###Étendre le ROOT FILE SYSTEM###

sudo resize2fs /dev/sda2

###Controler les disques###

sudo blkid

/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="7D5C-A285" TYPE="vfat"
/dev/mmcblk0p2: UUID="8z8z8z8-9z9z-5d5d-2q2q-4q4q4q4q4q4q" TYPE="ext4"
/dev/sda1: UUID="1d1d1d1d-2a2a-3c3c-4d4d-5c5c5c5c5c5c" TYPE="swap"
/dev/sda2: UUID="d2d2d2d2-4d4d-8e8e-6s6s6s6s6s6s6s6s6" TYPE="ext4" copier les lignes correspondant aux /dev/sd**

### ajout des disques usb au demarrage ####

sudo nano /etc/fstab

****************fstab**************

# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] $

#INFOS !!!!!!!!!!!
#/dev/sdb1 /media/USBHDD2 montee pour backup sur le 2e hdd

#BLKID !!!!!!!!!!
#/dev/mmcblk0p1: SEC_TYPE=”msdos” LABEL=”boot” UUID=”7D5C-A285″ TYPE=”vfat” boot
#/dev/mmcblk0p2: UUID=”8z8z8z8-9z9z-5d5d-2q2q-4q4q4q4q4q4q” TYPE=”ext4″ old_system
#/dev/sdb1: UUID=”4r4r4r44-1rr1-1r1r-5r5r5r5r5r5r5r5r5″ TYPE=”ext4″ backup
#/dev/sda1: UUID=”1d1d1d1d-2a2a-3c3c-4d4d-5c5c5c5c5c5c” TYPE=”swap” swap
#/dev/sda2: UUID=”d2d2d2d2-4d4d-8e8e-6s6s6s6s6s6s6s6s6″ TYPE=”ext4″ system

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,ro 0 2
UUID=1d1d1d1d-2a2a-3c3c-4d4d-5c5c5c5c5c5cswapswapdefaults00
UUID=d2d2d2d2-4d4d-8e8e-6s6s6s6s6s6s6s6s6 / ext4 defaults,noatime 0 1
UUID=4r4r4r44-1rr1-1r1r-5r5r5r5r5r5r5r5r5 /media/USBHDD2 ext4 noatime 0 0

#####################################################################

—————-REBOOT————————-REBOOT———

#####################################################################

###ajout de la fonction de mise en reseau####

sudo apt-get install samba samba-common-bin

###changement des droits d’acces aux dossiers###

sudo chmod 777 -R /home/pi/documents
sudo chmod 777 -R /media/USBHDD2
sudo rmdir /media/USBHDD1 <== inutile apres le boot sur HDD sda2

###configuration acces reseau###
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old
sudo nano /etc/samba/smb.conf

****************smb.conf**************
[global]
workgroup = WORKGROUP
server string = %h server
netbios name = NASBOX314
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = user
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
usershare allow guests = yes

[mes documents]
path =/home/pi/documents/
read only = no
locking = no
guest ok = yes
force user = pi

[backup]
browseable = no
path = /media/USBHDD2
read only = no
locking = no
guest ok = yes
force user = pi

### ajout d'un utilisateur au partage reseau###

sudo smbpasswd -a pi
"tapez le password de l'utilisateur pi"

sudo /etc/init.d/samba restart

### Configuration de la sauvegarde ###
sudo apt-get install rsync

crontab -e

************crontab*******************
#
# m h dom mon dow command
#
# * * * * * commande temporelle (* = indifférent)
# – – – – –
# | | | | |
# | | | | +—– jour de la semaine (0 – 6) (Lundi=0)
# | | | +——- mois (1 – 12)
# | | +——— jour du mois (1 – 31)
# | +———– heure (0 – 23)
# +————- minute (0 – 59)
#
#

09 05 09 * * rsync -av –delete /media/USBHDD1/documents/ /media/USBHDD2/

#### mise en veille des disques dur usb apres 30min #####
sudo apt-get install hdparm

sudo nano /etc/hdparm.conf

********hdparm.conf*********************
/dev/sda {
spindown_time = 241
}

/dev/sdb {
spindown_time = 241
}
**************************************

#### Personnalisation de l'accueil de la console ###

sudo nano /etc/motd

*****************motd*****************

//////////////////////////////// \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// _ _ _____ ____ ____ __ __ ____ __ _ _ \\
// | \ | | /\ / ____|| _ \ / __ \\ \ / /|___ \/_ || || | \\
// | \| | / \ | (___ | |_) || | | |\ V / __) || || || |_ \\
// | . ` | / /\ \ \___ \ | _ < |__ < | ||__ _|\\
// | |\ | / ____ \ ____) || |_) || |__| |/ . \ ___) || | | | \\
// |_| \_|/_/ \_\|_____/ |____/ \____//_/ \_\|____/ |_| |_| \\
// V1.0\\
//////////////////////////////// \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////// Da Ultimate Raspi-based NAS created and shared by SYRUS \\\\\\
//////////////////////////////// \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Propulsed by Raspbian, shared for all user since 2013.

**************************************
La mise est page est nulle dans le tuto , pour récupérer le logo dans la version telechargeable :
http://www.petit-fichier.fr/2014/12/04/config-nasbox-shared/config-nasbox-shared.txt

la petite note d'anglais c'est juste… n'importe quoi, mais ça m'amuse ^^

****Faire le ménage et les mises à jour****
#### faire le menage ####

logiciels inutiles

sudo apt-get remove scratch
sudo apt-get remove pistore
sudo apt-get remove wolfram-engine
sudo apt-get remove oracle-java7-jdk
sudo apt-get purge –auto-remove scratch
sudo apt-get purge –auto-remove debian-reference-en dillo idle3 python3-tk idle python-pygame python-tk
sudo apt-get purge –auto-remove lightdm gnome-themes-standard gnome-icon-theme raspberrypi-artwork
sudo apt-get purge –auto-remove gvfs-backends gvfs-fuse desktop-base lxpolkit netsurf-gtk zenity xdg-utilse
sudo apt-get purge –auto-remove mupdf gtk2-engines alsa-utils lxde lxtask menu-xdg gksu
sudo apt-get purge –auto-remove midori xserver-xorg xinit xserver-xorg-video-fbdev
sudo apt-get purge –auto-remove libraspberrypi-dev libraspberrypi-doc
sudo apt-get purge –auto-remove dbus-x11 libx11-6 libx11-data libx11-xcb1 x11-common x11-utils
sudo apt-get purge –auto-remove lxde-icon-theme gconf-service gconf2-common

#### faire les mises a jour####
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
sudo apt-get -y autoremove
sudo apt-get -y autoclean

Etape 3 : Préparation du matériel.

Pour commencer, assemblez vos disques durs externe SATA/USB, en suivant la méthode RTFM :-p
Connectez les disques dur sur les PCB mais n’assemblez pas les boîtiers alu avec leur électroniques.
Récuperer les interrupteur d’alimentation si necessaire.

Assemblez votre Raspberry pi avec son boitier support, ajoutez des radiateur sur les puces si vous le souhaitez.

Désassemblez la xbox en faisant très attention de ne pas vous couper, les bords de carcasse métallique sont tranchants et vous aurez besoin de vos 10 doigts pour la suite.

Etape 4 : Isoler électriquement la carcasse de la xbox.

Isoler la carcasse métallique en fixant à l’aide de colle néoprène ou de colle en spray, une couche de mousse polystyrène, utilisé pour la pose du parquet flottant,

placer un poids uniformement sur toute la surface pour fixer l’isolant (j’ai utilisé un sac en plastique avec du sable)

Laisser secher pendant 6h.

Etape 5 : Modifier le connecteur d’alimentation

faire un contrôle de polarité avant de couper les câbles pour s’assurer de la polarité

réduire les connecteurs d’alimentation 12V des disques durs externe, en laissant au minimum 60cm de câble disponibles, et réduire à la même longueur le connecteur 4 broches (pour alimenter le Raspberry Pi).

faire un contrôle avant la soudure pour assurer la polarité.

Soudez les câbles positifs des disques dur sur les pions de sortie 12v du connecteur xbox

souder le Pin positif du connecteur 4 broche dédié à la raspberry sur la sortie 5V, et faire un pont direct entre la prise +5V et la prise “PWR_Enable”: cela permet d’activer l’alimentation lorsque le connecteur est inséré dans la prise.

Soudez toutes les masses aux pions de masse du connecteur xbox.

retirer la carte SD de la PI de framboise.

faire un test d’alimentation sur les disques et le RasPi.

remplir le connecteur avec de la colle néoprène pour la fixer les branchement électriques et isoler la soudure, afin d’eviter toute possibilité de court-circuit, avec du ruban adhésif vinyl.

Repositionner le connecteur d’alimentation

Etape 6 : Récupérer le connecteur d’alimentation



Extraire “proprement” le port d’alimentation.

Je n’ai pas réussi à faire fondre la soudure avec un fer à souder, j’ai donc employer la manière douce… et ai utilisé un outil dremel pour meuler la surface arrière de la carte mère, afin de faire sauter les points de soudure.

Vous pouvez également extraire le port USB du panneau avant pour créer un port d’administration / debug via le câble série/USB TTL adapté.

Etape 7 : Monter le coupleur RJ45



Mettre en place le coupleur réseau RJ45 en lieu et place de l’ancien port réseau, pour ma part j’ai fixer au préalable une équerre en alu pour compenser la hauteur et avoir une meilleur assise sur la prise RJ45.

Etape 8 : Placer le materiel dans la carcasse

les disques seront tête-bêche pour éviter d’encombrer les ports d’alimentation et réseau.

présenter les disque dur et faire correspondre les trous de montage avec les trous de fixation existants dans le PCB ou le corps du disque.

un disque devrai pouvoir se bloquer par le côté, dans la grille de ventilation. l’autre va pendre par en dessous avec une vis de l’interface pcb SATA / USB

Privilegier un montage avec un peu de souplesse,
prendre soin de laisser l’espace nécessaire pour le raccordement des prises USB et l’alimentation.
Serrer doucement les vis et la caler les disques avec de la mousse de polystyrène, pour éviter qu’ils ne forcent sur la carcasse.

caler les disques avec des couches de mousse de polystyrène, pour empêcher des mouvements et de réduire les vibrations.

Etape 9 : Report des voyant d’activité des disques

vous pouvez le voir dans le schéma que l’indicateur de l’activité des disque est liée aux broches 39 et 40.

étrangement cela fonctionne même si vous utilisez les disques en SATA … une bonne chose

utiliser 2 connecteurs avec 2 broches et souder une résistance de 300Ω dans le milieu du fil positif, puis ajoutez la LED à l’autre extrémité

se connecter aux broches 39 et 40.

La LED s’allume quand le disque est inactif et clignote en cas d’activité.

puis ajouter un montage résistance 300Ω+LED en parallèle de l’alimentation 5V pour l’affichage de la présence de tension.

passer les voyants à travers le trou près du bouton d’alimentation.

Etape 10 : mise en place des voyants, remontage.

placer le raspberry pi sur le dessus d’un disque.

mettre les broches 5V et la masse dans la prise 4 trous, laisser un emplacement libre entre les 2 fils, connecter au RaspPI via le gpio 2 (+5v) et GPIO 6 (GND).

connecter le câble Ethernet entre le coupleur et le RasPi,
raccordez les fiches USB et les prises 12v pour les disques durs.

placer la carcasse métallique dans la carcasse en plastique inférieure.

faire un trou de chaque côté du bouton de mise en marche et mettre en place la LED de sorte que le flux lumineux soit réparti de chaque côté de la touche power. fixer avec du ruban adhésif. si vous voyez une différence d’intensité lumineuse entre les voyants d’activité, masquer plus ou moins la LED pour égaliser l’intensité lumineuse de chaque côté du boutons

amener la présence de tension en position en face de l’emplacement central, la sortie de lumière sera tourné perpendiculairement à l’alésage central.

fixer un morceau de mousse sur le dessus du port usb du Raspberry Pi, pour caler.

faire une vérification finale pour vous assurer de ne rien oublier.

placez la carte SD dans le pi de framboise

fermez tous les revêtements de plastique.

raccorder la prise Ethernet et la prise d’alimentation.

Enjoy 🙂

Etape 11 : Rendu Final

Sources :

http://www.framboise314.fr, http://www.pihomeserver.fr/, http://blog.idleman.fr/, http://www.stefan-seelmann.de/, http://doc.ubuntu-fr.org/, http://wiki.labomedia.org/, https://fr.wikipedia.org


Je trouve l'idée de recyclage excellente ! Est-ce que c'est confortable en terme de vitesse de transfert de fichiers (vu que le raspberry partage son usb avec l'éthernet) ?

Je suis impressionné par le boulot Oo ! Bravo. En plus ça fait un Nas discret

merci 🙂
Coté reseau, c'est tout à fait correct, je suis relié par CPL entre mon PC et le NAS et je transferts à environ 90mbps

Le ventilateur de l'alim nécessite une petite goutte d'huile de graphite de temps en temps mais sinon il est quasiment inaudible, le NAS est stocké dans la chambre parentale et je l'entend à peine.

Ces tutoriels devraient vous plaire

vignette Connecter un  écran LCD en I2C
Connecter un écran LCD en I2C
vignette Arduino Uno - Capteur d'humidité au sol.
Arduino Uno - Capteur d'humidité au sol.
vignette Arduino et Porte automatique de poulailler
Arduino et Porte automatique de poulailler
avaatar Benoit V

Benoit V

Suivre

Vues: 6041
Mis en favoris: 5

Découvrez d'autres tutoriels de

Benoit V

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers