Comment monter un sous-répertoire sur un disque dur sous Linux?

13

Supposons que j'ai deux disques durs (A, B) et que j'ai les répertoires suivants:

  • / var / www
  • / var / www / upload

Actuellement, si je télécharge un fichier vers / var / www OU / var / www / upload; il sera enregistré dans le lecteur A.

Comment puis-je faire en sorte que le dossier / var / www / upload pointe vers le lecteur B. Donc, si je télécharge un fichier vers / var / www / upload, il sera enregistré dans le lecteur B mais lorsque je télécharge un fichier vers / var / www, il sera enregistré dans le lecteur A.


la source

Réponses:

23

J'ai supposé que le disque A n'était pas monté en tant que système de fichiers racine (/). Si c'est le cas, ignorez simplement les lignes avec driveA.

Modifiez votre / etc / fstab:

/ dev / diskA / var / www / valeurs par défaut auto 1 2
/ dev / diskB / var / www / upload valeurs par défaut automatiques 1 2

Vous pouvez remplacer "auto" par le système de fichiers que vous avez sur cette partition, mais ce qui précède devrait quand même fonctionner.

Si les disques A et B sont montés ailleurs, vous pouvez essayer la liaison symbolique:

ln -s / path / to / driveA_mountpoint / var / www /
ln -s / path / to / driveB_mountpoint / var / www / upload

Remarque: / var / www et le répertoire "upload" sur le lecteur A ne doivent pas exister ou cela échouera.

Personnellement, je préfère utiliser l'option bind de mount:

mount -o bind / var / www / / path / to / driveA_mountpoint
monter -o bind / var / www / upload / path / to / driveB_mountpoint

Pensez à éditer / etc / fstab - c'est probablement la meilleure façon.

gardien
la source
3
Cette réponse suppose que le lecteur a n'est pas le lecteur racine. si A est le lecteur racine, il vous suffit de créer un répertoire vide (/ var / www / upload), puis de créer une entrée fstab pour le lecteur b dans l'exemple ci-dessus.
Roy Rico
3
@minder - pour mettre une monture de liaison dans votre /etc/fstab:/path/orig /new/path/mount bind defaults 0 0
warren
1
Vous avez une faute de frappe dans le premier bloc de code: /dev/diskB /ver/www/uploadvervar
Frederic Leitenberger
3

le disque dur B est-il monté? Si c'est,

ln -s /path/to/hard/drive/B/mount/point /var/www/upload

Autrement

mount -t <fstype> -o defaults /dev/<hard driver B> /var/www/upload
Cian
la source
cela fonctionnera, mais je pense que l'ajouter au fstab sera une meilleure solution car il se remontera au démarrage de la machine alors qu'il ne le serait pas dans votre exemple.
Roy Rico