Externaliser des répertoires

Bonjour à tous,

Sur ma Briqette, je souhaiterai externaliser certains réperoires sur un disque dur connecté en usb pour soulager la carte MicroSD.
Certaines data de Nextcloud un peu encombrantes, des emails, des dossiers Noalyss.
Concrètement, comment faudrait-il bricoler le fstab pour déplacer /home /var ou /etc sur un disque externe?

Merci à tous!

Le plus simple c’est de mettre tout le /home sur le disque.

Ce tuto peut aider, même si là on bouge carrément tout / sauf le /boot…
https://wiki.labriqueinter.net/doku.php?id=howto:install_sata

Mais du coup en adaptant un peu ça se fait juste pour /home

1 Like

C’est aussi possible de faire des liens symboliques/mount --bind ou de partitionner le disque en plusieurs pour créer différents points de montage (un pour /home et un pour /var)

Bonsoir à tous,

Voici ce que j’ai tenté :
J’ai monté la Micro sd et le dique dur sur un ordi.
Sur le disque externe, j’ai créé une partition BriqExt pour /home et une BriqVar pour /var en ext4.
J’ai copié le répertoire /home et le répertoire /var de la Micro sd sur chaque partition avec la commande :

sudo rsync -azvv /media/user/794701f3-9606-4562-b8c8-6c54531b4bee/var /media/user/BriqVar/

…pour/var et idem pour /home

J’ai renommé les répértoires /home et /var d’origine en homeOld et varOld

J’ai crée deux répertoires vide /var et /home comme points de montage

J’ai rajouté deux lignes dans /etc/fstab :

UUID=d4332c26-b4a4-458f-9bc3-49c2f404e971 /home ext4 defaults 0 2
UUID=4affb155-4675-4a09-9d23-bbbc57ab3446 /var ext4 defaults 0 2

…en faisant référence au uuid donnés par la commande

blkid

J’ai tout rebranché.
:nauseated_face:

Le spot wifi apparaît mais est sans connection possible. La brique n’est pas accessible.
Vous avez hurlé en lisant mon message.
J’ai donc fait des c…bêtises, mais lesquelles?
:blush:

Merci pour les pistes !

Quand tu dis sans connexion possible, tu veux dire pas possible de se connecter en ssh ?

Est-ce que tu peux brancher un écran pour voir si quelques choses apparait ?

Si tu débranches, est-ce que tu peux regarder les logs dans la carte SD/le disque dur pour voir si un quelqconque problème y est indiqué ?

Peux tu vérifier que le résultat dans /home et dans /var (sur le spartitions associés, ressemble bien à ce qui est prévu ?)

Perso j’aurais fait les opérations directement sur la carte arm au lieu de monter le tout sur un ordinateur. Note: sur le tuto que j’ai mis en lien, les options rsync sont différentes notament en ce qui concerne les ACL et les attributs étendus.

Ton disque dur est en sata ou en usb ?

Merci @ljf,

Voici où j’en suis dans ma procédure. Je mets tes questions en face de mes réponses.

Quand tu dis sans connexion possible, tu veux dire pas possible de se connecter en ssh ?

Pas de connection possible, ni par un browser ni en ssh.

Est-ce que tu peux brancher un écran pour voir si quelques choses apparait ?

Je n’ai pas cette possibilité.

Si tu débranches, est-ce que tu peux regarder les logs dans la carte SD/le disque dur pour voir si un quelqconque problème y est indiqué ?

Entre temps, j’ai rétabli le fstab en commentant les nouvelles lignes pour redémarrer la briq proprement.

Peux tu vérifier que le résultat dans /home et dans /var (sur le spartitions associés, ressemble bien à ce qui est prévu ?)

J’ai remarqué qu’un répertoire /nextcloud a été créé en plus du répertoire /home et de /lost+found. On dirait que le /home a changé, vu qu’il date de seulement 3 mn avant la date du /nextcloud

Ton disque dur est en sata ou en usb ?

Il est en usb.

Perso j’aurais fait les opérations directement sur la carte arm au lieu de monter le tout sur un ordinateur. Note: sur le tuto que j’ai mis en lien, les options rsync sont différentes notament en ce qui concerne les ACL et les attributs étendus.

Entre temps, je suis parti de zéro:

  1. Connection en ssh et en root sur la Briq avec le disque externe
  2. vérifier qu’il est bien reconnu :

Disk /dev/sda: 931.5 GiB, 1000204883968 bytes, 1953525164 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xef7a6e21

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1078347775 1078345728 514.2G 83 Linux
/dev/sda2 1078347776 1746982911 668635136 318.9G 83 Linux
/dev/sda3 1746982912 1953523711 206540800 98.5G 83 Linux

Créer un point de montage pour les différentes partitions :

mkdir /media/BriqData
mkdir /media/BriqExt
mkdir /media/BriqVar

Monter les partitions :

mount /dev/sda1 /media/BriqData
mount /dev/sda2 /media/BriqExt
mount /dev/sda3 /media/BriqVar

Je vérifie que tout est là :

df -h
Filesystem Size Used Avail Use% Mounted on
udev 180M 0 180M 0% /dev
tmpfs 50M 6.5M 43M 14% /run
/dev/mmcblk0p1 29G 2.3G 26G 8% /
tmpfs 247M 80K 247M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 247M 0 247M 0% /sys/fs/cgroup
tmpfs 247M 12K 247M 1% /tmp
/dev/zram0 49M 17M 28M 38% /var/log
tmpfs 50M 0 50M 0% /run/user/1007
/dev/sda1 506G 38G 443G 8% /media/BriqData
/dev/sda2 313G 85M 297G 1% /media/BriqExt
/dev/sda3 97G 1.2G 91G 2% /media/BriqVar

Maintenant, je voudrais copier le /home de la Carte SD sur //media/BriqExt et le /var sur /media/BriqVar
Quelles seraient les options avec rsync? et avec quels chemins?

Merci!

… J’ai arrêté les services susceptibles de provoquer des erreurs mySql, comme préconisé dans le tuto howto:install_sata [Internet Cube]

service nginx stop
service mysql stop
service postfix stop
service rmilter stop
Failed to stop rmilter.service: Unit rmilter.service not loaded.
service dovecot stop
service rmilter status
Unit rmilter.service could not be found.

Je ne sais pas ce qu’est rmilter.

Ensuite je copie /home et /var dans les partitions BriqExt et BriqVar

rsync -aAXv /home /media/BriqExt/
rsync -aAXv /var /media/BriqVar/

Je change les noms des répertoires sources

mv /home /home.old
mv /var /var.old

et j’en crée de nouveaux comme point de montage

mkdir /home
mkdir /var

Ça marche pour /home, mais pour /var j 'ai un message d’erreur :

mkdir /var
mkdir: cannot create directory ‘/var’: File exists

Il y a en effet un /cache et un /log dans /var.

ls -l /var/log/
total 8
-rw-r----- 1 root adm 432 Jul 17 10:18 mail.err
drwxr-x— 2 root root 4096 Jul 17 10:14 yunohost

ls -l /var/cache/
total 4
drwxr-xr-x 3 root root 4096 Jul 17 10:14 moulinette

Je vais donc rétablir le /var ancien et me contenter de continuer avec /home, pour voir.

mv /var /var.err
mv /var.old /var

Logiquement, il ne reste plus qu’à éditer fstab pour activer la ligne avec le nouveau /home.
Je vérifie tout de même l’UUID.

blkid
/dev/mmcblk0p1: UUID=“794701f3-9606-4562-b8c8-6c54531b4bee” TYPE=“ext4” PARTUUID=“4d1f7484-01”
/dev/zram0: LABEL=“log2ram” UUID=“34387fc0-f9ef-4c00-bf68-537bae883e31” TYPE=“ext4”
/dev/sda1: LABEL=“BriqData” UUID=“39837f96-957f-4e24-9164-285987d31807” TYPE=“ext4” PARTUUID=“ef7a6e21-01”
/dev/sda2: LABEL=“BriqExt” UUID=“d4332c26-b4a4-458f-9bc3-49c2f404e971” TYPE=“ext4” PARTUUID=“ef7a6e21-02”
/dev/sda3: LABEL=“BriqVar” UUID=“4affb155-4675-4a09-9d23-bbbc57ab3446” TYPE=“ext4” PARTUUID=“ef7a6e21-03”
/dev/zram1: UUID=“86ba9d85-d1c1-4031-9d78-de5f6eb62c56” TYPE=“swap”
/dev/zram2: UUID=“4311ddd6-bb87-45af-9a52-2937abde8829” TYPE=“swap”
/dev/mmcblk0: PTUUID=“4d1f7484” PTTYPE=“dos”

J’édite fstab avec nano :

nano /etc/fstab

Je décommente la ligne

UUID=d4332c26-b4a4-458f-9bc3-49c2f404e971 /home ext4 defaults 0 2

Il ne me reste plus qu’à faire relire le fstab en remontant toutes les partitions qui y sont citées :

mount -a

Je n’ai pas accès à la briq par l’interface sans doute à cause des services fermés. Le Hotspot fonctionne toujours. Je vais lancer un redémarrage de la bête…

reboot

J’ai accès à l’interface de Yunohost !
Cependant, il y a quelques petits problèmes :

  1. Jirafeau pose des problèmes de droits :

FIX ME: The file directory is not writable!
/home/yunohost.app/jirafeau/files/

FIX ME: The link directory is not writable!
/home/yunohost.app/jirafeau/links/

The async directory is not writable!
/home/yunohost.app/jirafeau/async/

  1. Ainsi que Nextcloud :

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

  1. Wallabag, Dokuwiki ou Rainloop ont l’air en bon état.

Comment puis-je diagnostiquer et réparer Jirafeau et Nextcloud?

Merci à tous !


Je me réponds un peu à moi-même…
Il se trouve que j’ai un /home avec dedans un autre /home, façon poupées gigognes.

Je me suis donc pris les pieds dans les slashs :laughing:

rsync -aAXv /home /media/BriqExt/

n’est pas la bonne formule magique. D’après rsync : synchronisation de dossiers / Wiki / Debian-facile

Pour copier le fichier ou le répertoire source et son contenu vers destination

rsync -av /source /destination

Pour copier seulement le contenu du répertoire source dans destination

rsync -av /source/ /destination

J’aurais donc dû écrire :

rsync -aAXv /home/ /media/BriqExt

Je recommence… :roll_eyes:


En fait, après arrêt des services nginx, mysql, postfix et dovecot, je me contente de re-transférer l’ancien répertoire /home.old, que je n’avais bien entendu pas détruit, en racine de la partition /home encore active.

rsync -aAXv /home.old/ /home

Je n’ai plus maintenant qu’à supprimer /home/home et à redémarrer la brique.
Cette fois Jirafeau et Nextcloud retrouvent leurs billes ! Alléluia ! :rofl:

Par contre, pour le transfert de /var, je me tâte encore.
Si vous avez des conseils, je suis preneur. Ensuite, il ne me restera plus qu’à concocter une synthèse de ma littérature, sans les erreurs, à usage de tous.

J’attends avec impatience vos conseils avisés !