[Migration] Migrer de 32 vers 64 bits (tutoriel)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

[Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par oktoberfest »

Hello,

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 :copain: .

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.
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 :bravo:
- 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 :

Code : Tout sélectionner

# pacman -Syu
Supprimer les paquets qui posent problème en 64 bits (flash, wine)
Là encore rien de bien mystérieux, il suffit de faire un :

Code : Tout sélectionner

# pacman -Rs wine flashplugin
Si d'autres paquets sont dans le même cas, les supprimer eux aussi (skype par exemple).

Supprimer les paquets AUR
Là encore rien de compliqué :

Code : Tout sélectionner

# pacman -R `pacman -Qqm`
Création de la liste des paquets à migrer
Toujours facile (décidément Arch, c'est trop KISS) :

Code : Tout sélectionner

# pacman -Qq > $HOME/pkg.list
Suppression du cache de pacman
On supprime le cache afin d'éviter d'y retrouver des paquets 32 bits quand on va vouloir installer des paquets 64 bits :

Code : Tout sélectionner

# pacman -Scc
Démarrage sur un live-cd/clé usb Arch 64 bits
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 :

Code : Tout sélectionner

# mkdir /mnt/migr
# mount /dev/<partition root 32 bits> /mnt/migr
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

# mount /dev/<partition boot> /mnt/migr/boot
# mount /dev/<partition var> /mnt/migr/var
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

# pacman -Sy
# pacman -S pacman
On ne met pas à jour la base de données du live-cd, ce n'est pas nécessaire pour la suite.

Mise à jour des paquets en 64 bits
On met à jour la base de données pacman de notre système à migrer :

Code : Tout sélectionner

# pacman --root /mnt/migr -Syy
Et là commence le vrai boulot. On fait l'upgrade du système :

Code : Tout sélectionner

# pacman --root /mnt/migr --cache /mnt/migr/var/cache/pacman/pkg --noscriptlet -S `cat /mnt/migr/root/pkg.list`
L'option --noscriptlet n'exécute pas les scripts d'installation. On se contente 'juste' de remplacer chaque paquet par son équivalent 64 bits.

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 :

Code : 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`
Redémarrage et admiration du résultat
On quitte proprement le chroot et on reboote :

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
Installation des paquets supprimés (AUR, flash, wine...)
Là je vous laisse faire, rien de bien sorcier.
Voilà maintenant vous avez un beau système 64 bits, let's rock !
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [sondage] Installation galère ?

Message par oktoberfest »

C'est bon c'est bon, j'ai cédé : il y a une page sur le wiki http://wiki.archlinux.fr/Migration_64_bits
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [sondage] Installation galère ?

Message par FoolEcho »

@oktoberfest: j'suis déjà en train de relire. Principalement de réorganiser ton plan (3 fois rien: pré-requis / migration / post-migration). :chinois: N'ayant jamais eu à faire cette migration, j'ai un doute sur un fichier de configuration: ton /etc/makepkg.conf est bien aligné sur ta nouvelle architecture ? (les flags sont bien en x86_64) ... c'est-à-dire qu'avec le pacman.conf auquel il faut rajouter les dépôts, c'est le seul autre fichier à vérifier manuellement ?
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17596
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [sondage] Installation galère ?

Message par benjarobin »

J'ai fait quelques correction moi aussi, il y avait des erreurs de cachés
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [sondage] Installation galère ?

Message par FoolEcho »

Voilà, publié aussi, je pense que la lisibilité est un peu meilleure (j'attendrai la réponse d'oktoberfest pour adapter sur les fichiers de configuration)... Bon mince, le sujet a salement dérapé :mrgreen:
Au besoin, je propose de poursuivre sur le sujet initial: http://forums.archlinux.fr/post74337.html#p74337 (après, si c'était possible qu'un zentil modo puisse déplacer les quelques posts sur l'autre sujet, ça serait chouette... :D :chinois: )
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par tuxce »

Oula, il y a eu des modifs sur la page wiki :)
Je me suis permis de rajouter un [ quote] au premier message histoire de pas avoir à abuser de la molette.

Questions:
La ré-exécution des scriptlets est elle nécessaire (des paquets créant des binaires, y en a t il tant que ça?), un "pacman -S kernel26" est suffisant à mon avis. (ou un mkinitcpio)
Le fait de faire un -Sy de pacman sur le live, je me demande si ça casse pas (mais c'est peut être testé).
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17596
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par benjarobin »

tuxce a écrit :La ré-exécution des scriptlets est elle nécessaire (des paquets créant des binaires, y en a t il tant que ça?), un "pacman -S kernel26" est suffisant à mon avis. (ou un mkinitcpio)
Je suis partiellement d'accord, bien que je ne vois pas directement un contre exemple. C'est un peu paranoïaque mais cela ne prend pas beaucoup de temps (10 minutes maximum si le PC ne possède pas un disque dur trop lent)
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par oktoberfest »

Je viens de relire ma page : elle est vachement plus classe, merci à tous.

@FoolEcho : Concernant /etc/makepkg.conf, je n'ai jamais regardé le contenu de ce fichier. Je regarde ce soir et je vous tiens au courant.
@tuxce : pour les scriptlets je me suis aussi demandé si "mkinitcpio -p kernel26" ne suffirait pas, mais je me suis basé sur un post anglophone (https://bbs.archlinux.org/viewtopic.php?id=64485) sans trop me poser de questions sur cette partie.
Maintenant que je maitrise je referai un essai et je modifierai le wiki en conséquence :)
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par FoolEcho »

oktoberfest a écrit :@FoolEcho : Concernant /etc/makepkg.conf, je n'ai jamais regardé le contenu de ce fichier. Je regarde ce soir et je vous tiens au courant.
C'est bon, j'ai ma réponse https://wiki.archlinux.org/index.php/Mi ... iler_flags
et ai mis le wiki à jour: http://wiki.archlinux.fr/Migration_64_b ... figuration

Pense à faire le(s) changement(s) pour toi. ;-)
«The following statement is not true. The previous statement is true.» :nage:
oktoberfest
Maître du Kyudo
Messages : 1855
Inscription : mer. 06 janv. 2010, 13:51
Localisation : Ried - Alsace - France

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par oktoberfest »

Je viens de regarder le /etc/makepkg.conf : il y est noté partout x86_64.
J'ai encore le volume où j'avais fait un backup du système quand il était encore en 32 bits : il y est noté i686

Voici d'ailleurs le diff entre les deux :

Code : Tout sélectionner

< CARCH="i686"
< CHOST="i686-pc-linux-gnu"
---
> CARCH="x86_64"
> CHOST="x86_64-unknown-linux-gnu"
29c29
< #-- Exclusive: will only run on i686
---
> #-- Exclusive: will only run on x86_64
32,33c32,33
< CFLAGS="-march=i686 -mtune=generic -O2 -pipe"
< CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe"
---
> CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
> CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
Il semble donc que l'installation de pacman en x86_64 ait écrasé le /etc/makepkg.conf
La majorité des bugs se situe entre la chaise et le clavier...
Arrêtez de vous prendre la tête avec les partitions... passez au LVM
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17596
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par benjarobin »

oktoberfest a écrit :Il semble donc que l'installation de pacman en x86_64 ait écrasé le /etc/makepkg.conf
Ceci n'est vrai que si tu n'as jamais édité ce fichier. Il est comme même conseillé de modifier certain paramètre (au moins le -j du make)
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Migration] Migrer de 32 vers 64 bits (tutoriel)

Message par FoolEcho »

benjarobin a écrit :Ceci n'est vrai que si tu n'as jamais édité ce fichier.
Tout à fait (voir le man de pacman) :chinois: (mais merci, j'avais un gros doute d'où ma question avant de toucher au wiki :mrgreen: )
benjarobin a écrit :(au moins le -j du make)
+1.
«The following statement is not true. The previous statement is true.» :nage:
Répondre