ayant acquis récemment un pc avec 4 Go de mémoire, je me suis décidé à y installer Arch en 64 bits. Et tant qu'à faire, j'ai aussi décidé de migrer mes pc qui étaient en Arch 32 bits.
Pourquoi j'étais en 32 bits ? Parce que j'avais des souvenirs de plugin flash qui ne fonctionnaient pas en 64 bits (et donc usage du plugin avec nspluginwrapper) et j'utilisais wine (je ne savais pas comment pouvait cohabiter un linux 64 bits avec un wine qui devait faire tourner une appli 32 bits).
Après lecture de différentes pages concernant mes deux 'soucis' (flash et wine) ainsi que la lecture de cet excellent fil de discussion (https://bbs.archlinux.org/viewtopic.php?id=64485) je me suis lancé dans l'expérience... qui s'est conclu par un succès total.
Au passage je remercie encore une fois LVM, qui m'a permis de faire mes essais sans risquer mon système et sans galérer pour créer des partitions de test.
En attendant de mettre ces infos sur le wiki (mes talents de mise en page étant plutôt.. absents !) je vous livre dans un premier temps la méthode utilisée. Si une bonne âme est prête à créer la page dans le wiki, je la laisse volontiers oeuvrer

Il est vrai que quand on y réfléchit, il semble simple de passer son système en 64 bits : il "suffit" de remplacer tous les binaires (exécutables, librairies, modules noyau...) par leur version 64 bits. Et le couple Arch - pacman est vraiment un outil bien pensé pour effectuer cette opération.
Voilà maintenant vous avez un beau système 64 bits, let's rock !Voici un résumé des opérations que je détaille juste après :
- mettre le système à jour
- supprimer les paquets qui posent problème en 64 bits (flash, wine). Ils seront réinstallés à l'issu de la migration.
- Supprimer les paquets AUR. Ils seront eux aussi réinstallés à l'issu de la migration.
- Création de la liste des paquets à migrer
- Suppression du cache de pacman
- Démarrage sur un live-cd/clé usb Arch 64 bits
- mise à jour des paquets en 64 bits
- recompilation de l'initramfs
- Redémarrage et admiration du résultat![]()
- Installation des paquets supprimés (AUR, flash, wine...)
Mise à jour du système
Afin d'être sur d'installer en 64 bits la même version que les paquets 32 bits, on va commencer par mettre à jour le système via un classique :Supprimer les paquets qui posent problème en 64 bits (flash, wine)Code : Tout sélectionner
# pacman -Syu
Là encore rien de bien mystérieux, il suffit de faire un :Si d'autres paquets sont dans le même cas, les supprimer eux aussi (skype par exemple).Code : Tout sélectionner
# pacman -Rs wine flashplugin
Supprimer les paquets AUR
Là encore rien de compliqué :Création de la liste des paquets à migrerCode : Tout sélectionner
# pacman -R `pacman -Qqm`
Toujours facile (décidément Arch, c'est trop KISS) :Suppression du cache de pacmanCode : Tout sélectionner
# pacman -Qq > $HOME/pkg.list
On supprime le cache afin d'éviter d'y retrouver des paquets 32 bits quand on va vouloir installer des paquets 64 bits :Démarrage sur un live-cd/clé usb Arch 64 bitsCode : Tout sélectionner
# pacman -Scc
A la limite on peut booter sur une autre distro et y installer pacman (cf http://wiki.archlinux.fr/Install_chroot) mais restons entre nous.
Une fois démarré, on monte tout ce qu'il faut :Si le système est réparti sur plusieurs partitions (/, /boot, /var...), on monte aussi /boot et /var (pas besoin de /home ou d'autres partitions)Code : Tout sélectionner
# mkdir /mnt/migr # mount /dev/<partition root 32 bits> /mnt/migr
On commence par mettre à jour le pacman du live-cd, car c'est fort vraisemblablement une version antérieure à la 3.5, ce qui pose problème (le format de la base de données a changé entre temps)Code : Tout sélectionner
# mount /dev/<partition boot> /mnt/migr/boot # mount /dev/<partition var> /mnt/migr/var
On ne met pas à jour la base de données du live-cd, ce n'est pas nécessaire pour la suite.Code : Tout sélectionner
# pacman -Sy # pacman -S pacman
Mise à jour des paquets en 64 bits
On met à jour la base de données pacman de notre système à migrer :Et là commence le vrai boulot. On fait l'upgrade du système :Code : Tout sélectionner
# pacman --root /mnt/migr -Syy
L'option --noscriptlet n'exécute pas les scripts d'installation. On se contente 'juste' de remplacer chaque paquet par son équivalent 64 bits.Code : Tout sélectionner
# pacman --root /mnt/migr --cache /mnt/migr/var/cache/pacman/pkg --noscriptlet -S `cat /mnt/migr/root/pkg.list`
Recompilation de l'initramfs
Si on s'arrête là on n'a fait qu'une partir du boulot. Il faut en effet installer le noyau ainsi que créer l'initramfs qui va bien. On va de plus réinstaller les paquets avec exécution des scripts d'installation (ce qui incluera au passage la création de l'initramfs)
Pour se faire on va chrooter dans notre install toute fraiche :Redémarrage et admiration du résultatCode : Tout sélectionner
# mount --bind /proc /mnt/migr/proc # mount --bind /sys /mnt/migr/sys # mount --bind /dev /mnt/migr/dev # mount --bind /dev/shm /mnt/migr/dev/shm # mount --bind /dev/pts /mnt/migr/dev/pts # chroot /mnt/migr # pacman -S `pacman -Qq`
On quitte proprement le chroot et on reboote :Installation des paquets supprimés (AUR, flash, wine...)Code : Tout sélectionner
# exit # umount /mnt/migr/dev/shm # umount /mnt/migr/dev/pts # umount /mnt/migr/dev # umount /mnt/migr/sys # umount /mnt/migr/proc # umount /mnt/migr/var (si nécessaire) # umount /mnt/migr/boot (si nécessaire) # umount /mnt/migr # reboot
Là je vous laisse faire, rien de bien sorcier.