LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


debian:passer_sa_debian_32bits_en_64_bits

Passer son système Debian x86 en x86-64

<note warning>Certaines manipulations (partitionnement…) sont potentiellement dangereuses. Le détail des commandes n'est pas donné, il est supposé connu que “copiez le fichier /home/blabla.txt dans le répertoire courant” se traduit en console par “cp /home/blabla.txt .”, si cela vous pose problème c'est sans doute qu'il serait risqué pour vous de suivre ce tutoriel sans faire quelques lectures et expériences préalables, en particulier le système de gestion de paquet de Debian.
Cela dit c'est en forgeant…</note>

:!: Avertissement 2 : cette procédure n'est pas reproductible à la lettre et demande du bon sens. Si vous terminez avec une choucroute garnie à la place d'un clone de votre système Debian en 64bit cela ne devra pas trop vous étonner… Pour moi tout a fonctionné du premier coup, à quelques “retouches” près !

Point de départ

Vous avez un système configuré aux petits oignons en 32bit, mais pour des raisons diverses vous aimeriez goûter aux joies de l'architecture 64bits, en retrouvant exactement le même système évidemment pour ne pas perdre des heures de configuration.

La transition est possible, sans gros risque ni réelle difficulté, et aujourd'hui les inconvénients du 64bits se résorbent au point de ne plus être une raison d'hésiter : les plug-in flash et java fonctionneront nativement en 64bit, Skype fonctionne parfaitement également… On y va ?

Pré-requis

La procédure présenté ici est simple, mais fait appel à une bonne dose de jugement personnel et d'organisation, il faut également prévoir du temps (plusieurs heures).

En résumé vous allez installer un système minimal 64bit, puis migrer la structure et la configuration de votre système 32bits vers ce nouveau système. Il existe d'autres méthodes qui n'impliquent pas de partir d'une installation minimale 64bits, mais aucune n'a jamais fonctionné pour moi… Elles ne sont d'ailleurs ni recommandé ni supportées pas Debian.

Bien sûr, il faut avoir un processeur compatible avec l'architecture 64bits, qu'il soit AMD ou Intel. La commande :

$ cat /proc/cpuinfo | grep flags

ou

$ hwinfo --cpu | grep Features

vous donnera toutes les informations sur votre processeur, si à la ligne “flags” vous voyez “lm” (pour “long mode”) votre processeur supporte le 64bit. C'est le cas de tous les AMD athlon 64 (simple ou double cœurs) et plus récents, et des Intel “dual core” ou plus récents.

Préparation

Tout d'abord le conseil habituel : sauvegardez vos documents importants. C'est moins critique ici car votre système original ne sera pas touché par les manipulations, mais à partir du moment où on manipule des outils de partitionnement une assurance n'est pas superflue…

Faite de la place sur votre (vos) disque(s) pour accueillir le système 64bits, deux partitions suffisent pour / et /home, une partition swap étant sans doute déjà présente. Les utilisateurs avancés choisiront leur partitionnement habituel, ça n'a pas d'importance.
À l'aide d'un live-cd (Gparted-live, System Rescue cd, Knoppix…) redimensionnez les partitions existantes, et créez les nouvelles.
Si vous possédez déjà trois partitions primaires, créez une partition étendue et des partitions logiques pour accueillir le nouveau système.
Vous pouvez bien entendu également utiliser un disque différent.

Créez ensuite une image de votre partition /home dans l'une des nouvelles partition. Dans Gparted un simple “clic-droit > copier” sur la partition à copier, suivi d'un “clic-droit > coller” sur la nouvelle fera le travail, la partition d'accueil doit être au moins aussi grande que celle d'origine (réduisez la partition d'origine avant la copie si besoin). Vous pouvez également utiliser un utilitaire comme “partimage”, un live-cd spécialisé comme “Clonezilla”. Vous pouvez également simplement créer une nouvelle partition vide et utiliser “rsync” ou autre pour copier les données.

Je vous conseil d'attribuer un label à cette partition pour éviter tout risque de confusion avec l'originale, ici je l'appellerai “/home64” . Vous pouvez également utiliser les UUID pour identifier les nouvelles partitions. Pour modifier l'UUID de la nouvelle partition (dans le cas d'une image elle aura le même que la partition d'origine, ce qui n'est pas bon) utilisez :

# tune2fs -U time /dev/sd*

où “/dev/sd*” est à remplacer par la partition visée.

Si la place vous manque contentez vous de copier un squelette de /home avec l'ensemble des fichiers et répertoires cachés (les ~/.*), vous récupérerez vos données par la suite (utilisez des outils qui respectent les droits sur les fichiers, comme les commandes “cp -a” ou “rsync -a” ).

Vous pouvez également réutiliser votre partition “/home” originale, si vous êtes suffisamment confiant dans vos manipulations.

La copie du répertoire /home ne demande normalement aucune manipulation supplémentaire.

Téléchargez les pilotes dont vous pourrez avoir besoin en version 64bits (Nvidia, AMD/ATI fglrx…) et enregistrez les sur votre nouvelle partition “/home64” (à monter auparavant…). Vous pouvez aussi préparer une “traduction” de votre sources.list pour le système 64bit, c'est nécessaire seulement vous utilisez des dépôts non-standard qui sont dépendant de l'architecture, pour les dépôts Debian rien ne change car les entrées du fichier /etc/apt/sources.list ne contiennent pas de référence à l'architecture.

Préparez également une copie de vos fichiers de préférences de apt si vous en utilisez (pour le “package pinning”…), la solution “à la louche” étant de copier totalement le répertoire /etc/apt en changeant simplement le sources.list pour la version modifiée. L'avantage de cette copie complète est de récupérer aussi les signatures des dépôts. Copiez également les fichiers d'utilisateurs et de groupes “/etc/passwd|shadow|group”, de cette façon les utilisateurs et démons systèmes retrouveront les mêmes uid et gid.

Sur le système en 32bits faite une mise à jour complète et exécutez :

$ dpkg --get-selections | grep install$ > selection.txt

Le fichier “selection.txt” généré contient la liste de l'ensemble des paquets installés, sans précision d'architecture. C'est ce fichier qui va nous permettre de réinstaller exactement les mêmes paquets pour la nouvelles architecture.

Ouvrez “selection.txt” dans un éditeur de texte et parcourez le minutieusement, effacez toutes les lignes faisant référence à des paquets que vous ne souhaitez pas installer automatiquement parce qu'ils sont susceptibles de poser problème. Effacez par exemple les paquets correspondants au noyau, “headers” et source du système 32bit, la libc6 (libc6-i686 ou libc6-i386 par exemple) également. Si vous avez installé w32codecs, remplacez par w64codecs ; vous pouvez aussi supprimer les paquets relatifs à java, flash, et tous les paquets téléchargés et installés manuellement avec “dpkg -i” , KPackage ou Gdebi ; supprimez les paquets installés depuis les sources avec “checkinstall” et qui apparaissent dans la liste… La liste n'est pas exhaustive, à vous de faire preuve de bon sens. Si vous loupez quelques paquets vous ne provoquerez sans doute pas de catastrophe, juste quelques messages d'erreur de la part de apt-get et éventuellement un blocage de l'installation vous obligeant à vérifier la liste avant de recommencer.

Quand tout est propre enregistrez “selection.txt” sur /home64.

Vous êtes prêt pour la suite.

Installation d'un système minimum 64bit

Téléchargez un cd d'installation Debian x86-64, peu importe le media utilisé (net-install, multi-arch, dvd, voir debootstrap…). Installez un système de base, sans environnement graphique, sur une partition libre créée précédemment, indiquez la copie de votre /home (/home64) comme répertoire /home, mais attention à préciser de NE PAS FORMATER cette partition.

Attention aussi à l'installation de grub, par sécurité il vaut mieux pour le moment conserver votre configuration intacte et installer grub sur la partition racine du futur système 64bit et non le MBR (secteur d'amorçage ou “Master Boot Record”) du disque maître. Il vous suffira ensuite d'ajouter une entrée au menu.lst de “l'ancien” système 32bit pour démarrer le “nouveau” système 64bit.
Une fois que tout fonctionne normalement vous pourrez installer grub sur le mbr avec:

# grub-install --recheck "(hd0)"

où “(hd0)” est à remplacer par votre disque d'amorçage.

Redémarrage sur le système 64bits

Une fois l'installation terminée redémarrez sur le nouveau système (si vous avez bien suivis vous vous retrouvez en console, aucun environnement de bureau n'ayant été installé), vérifier que la partition /home64 est bien présente et montée (en listant avec “ls” les fichiers du répertoire /home/user par exemple), copiez le fichier sources.list ou l'ensemble du répertoire /etc/apt que vous avez préparé à l'étape précédente dans le répertoire /etc/apt/ de votre nouveau système, et exécutez :

# apt-get update
# apt-get upgrade

(ou utilisez “aptitude” selon vos habitudes, c'est sans doute d'ailleurs préférable.)

Attention à vous retrouver dans la même version de Debian que précédemment en 32bits : Stable, Testing ou Sid, ça devrait être le cas si vous avez copié votre répertoire /etc/apt et votre sources.list.

Le clonage

La première étape est d'installer le même groupe de paquets que sur le système d'origine, pour cela on utilise le fichier “selection.txt” créé et enregistré sur le /home64 précédemment :

# dpkg --set-selections < /home/selection.txt
# apt-get dselect-upgrade

Là vous êtes bon pour une petite attente, votre présence est requise par les quelques questions de configuration qui vous seront éventuellement posées et suspendent l'installation en attendant une réponse. Il vaut mieux être devant l'écran si une erreur bloque l'ensemble de l'installation… Prenez le temps de parcourir l'ensemble des paquets qui sont proposés à l'installation par apt, par le jeux des dépendances vous noterez peut-être des paquets installés et susceptibles de poser problème par la suite (comme “nvidia-glx-*” si vous voulez utiliser le .run de nvidia…).

:!: Apt va stocker en cache (/var/cache/apt/archives) les paquets téléchargés pour l'installation, si vous avez été avare pour fixer la taille de / (ou /var) ça risque de coincer sérieusement et définitivement ! Dans ce cas il ne vous reste qu'à vider le cache (manuellement ou avec « apt-get clean ») et installer manuellement par petits groupes les paquets listés dans “selection.txt”, ou redimensionner la partition / (ou /var).

Une fois l'installation terminée il reste à récupérer les fichiers de configuration dans /etc de l'ancien système. Faites le tri de ce qui peut servir : /X11/xorg.conf, /network/interfaces, sysctl.conf, group, profile, sudoers, pare-feu, samba… d'une manière générale tout logiciel ou service qui a nécessité une configuration manuelle. Il est bien sûr possible de copier l'ensemble du répertoire /etc, mais cette façon de procéder risque de générer des problèmes inattendus, et qui seront difficiles à diagnostiquer. /srv/ contiendra aussi des choses indispensables si vous avez un serveur, etc…
Cette étape vous amènera peut-être à prendre l'habitude de conserver une copie de tout fichier de configuration modifié, c'est utile pour les migrations/upgrades, ou quand une mise à jour écrase le fichier en question…

Faites aussi un tour dans /usr/share où se cachent quelques répertoires intéressant, comme /usr/share/apps si vous utilisez kde (le theme de l'écran de login de kdm par exemple), /usr/share/wallpapers et icons pour l'esthétique, les templates de Scribus…

Plus important, pensez à vos clés ssh (/etc/ssh) et autres certificats, et conservez de toutes façon une sauvegarde de votre ancien système pour y piocher les oublis probables.

Voilà, à ce stade vous devriez avoir un système 64bit d'aspect parfaitement identique à votre ancien système. Faites le tour des logiciels qui sont les plus importants pour vous, réinstallez ceux qui dépendaient de paquets externes aux dépôts ou étaient compilés depuis les sources.

Attention à bien vérifier les points névralgiques comme la configuration du pare-feu ou de ssh : il est facile de se croire à l'abri d'une bonne configuration alors que c'est le fichier par défaut qui est utilisé…

Cas particulier : bases de données

Si vous avez des bases de données, type Mysql, PostGreSQL etc…, vous devez les sauvegarder séparément avec leurs outils spécifiques (“dump”…). Si vous vous contentez de copies les bases seront sans doute inutilisables.


Envoyer un message au mainteneur

debian/passer_sa_debian_32bits_en_64_bits.txt · Dernière modification : 2018/11/17 12:52 de 127.0.0.1