L©S ßlog - CyberSDF

L©S ßlog - CyberSDF

samedi 10 juin 2006

Créer une partition /home a posteriori

EDIT : Réécriture de la procédure pour une plus propre et plus sûre et en prenant en compte les commentaires postés


Vous l'avez certainement remarqué, Ubuntu, quelle que soit sa version, ne crée pas de partition /home par défaut lors de l'installation. Et pourtant, on peut avoir envie de s'en créer une après quelque temps d'utilisation pour séparer ses données, ou tout simplement parce qu'on a ajouté un nouveau disque dur et qu'on souhaite mettre toutes ses données dedans.

Je vais vous décrire ci-dessous une méthode que j'ai utilisé et qui a parfaitement fonctionnée.

Nota :

  • Je pars du postulat que vous avez déjà votre partition vide de créée et n'est pas encore déclarée dans /etc/fstab
  • J'utiliserais en convention de nommage /dev/hda3 pour cette nouvelle partition et je pars du postulat qu'elle est formatée en ext3
  • L'utilisateur principal est cybersdf

1- Redémarrage en "runlevel 1"

1.1 Pourquoi ce mode de démarrage ?

Comme vous le savez, Ubuntu ne dispose pas de compte root, du moins lors d'un démarrage normal. Seulement, avec le mode "runlevel 1", on se retrouve avec un compte root et pratiquement rien de chargé (voir les scripts commencant par un S dans le répertoire /etc/rc1.d/ comparés à ceux de /etc/rc5.d pour s'en rendre compte) et SURTOUT, ce qui nous intéresse le plus, aucun autre utilisateur que root ne peut utiliser la machine, donc pas d'éventuel conflit de "fichiers occupés".

1.2 Comment démarrer en "runlevel 1" ?

Lorsque vous vous retrouvez devant le menu de grub, appuyez ESC pour stopper le décompte, puis selectionnez votre noyau habituel et appuyez sur e pour passer en mode édition, puis ajoutez simplement le chiffre 1 à votre noyau :

kernel          /boot/vmlinuz-2.6.XX-XX-XXX root=/dev/hda1 ro quiet splash 1

Ensuite, appuyez sur b pour booter.
Si jamais vous ne voulez pas redémarrer votre machine, fermez votre session, passez en mode console via Ctrl+Alt+F1 puis appelez le mode init 1 via :

$ sudo telinit 1

2- Monter sa nouvelle partition et copie des données

On crée le point de montage puis on monte la partition :

# mkdir /home.new
# mount /dev/hda3 -t ext3 /home.new

Maintenant que la partiton est montée, il faut y copier toutes nos données.
Seulement nous n'allons pas copier les données n'importe comment, il faut faire attention à ce que les droits, propriétaires, groupes, dates, etc. soient identiques. Pour cela, nous allons utiliser l'option -a de cp

# cp -a /home/* /home.new

Une petite vérification que tout s'est bien passé :

# diff /home/cybersdf /home.new/cybersdf

S'il nous dit que tout est identique (comprendre tous les fichiers avec les permissions propriétaires, groupes, dates, tailles, etc.), on peut continuer.

2.1 Activation de la nouvelle partition /home

Première étape, échanger les répertoires /home et /home.new :

# mv /home /home.old
# mv /home.new /home

Puis on va donner à notre partition son nouveau petit nom :

# e2label /dev/hda3 /home

3- Déclaration dans /etc/fstab puis passage en runlevel 5

On édite donc le fichier /etc/fstab :

# vim /etc/fstab

On y ajoute notre partition nouvelle home :

/dev/hda3          /home          ext3          defaults          0          2

Y'a plus qu'à la tester et vérifier :

# mount /home
# ls -lart /home/cybersdf

Si tout est ok, on passe en mode normal :

# telinit 5

ET VOILA !

Toutes les fautes d'orthographes présentes sur ce site sont protégées par la licence Logo Creative common Creative common

 |  Valid XHTML  |  Valid CSS  |  Dotclear  |  Design décliné de [ON]Simple par [ NikO ]
Hébergé par Typhon.Network