Enregistrement des fichiers par défauts

Raphaël Pinson raphink at gmail.com
Lun 24 Avr 01:43:48 UTC 2006


Le Dimanche 23 Avril 2006 21:46, Christophe Gallaire a écrit :
> Bonsoir,
>
> Ma machine fonctionne avec deux disques durs. Le premier (hda) contient
> le système et le second (hdb) je le réserve qu'au stockage de mes
> fichiers personnels. Seulement, par défaut, l'enregistrement des
> documents se fait sur hda à l'emplacement /home/nom d'utilisateur.
> Comment peut-on changer cet enregistrement par défaut ?

Bonjour Christophe,

Il y a plusieurs solutions à ton problème. Il faut pour cela bien comprendre 
le mode de fonctionnement des partitions sous Unix/Linux, qui est différent 
du fonctionnement de Windows. Sous Linux, les partitions sont montées dans le 
système de fichier, et donc associées à un répertoire en particulier. Les 
fichiers contenus dans ce répertoire se retrouvent donc physiquement 
localisés sur la partition associée au répertoire. Un exemple, avec un 
fichier /etc/fstab typique :

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hda2       /               ext3    defaults,errors=remount-ro 0       1
/dev/hda1       /boot           ext3    defaults        0       2
/dev/hda3       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 ro,user,noauto  0       0

Trois partitions du disque dur IDE primaire (hda) sont utilisées ici, et une 
partitions du périphérique IDE secondaire, ici mon lecteur CD/DVD.

La première partition logique du disque hda (hda1) est montée sur /boot. Cela 
signifie que tous les fichiers contenus dans le répertoire /boot seront 
physiquement localisés sur la partition hda1 du disque hda.
Le disque hdc (lecteur DVD) est monté sur /media/cdrom0. 
La seconde partition logique de hda (hda2) est montée sur /. Il faut donc 
comprendre que _tous les fichiers_ en dehors de ceux compris dans /boot et 
dans /media/cdrom0 seront physiquement localisés sur hda2.

A partir de là, tu as plusieurs options pour résoudre ton problème, 
concrètement. Résumons ta situation :
Tu veux pouvoir enregistrer tes documents personnels sur hdb _physiquement_.
Il faut donc que tu associes la partition hdb1 (dans l'hypothèse où tu as une 
seule partition sur hdb) à un répertoire du système de fichier local.
Si tu souhaites que les documents de tous les utilisateurs soient localisés 
sur ce disque, il faudra associer /dev/hdb1 à /home. Si tu veux que seuls tes 
documents le soient, tu pourras utiliser /home/tonlogin. Enfin, les 
possibilités sont infinies, et tu peux choisir de localiser physiquement les 
fichiers contenus dans un répertoire /home/toto/documents_debiles/photos/ en 
l'associant à une partition donnée.

/!\ Note bien qu'il faut être prudent en associant des partitions à des 
systèmes de fichiers existants et comprenant déjà des données. En effet, le 
fait d'associer une partition à un répertoire dans /etc/fstab va forcer le 
système à monter cette partition sur ce répertoire au prochain boot. Cela 
signifie qu'il prendra les données contenus dans ce répertoire dans le 
contenu de cette partition et _uniquement_ dans cette partition. Le scénario 
à _ÉVITER_ est celui-ci :

Paul (pour changer de Sandy et John) veut avoir ses documents persos 
(actuellement sur hda3 avec /, par exemple) sur hdb1 en ext2 (ça me rappelle 
quelque chose). Il fait les manips suivantes :

* Il édite /etc/fstab et rajoute la ligne :
/dev/hdb1 /home ext2 nouser,defaults,atime,auto,rw,dev,exec,suid 0 2

* Il ferme ensuite /etc/fstab (en sauvegardant les modifs) et fait un `sudo 
mount -a` pour prendre en compte les changements, pensant avoir réussi son 
coup.

Résultat : plus rien dans /home (enfin juste un dossier lost+found) ! Les 
données ne sont pas perdues cependant. Elles sont toujours sur hda3, mais 
masquées par le contenu (presque) vide de hdb1.

Le problème c'est que si tu es dans son cas et que ton /home fait partie du /, 
tu ne peux pas démonter le /home avant de le remonter... D'où ce que je te 
conseille de faire :

* Monter hdb1 (supposons qu'il s'agit d'ext3) sur /mnt (/mnt est fait pour 
servir de point de montage provisoire) : `sudo mount -t ext3 /dev/hdb1 /mnt`

* Copier le contenu de /home sur /mnt : `sudo cp -a /home/* /mnt`. L'option -a 
permet de conserver les dates et utilisateurs et est essentielle pour cette 
opération.

* Effacer le contenu de /home (oui c'est bourin là, et il vaut mieux être 
logué en console en root plutôt qu'en user sous KDE/GNOME) : `sudo 
rm -rf /home/*`
Note : si cette étape est sautée, les documents de /home seront toujours sur 
hda3 mais ne seront pas utilisés : c'est du gâchis de place ...

* Ajouter (ou modifier) la ligne de montage dans /etc/fstab :
/dev/hdb1 /home ext3 nouser,defaults,atime,auto,rw,dev,exec,suid 0 2

* Sauvegarder /etc/fstab et tout remonter : `sudo mount -a`

Et si tout va bien tes docs doivent être sur hdb1 :)

Remarque : pour éviter le rm de barbare à chaud sur le /home, tu peux utiliser 
un live CD et travailler pour effacer les données du /home sans être logué 
dans le système.

Voili... 


Raphaël aka "faut s'occuper pendant les heures de compil de kdelibs"


-- 
Raphaël Pinson
<raphink at ubuntu.com>
Ubuntu - Linux for Human Beings
http://www.ubuntulinux.org
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: non disponible
Type: application/pgp-signature
Taille: 191 octets
Desc: non disponible
URL: <https://lists.ubuntu.com/archives/ubuntu-fr/attachments/20060424/32b52eb1/attachment.pgp>


Plus d'informations sur la liste de diffusion ubuntu-fr