Migrer votre système sur un nouveau disque dur


Vous vous sentez bien à l’étroit dans votre installation actuelle et un disque dur plus grand vous permettrai de respirer encore. Mais comment faire pour ne pas avoir à tout réinstaller et profiter tout de même de toute cet espace disque libre. Cette exemple est basée sur la migration d’un disque de 120Go vers un de 250Go dans un portable Dell Inspiron 9400.

Introduction

Le but est de migrer aussi bien les données sous Linux mais aussi un partition Windows XP et deux partitions Dell sans perdre de données. Ensuite il faudra redimensionner une partition étendue et les partitions quelle contient.

Configuration actuelle du disque dur :

 /dev/sda1   86Mo  Dell Utility
 /dev/sda2   15Go  HPFS/NTFS
 /dev/sda3   3Go CP/M / CTOS
 /dev/sda4   102Go  Extended
   /dev/sda5 3Go Linux swap
   /dev/sda6 19Go Linux
   /dev/sda7 50Go Linux
   /dev/sda8 30Go Linux

Configuration voulue :

 /dev/sda1   86Mo  Dell Utility
 /dev/sda2   15Go  HPFS/NTFS
 /dev/sda3   3Go CP/M / CTOS
 /dev/sda4   214Go  Extended
   /dev/sda5 3Go Linux swap
   /dev/sda6 19Go Linux
   /dev/sda7 93Go Linux
   /dev/sda8 100Go Linux

Pré-requis

Avant de se lancer il faut s’assurer d’avoir tout le matériel requis. Tout d’abord il faut un Live CD avec les logiciels dd et parted. Si gparted ou qtparted sont présents c’est un gros plus. Les Live CD Ubuntu ou Knoppix contiennent ces outils. Ensuite il faut un nouveau disque dur et un boitier externe pour ce disque dur. Que la connexion se fasse en USB 2.0, en FireWire ou en eSata importe peu. Toutes les étapes qui suivent sont très longues (plusieurs heures) et très consommatrices en énergie, si vous essayez de faire ceci sur un ordinateur sur batterie assurez-vous que la prise secteur est branchée.

Transfert des données

Pour effectuer ce transfert nous utiliserons le logiciel dd. Démarrez votre machine sur le Live CD et choisissez l’environnement graphique que vous voulez et la langue française pour le clavier. Désactivez tout système de mise en veille.

Vérifiez que toutes les partitions de votre disque dur interne soient démontées. Profitez-en pour noter quel device est utilisé pour ce disque (/dev/sda ou /dev/sdb normalement). Dans un terminal lancez la commande tail -f /var/log/syslog et branchez le boitier externe avec le nouveau disque dur à l’intérieur. S’il est monté automatiquement il faut le démonter. Il n’y a pas besoin de partitionner le nouveau disque dur. L’affichage du fichier syslog a dû vous donner le nom du device pour le disque dur externe (/dev/sdc ou /dev/sdd). Vérifiez deux fois avant de lancer la commande suivante :

 $ sudo dd if=device_disque_dur_interne of=device_disque_dur_externe

soit :

 $ sudo dd if=/dev/sda of=/dev/sdc

A partir de là vous pouvez aller regarder la Trilogie du seigneurs des anneaux en version longue. La vitesse d’achèvement de cette tâche dépendra uniquement de la connexion de votre disque dur externe. Pour 120Go cela a prit plus de 5h et moins de 10h.

Une fois cette opération finie vous pouvez placer votre nouveau disque dans votre ordinateur à la place de l’actuel ou continuer sur votre lancée.

Redimensionner les partitions

Le but est de redimensionner la partition Linux étendue (/dev/sda4) pour quelle occupe tout l’espace libre et d’augmenter la taille des partitions /dev/sda7 et /dev/sda8 pour quelle atteigne les 100Go. Vérifier à nouveau qu’aucune partition n’est montée, sinon parted refusera de travailler. Pour ma part j’ai choisi d’utiliser gparted pour son interface plus intuitive. J’ai aussi préféré effectuer les opérations une par une plutôt que d’enchainer tout en une fois. Chacune de ces étapes est longue, donc prenez un bon livre et surveillez l’avancement du travail.

GParted en action

GParted en action

Tout d’abord il m’a fallu déplacer /dev/sda3 en fin de disque car elle se trouvait après /dev/sda4. Ensuite j’ai pu redimensionner /dev/sda4 pour quelle occupe tout l’espace disque. Enfin j’ai déplacé /dev/sda8 en fin de partition étendue et j’ai augmenté sa taille à 102400Mo. Pour finir j’ai augmenté la taille de /dev/sda7 pour qu’elle prenne l’espace restant.

Et voilà, vous avez votre système sur un disque dur neuf.

Publicités

Du bon usage de easy_install


Les distributions GNU/Linux usent et parfois abusent de python comme langage de script pour la configuration du système. En contrepartie il devient difficile d’utiliser easy_install sans casser le système. Il se peut aussi que certains logiciels python est une liste de dépendances tellement longue qu’il soit impossible de les installer tel quel dans le système avec easy_install. Pour éviter ces écueils, plusieurs parades ont été mises au point et la plus aboutis est sûrement virtualenv.

Les eggs des modules comme python-ldap ou Python Imaging Library sont très dépendants du systèmes et demandent des installations particulières selon les plateformes (PILwoTK ne fonctionne pas sous win32 par exemple). D’autres eggs comme gaphor ou i18ndude demandent quasiment une installation séparée. Pour ces derniers il est possible de sans toucher au Python du système.

Pour commencer il vous faudra choisir sur quelle version de python vous souhaitez travailler :

# easy_install-2.5 virtualenv

ou

# easy_install-2.4 virtualenv

Ensuite vous aller créer une boîte pour votre python :

$ virtualenv --no-site-packages monprojet cd monprojet$ ls

bin         lib

# voici une commande toute prête pour modifier le PATH

$ source ./bin/activate

(monprojet)$ which easy_install

/home/encolpe/monprojet/bin/easy_install

(monprojet)$ which easy_install-2.4

/home/encolpe/monprojet/bin/easy_install-2.4

(monprojet)$ which python2.4

/home/encolpe/monprojet/bin/python2.4

(monprojet)$ which python

/usr/bin/python
La dernière commande nous montre un beau piège dans lequel il nous faudra éviter de tomber : une fois une version de Python choisie l’exécutable python reste branché sur le système alors que python-x.y est une version locale. Pour vous en convaincre aller faire un tour dans le sous-répertoire lib/python.

À partir de maintenant vous pouvez utiliser easy_install dans votre répertoire sans craindre d’interaction avec le système.