{{tag>tutoriel}}
====== Créer un NAS avec votre Raspberry Pi et Samba ======
===== Pré-requis =====
===== Première étape =====
===== Autres étapes =====
==== Création du serveur NAS avec Samba ====
- Éditez avec les droits d'administration le fichier **/etc/samba/smb.conf**pi@framboise:~ $ sudo nano /etc/samba/smb.confpour le modifier comme ceci :
* Enfin, tout en bas du fichier, ajoutez des paramètres relatifs à l’accès à la partie publique du NAS :
[public]
comment = Public Storage
path = /home/shares/public
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
- **Redémarrez samba** :pi@framboise:~ $ sudo systemctl restart smbd
- **Ajoutez un utilisateur à samba**, ici nous ajoutons l’utilisateur pi :pi@framboise:~ $ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.
Voir la configuration de /etc/samba/smb.conf : [[logiciel:internet:samba:smb.conf:start]]
Ce qui marche :
...
[share]
Comment = Shared Folder
Path = /mnt/usb
Browseable = yes
Writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes
penser à ouvrir ufw :
pi@framboise:~ $ sudo ufw allow samba
Rule added
Rule added (v6)
==== Ajouter un disque ====
- Branchez votre disque à votre Raspberry Pi
- Détectez le nom que le Raspberry lui a attribué :pi@framboise:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
<...>
sdb 8:16 1 125G 0 disk
└─sdb1 8:17 1 125G 0 part /media/pi/BCB9-8CFD
<...>Ici, la clé est **sdb** avec une partition sdb1.
- **Formatez la partition en ext4** :pi@framboise:~ $ sudo umount /dev/sdb1
pi@framboise:~ $ sudo mkfs.ext4 /dev/sdb1Soyez patient : l'opération est longue...
- **Créez un répertoire** pour monter le disque pour qu’il soit accessible via le NAS, et donnez-lui les droits de lecture/écriture nécessaires :pi@framboise:~ $ sudo mkdir /home/shares/public/donnees
pi@framboise:~ $ sudo chown -R root:users /home/shares/public/donnees
pi@framboise:~ $ sudo chmod -R ug=rwx,o=rx /home/shares/public/donneesPeu importe le nom du dossier (donnees dans l’exemple) Le nom du dossier (disk1 dans l’exemple) importe peu, il vous permettra de le retrouver aisément sur le réseau.
- **Montez la partition dans ce dossier** :pi@framboise:~ $ sudo mount /dev/sdb1 /home/shares/public/donnees/
- **Monter les périphériques au démarrage** du Raspberry Pi :éditez avec les droits d'administration le fichier **/etc/fstab** et pour chaque périphérique, rajoutez en bas du fichier une ligne :/dev/sdb1 /home/shares/public/donnees auto noatime,nofail 0 0
==== Repérage des partitions ====
Avant de brancher le disque, lister les partitions du Raspberry Pi en lançant :
$ pi@framboise:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232,9G 0 disk
...
Brancher le disque dur sur une prise USB du Raspberry Pi. Relancer :
$ pi@framboise:~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 125G 0 disk
└─sdb1 8:17 1 125G 0 part
sda 8:0 0 232,9G 0 disk
...
Les lignes apparues correspondent aux partitions du disque (s'il y a plusieurs lignes, c'est que le disque a plusieurs partitions)
Dans cet exemple, le Raspberry Pi est installé sur /dev/sda (avec un pidrive).
le disque dur que nous venons de connecter est **/dev/sdb** et a une partition **/dev/sdb1** qui va nous servir.
Repérez son UUID :
$ pi@framboise:~ $ sudo blkid /dev/sdb*
/dev/sdb: PTUUID="876fbad3" PTTYPE="dos"
/dev/sdb1: PARTUUID="876fbad3-01"
==== Partitionnement ====
==== Création de l'arborescence de montage ====
Vous pouvez utiliser par exemple des sous-répertoires de **/media**
Les partitions de la clé à installer sont repérées, par exemple :
* la partition **/dev/sdb1**, en vfat, de label **data1**, sera montée sur le répertoire **/media/data1**
* etc.
Le nouveau disque est /dev/sdb. Simplifiez l'affichage avec :
pi@framboise:~ $ sudo blkid /dev/sdb*
/dev/sdb: PTUUID="876fbad3" PTTYPE="dos"
/dev/sdb1: UUID="7FE1-97D6" TYPE="vfat" PARTUUID="876fbad3-01"
Repérez les partitions montées par :
pi@framboise:~ $ sudo blkid /dev/sdb*
/dev/sdb: PTUUID="876fbad3" PTTYPE="dos"
/dev/sdb1: UUID="7FE1-97D6" TYPE="vfat" PARTUUID="876fbad3-01"
Si elles sont montées, démontez la ou les partitions repérées et créez les répertoires de montage, par exemple pour deux partitions :
pi@framboise:~ $ sudo umount /dev/sdb1
pi@framboise:~ $ sudo mkdir -p /media/{disque1,disque2}
==== Montage automatique au démarrage (fichier fstab) ====
Éditez avec les droits d'administration le fichier **/etc/fstab** pour ajoutez une ligne pour chaque partition du disque :
* cas d'une partition ntfs :# disque1 (/dev/sdb1) UUID=xxxxxxxxxxx
UUID=xxxxxxxxxxx /media/disque1 ntfs-3g exec,permissions,auto 0 0
; UUID
: valeur de l'UUID vue avec blkid, sans les guillemets
; point de montage
: /media/disque1 (répertoire créé plus haut)
; ntfs-3g
: partition en ntfs
; permissions
: permet de gérer les droits comme pour une partition linux (chown, chmod)
* Cas d'une partition ext4# disque1 (/dev/sdb1) UUID=xxxxxxxxxxx
UUID=xxxxxxxxxxx /media/disque1 ext4 defaults 0 0
; UUID
: valeur de l'UUID vue avec blkid, sans les guillemets
; point de montage
: /media/disque1 (répertoire créé plus haut)
; ext4
: partition en ext4
; defaults
: valeurs par défaut
Montez tout ce qui est décrit dans **fstab** en tapant :
pi@framboise:~ $ sudo mount -a
Pour rendre propriétaires l'utilisateur **pi** et le groupe **pi**, tapez :
pi@framboise:~ $ sudo chown -R pi:pi /media/disque1/
Pour vérifier (ici, la partition /media/disque1) :
pi@framboise:~ $ ls -l /media/disque1
...
drwxr-xr-x 2 pi pi 4096 janv. 17 2018 xxxxx
Le propriétaire et le groupe sont **pi** et les droits sont **rwx**. Les permissions sont donc réglables.
Désormais, le Raspberry Pi monte son disque tout seul au démarrage.
==== Ouvrir l'accès à tout le réseau ====
Connectez-vous au Raspberry Pi, via ssh ou vnc.
* Faites une **copie** du fichier de configuration de samba :pi@framboise:~ $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.dist
^ section ^ sous-section ^ remplacer ^ par ^
^ [global] | | workgroup = WORKGROUP
| le groupe de travail voulu |
^ [global] | ##### Authentication ##### | dé-commenter# security = user
| security = user
|
^ [homes] | | read only = yes
| read only = no
|
* Redémarrez samba :pi@framboise:~ $ sudo /etc/init.d/samba restart
==== Définition des utilisateurs pour samba ====
L'utilisateur pi est déjà défini par défaut. rendez-le utilisateur samba :pi@framboise:~ $ sudo smbpasswd -a piet donnez deux fois le mot de passe samba de pi comme demandé.
==== Configurer une zone de stockage publique sur le Raspberry Pi ====
- Créez un répertoire pour stocker les fichiers publics :pi@framboise:~ $ sudo mkdir /media/et donnez-lui les droits voulus :
* propriétaire : pi, groupe pipi@framboise:~ $ sudo chown -R pi:pi /media/
* droits :pi@framboise:~ $ sudo chmod -R ug=rwx,o=rx /media/
- éditez avec les droits d'administration le fichier **/etc/samba/smb.conf** et ajoutez les lignes suivantes à la fin :
[NAS_disque]
comment = NAS_disque
path = /media/
valid users = @pi
force group = pi
create mask = 0660
directory mask = 0771
read only = no
-> Ce disque sera vu cumme "nas_disque" (en minuscules)
- Redémarrez samba :pi@framboise:~ $ sudo systemctl restart smbd.service
==== Accès depuis les PCs du réseau ====
=== PC sous Windows ===
- Un clic droit sur le poste de travail, ajouter un lecteur réseau.
- Renseignez :
* la lettre à utiliser pour ce disque
* le répertoire, de la forme : **%%\\framboise.local\Disque_NAS%%** ou **%%\\192.168.0.31\nas_disque%%**
* pour un utilisateur enregistré : son nom
* pour la zone publique, son répertoire
* cochez "reconnecter au démarrage"
- Il est demandé un nom et un mot de passe :
* Fournir ceux d'un utilisateur enregistré sur samba du Raspberry Pi.
* Pour la zone publique, n'importe quel nom convient.
=== PC sous Linux ===
Installez le paquet **[[apt>cifs-utils]]** ou ...@...:~$ sudo apt install cifs-utils
- **Monter le NAS en ligne de commande** :...@...:~$ sudo mount -t cifs -o username=pi,password=PASSWD //framboise.local/nas_disque /media/nas_disqueen complétant le mot de passe. Le montage se fait et le disque apparaît dans Nautilus.
- **Monter le NAS graphiquement** :
* Ouvrez **nautilus**, tapez C-L et entrer :smb:///
* = adresse IP ou nom d'hôte du Raspberry Pi
* = répertoire auquel se connecter.
* Renseignez :{{ tutoriel:disque:sd:raspi:nas:nas_raspi-01.png?400 |}}
* l'utilisateur (pi)
* le mot de passe
* cocher **retenir toujours** (facultatif)
* Vous pouvez aussi taper C-L puis :smb://et naviguer dans les partages.
- **Monter le NAS en permanence** :
* Créez un **répertoire de montage**, par exemple :...@...:~$ sudo mkdir /media/disque_NAS
* Éditez avec les droits d'administration le fichier **/etc/fstab** pour ajouter la ligne ://framboise.local/nas_disque /media/disque_NAS cifs credentials=/etc/framboise.credentials 0 0
* Créez avec les droits d'administration le fichier **/etc/framboise.credentials** contenant le nom d'utilisateur et son mot de passe :
username=pi
password=
* Protégez les fichiers credentials :...@...:~$ sudo chmod 600 /etc/*.credentials
* D'autres options (séparées par des virgules) peuvent être ajoutées au fichier /etc/fstab :
* **user** : permet le montage par les utilisateurs normaux
* **noauto** : empêche le montage automatique au démarrage du système
* On peut aussi monter les entrées de /etc/fstab à la main en exécutant une de ces trois commandes :
* ...@...:~$ sudo mount //192.168.0.31/nas_disque
...@...:~$ sudo mount //framboise.local/nas_disque
...@...:~$ sudo mount /disk/disque_NAS
Pour une freebox, on utilise la même méthode avec un fichier /etc/freebox.credentials sans user ni mdp :
username=
password=
===== Conclusion =====
===== Problèmes connus =====
===== Voir aussi =====
* **(fr)** [[https://raspberry-pi.fr/raspberry-pi-nas-samba/]]
* **(fr)** [[https://www.inpact-hardware.com/article/1013/transformez-votre-raspberry-pi-4-en-nas]]
* **(en)** [[http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html]]
* **(fr)** [[http://emery.claude.free.fr/nas-samba.html|Créer un NAS avec Samba sur Raspberry]]
* **(fr)** [[http://emery.claude.free.fr/nas-raid1-raspberry.html|NAS Raid 1 sur Raspberry]]
* **(fr)** [[http://xaviermichel.github.io/tutoriel/2013/06/17/mise-en-place-d'un-NAS-avec-raid-sur-mon-raspberry-pi|Mise En Place D'un Nas Avec Raid Sur Mon Raspberry Pi ]]
* **(fr)** [[http://blog.idleman.fr/billet-invite-creer-un-nas-avec-le-raspberry-pi/|Créer un nas avec le Raspberry Pi]]
----
//Basé sur << [[http://elinux.org/R-Pi_NAS|R-Pi NAS]] >> par elinux.org.//