[Lenny] Déplacer /usr sur un autre disque

Bonjour,

ayant installé Lenny sur mon Eeepc et en étant très satisfait, je n’ai pas envie de tout réinstaller…

Actuellement j’ai un premier disque de 4Go qui contient toute la racine / et un second de 16Go avec le /home. Mon premier disque est saturé à 99%…
Comme j’ai assez de place pour mes données (320 Go sur disque externe), j’aimerais bien déplacer le dossier /usr (à moins qu’il y en ait un autre plus judicieux à déplacer?) sur le deuxième disque mais je n’ai pas trop envie de faire de bétises… Est-ce compliqué? Comment dois-je m’y prendre?

Voici ma configuration:

[code]fdisk -l

Disk /dev/sda: 4034 MB, 4034838528 bytes
255 heads, 63 sectors/track, 490 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x23232322

Device Boot Start End Blocks Id System
/dev/sda1 * 1 488 3919828+ 83 Linux
/dev/sda3 489 489 8032+ c W95 FAT32 (LBA)
/dev/sda4 490 490 8032+ ef EFI (FAT-12/16/32)

Disk /dev/sdb: 16.1 GB, 16139354112 bytes
255 heads, 63 sectors/track, 1962 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xf26d47c4

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1962 15759733+ 83 Linux
[/code]

Salut,
Tu as sélectionné tout en une partition lors de l’installation?

Une possibilité serait de bouger /usr et de créer un lien symbolique

$ su
mot de passe root

cp -rp /usr /home

mv /usr /usr-ancien

ln -s /home/usr /usr

ça suppose que /home soit monté durablement (/etc/fstab le renseigne)
Tu peux faire de même avec /var et /opt sans complications.
Tu t’assures que ça ne coince pas avant d’effacer les fichiers d’origine.

Qu’est ce que ça veut dire que /home soit monté durablement??
voilà mon fstab:

[code]# /etc/fstab: static file system information.

proc /proc proc defaults 0 0
/dev/sda1 / ext3 errors=remount-ro 0 1
/dev/sdb1 /home ext3 defaults 0 2
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0[/code]

/home monté durablement c’est à dire que le montage soit persistant de démarrage en démarrage.
Tel est le cas chez toi comme en témoigne /etc/fstab à la ligne

/dev/sdb1 /home ext3 defaults 0 2

[quote=“etxeberrizahar”]Une possibilité serait de bouger /usr et de créer un lien symbolique

$ su
mot de passe root

cp -rp /usr /home

mv /usr /usr-ancien

ln -s /home/usr /usr

ça suppose que /home soit monté durablement (/etc/fstab le renseigne)
Tu peux faire de même avec /var et /opt sans complications.
Tu t’assures que ça ne coince pas avant d’effacer les fichiers d’origine.[/quote]

Il ne faut pas aussi que je donne des droits particuliers à /home/usr ? (genre chmod 755 ou 777?)

Pas besoin avec

cp -p

p comme “préserver”

Ok merci!

En effet je viens de le lire dans la page man de cp…
:slightly_smiling:

Je tente ça et je vous tiens au courant!

Bon ça a l’air de marcher… J’attends encore jusqu’à demain avant de supprimer /usr-ancien…

Mais juste une question bête:

si j’installe un nouveau programme, il va aller tout seul dans /home/usr? Sinon il va aller où?

Salut,

Si tu as fais tout ce que etxeberrizahar a dit, il ira automatiquement dans /home/usr, car tu as fait un lien symbole avec la commande “ln”.

@++

Justin :slightly_smiling:

Ok merci à vous!

J’aurais appris à faire un lien symbolique!

Mais est-ce aussi efficace que si j’avais une partition à part sur le deuxième disque avec /usr?

Tout nouveau programme s’installera réellement dans /home/usr.
Le système ne sera pas affecté. Le lien symbolique porte le nom /usr. Lorsque /usr est invoqué, /usr ne manque pas à l’appel bien que sa nature ait changé.

Le mettre sur une partition propre a un avantage : le montage lui est propre.

La méthode du lien coince lorsque /home n’est pas monté (cf “monté durablement”).
Si tu démontes /home, /usr devient un lien cassé qui pointe dans le vide. Le lien dépend d’un montage préalable.

Il faut vider le cache des paquets de temps en temps

Un petit lien pour apprendre à faire le ménage : viewtopic.php?f=8&t=3826

Ok, je viens d’appliquer la méthode du lien symbolique pour déplacer ~/.mozilla du deuxième disque vers un répertoire /var/mozilla (sur le premier disque) et ça marche!

Sur les eeepc901 avec deux ssd, le premier de 4Go est bien plus rapide que le deuxième de 16 Go, et la navigation dans iceweasel s’en ressent vachement! C’est impressionnant ce que je gagne en vitesse sur Internet!
Je conseille vraiment cette manip aux possesseurs d’Eeepc de ce genre!
(j’ai lu ça quelque part sur le forum debian-eeepc)

Sinon mon premier disque n’est plus utilisé qu’à 15% avec 715 Mo occupé!! J’ai trop de place maintenant! Qu’est ce que je pourrais encore y mettre?

Tu mets un /home/totola minimal dans / et la boucle sera bouclée.

Dans le cas où /home ne se monte pas, un /home de secours sera là. Deuxième effet, lorsque /home est monté ces fichiers sont à l’abri, hors de vue ( une planque à deux centimes d’euros).

Tu devras démonter /home actuel, à partir de là ton /usr sera saboté donc pas de session gnome/kde/xfce/lxde/e17 …
Tu te déconnectes de ta session graphique.

basculer vers un terminal
ctrl+alt+F2
login

$ su

umount /home

mkdir /home/totola

cp /etc/skel/* /home/totola/

cp fichiers-confidentiels /home/totola

chown -R totola.totola /home/totola

mount /home

Tu rebascules

alt+F7

Si jamais X est kaputt
login : totola

$ startx

Tu te connectes, les fichiers confidentiels dans /home/totola de la racine sont hors d’atteinte “sur-montés” par ceux du montage /home/totola.

Ouh la vache! ça a l’air hyper intéressant mais j’ai rien compris au coup du surmontage…

J’aurais deux homes différents pour le même utilisateur? Et ça ne dérange pas? Et c’est quoi les fichiers confidentiels?
Pour moi l’intérêt de mettre des choses sur le premier disque (où se situe la racine) c’est le gain en rapidité, le disque sda étant de bien meilleure qualité au niveau du temps de réponse en lecture/écriture. C’est pour ça que j’y ai mis le dossier .mozilla.

Maintenant, c’est vrai que ça serait bien d’avoir un /home minimal sur ce disque sda avec tous les fichiers de config (dossiers cachés commençant par .quelquechose ), l’autre disque sdb ne servant que pour le stockage pur et dur.
C’est ça que tu me proposais?

Mais bon, si je réinstalle le système, je perds du coup toutes mes config, non? A la limite il faudrait partitionner sda en deux?

Et puis /usr sur le disque plus lent, je devrais pas perdre en rapidité d’execution des programmes (à vrai dire j’ai rien remarqué…)

Bon pour résumer, est ce qu’une configuration comme celle-ci serait intéressante et est-ce réalisable sans tout réinstaller?

sda:

  • une partition / (1Go)
  • une partition /home minimal (fichiers de config + email de icedove) (3go)

sdb:

  • /usr avec tous les programmes (4 - 5 Go)
  • /home de stockage (11 - 12 Go)

juste pour info : comment on accède aux fichiers sans démonter le /home/ ?

giliam : un live-cd pour y accéder

Deux home/$USER différents, un seul à la fois étant en cours d’utilisation.
Le /home/$USER du montage l’emportera sur celui de la racine.
/ monté comprend /home/$USER sur la même partition.
Si le montage de /dev/sdb1 foire , $USER pourra malgré tout se connecter grâce
au $HOME/$USER sur la racine en /dev/sda1.
C’est une roue de secours.

Fichiers confidentiels, rien à voir avec debian : documents personnels, privés.

[quote]Maintenant, c’est vrai que ça serait bien d’avoir un /home minimal sur ce disque sda avec tous les fichiers de config (dossiers cachés commençant par .quelquechose ), l’autre disque sdb ne servant que pour le stockage pur et dur.
C’est ça que tu me proposais?[/quote]

Ce n’est pas ce que j’avais en tête, mon propos était de rendre la connexion
de $USER insensible à un montage de /home défaillant.

[quote]Bon pour résumer, est ce qu’une configuration comme celle-ci serait intéressante et est-ce réalisable sans tout réinstaller?

sda:

  • une partition / (1Go)
  • une partition /home minimal (fichiers de config + email de icedove) (3go)

sdb:

  • /usr avec tous les programmes (4 - 5 Go)
  • /home de stockage (11 - 12 Go)[/quote]

Envisageable sans réinstaller.
Tu devras supprimer et recréer les liens symboliques et retoucher /etc/fstab.

Régulariser :
/home ne serait plus en /dev/sdb1 mais en /dev/sda1
Dans /etc/fstab remplacer le point de montage /home par /usr.
Supprimer le lien /usr, créer le dossier /usr, remonter d’un niveau chaque dossier de l’actuel /home/usr .

mv /home/usr/share /home/share

et ainsi de suite

umount /dev/sdb1

mount /usr

Pour le $HOME scindé, liens symboliques vers ce qui est à présent /usr anciennement /home

mkdir /usr/totola

chown -R totola.totola /usr/totola

exit

$ mv /home/totola/Desktop /usr/totola/Desktop
$ ln -s /usr/totola/Desktop /home/totola/Desktop
et ainsi de suite

Une manière moins torturée des neurones serait de créer plusieurs comptes
et de les placer en /dev/sdb1 ou /dev/sda1 selon leurs besoins en espace.

Ok, je pense avoir compris…

Mais comment supprime t-on un lien symbolique? Il faut bien que je supprime ceux que j’ai crée, non?

Merci
A+

Si tu supprimes /usr/share tu supprimes
réellement /home/usr/share.
Donc tu t’arrêtes à /usr.

Les liens se suppriment comme les fichiers, rien de particulier.
Supprimer le lien ne supprime pas le but du lien.
Si tu supprimes uniquement le lien /usr, /home/usr ne sera pas effacé.

rm /usr