J'ai une installation Ubuntu 32 bits fonctionnant sur du matériel 64 bits. Maintenant que le multi-arch a été implémenté , je voudrais passer au 64-bit sans avoir à réinstaller le système d'exploitation.
C'est l'une des histoires d'utilisateurs abordées par la spécification :
Shawn a installé son système en utilisant la version 32 bits d’Ubuntu, mais son matériel est en 64 bits et il souhaite basculer. Il installe manuellement les versions amd64 de dpkg et apt, en remplaçant les versions i386 et en modifiant l'architecture utilisée par défaut; puis il installe le paquet amd64 ubuntu-minimal; il installe ensuite le paquet amd64 ubuntu-desktop. Au fil du temps, les packages i386 restants sont automatiquement remplacés lors de la mise à niveau.
Cependant, lorsque j'essaie de suivre les instructions, je ne trouve aucune version 64 bits de dpkg ou d'apt.
Cette user story a-t-elle été implémentée de manière différente dans la spécification finale ou dois-je faire quelque chose de différent?
En bref, comment puis-je passer de mon installation 32 bits à 64 bits?
Réponses:
Une telle approche est très compliquée et il est peu probable que tous vos paquets soient la
amd64
version au lieu de lai386
version. Seuls les packages qui reçoivent réellement des mises à niveau seront probablement modifiés dans l'architecture, et probablement que si aucun autre package non mis à niveau ne repose sur leur appartenance à l'i386
architecture. Étant donné que certains paquets ne recevront aucune mise à jour tout au long du cycle de support de votre version d'Ubuntu, vous ne disposerez probablement jamais d'unamd64
système complet utilisant une telle technique. En outre, il n’ya certainement aucun soutien officiel en faveur d’une telle approche.Nous vous conseillons de remplacer votre système Ubuntu existant par une nouvelle installation 64 bits.
Toutefois, si vous souhaitez essayer cette technique, vous devrez télécharger manuellement les
.deb
fichiers pourdpkg
etapt
. Vous pouvez les trouver dans les pagesdpkg
Ubuntu etapt
Ubuntu sur Launchpad - développez la dernière version sous "The Oneiric Ocelot" qui est marquée comme étant une version, une sécurité et / ou des mises à jour (mais vous ne voulez probablement pas une version marquée uniquement). proposés et / ou backports, s’il en existe un). Ensuite, téléchargez les.deb
fichiers marquésamd64
. Spécifiquement, les fichiers que vous voulez sont: celui-ci pourdpkg
(et les autres listés, aussi, si vous avez ces paquets installés) et ceci et ceci et ceci et celaet ceci pourapt
.Avant de faire quoi que ce soit avec ces fichiers, vous devez vous assurer de sauvegarder tous les documents importants de votre système Ubuntu installé et tout autre fichier important (par exemple, de la musique, des livres électroniques, des vidéos), car il est plutôt probable que cette technique se retournera contre vous. et laissez votre système Ubuntu complètement inutilisable.
Vous pouvez installer tous ces packages en les plaçant dans un dossier ne contenant rien d'autre (supposez que le dossier est appelé
debs
et se trouve dans votreDownloads
répertoire), puis en exécutant cette commande:Bien sûr, une fois que vous les aurez installés, ils ne fonctionneront pas car leurs exécutables sont 64 bits et votre système Ubuntu 32 bits exécute un noyau 32 bits (qui n'exécutera que des exécutables 32 bits). En fait, ils pourraient même ne pas terminer l'installation, car ils pourraient avoir des scripts de post-installation qui invoquent leurs exécutables inimaginables de 64 bits.
Il existe différentes façons d’installer un noyau 64 bits sur un système 32 bits, mais elles sont toutes extrêmement complexes. Je vous recommande donc de démarrer à partir d’un Live CD Oneiric 64 bits (qui exécute lui-même un disque 64 bits). noyau), chroot dans le système Ubuntu installé et utiliser la version 64 bits récemment installé
apt
etdpkg
installer un noyau 64 bits.Voici des instructions spécifiques pour le faire ... mais s'il vous plaît ne prenez pas cela pour dire que je dis que cela fonctionnera. Je n'ai pas essayé cela. (J'ai chrooté dans les systèmes Ubuntu installés à partir de CD live et effectué la gestion des paquets et d'autres opérations, mais je n'ai pas tenté les opérations inter-architectures suggérées ici.)
Dans votre système Ubuntu installé, ouvrez une fenêtre de terminal ( Ctrl+ Alt+ T) et exécutez-la
mount | grep ' on / '
(en la collant dans le terminal et en appuyant sur Entrée). Vous devriez voir quelque chose comme/dev/sda2 on / type ext4 (rw,errors=remount-ro,commit=0)
. La partie qui vous intéresse est le nom de l’appareil avanton
(dans cet exemple, c’est/dev/sda2
). Rappelez-vous-le ou écrivez-le.L'étape 1 vous a donné le nom de périphérique de la
/
partition. Si vous avez une/boot
partition séparée , vous devez également connaître le nom du périphérique correspondant. Donc dans ce cas, courezmount | grep ' on /boot '
. Vous verrez quelque chose comme/dev/sda1 on /boot type ext2 (rw)
. Rappelez-vous ou écrivez cela aussi.Démarrez à partir d’un live CD Oneiric amd64 (c’est-à-dire 64 bits) et sélectionnez "Essayer Ubuntu" plutôt que "Installer Ubuntu".
Allez dans un navigateur Web et assurez-vous que la connectivité Internet est entièrement fonctionnelle. Si ce n'est pas le cas, installez-le.
Ouvrez une fenêtre de terminal et lancez-la
sudo mount /dev/sda2 /mnt
(remplacez-le/dev/sda2
par le nom de périphérique obtenu à l'étape 1, s'il est différent).Si votre système installé possède une
/boot
partition distincte , exécutez-lesudo mount /dev/sda1 /mnt/boot
(remplacez-le/dev/sda1
par le nom de périphérique indiqué à l'étape 2, s'il est différent).Maintenant, exécutez ces commandes pour chroot dans votre système installé:
Exécuter
ping -c 4 launchpad.net
pour voir si la connectivité Internet fonctionne pleinement depuis le chroot. Vous espérez quelque chose comme ça:Si, au contraire, vous ne pouviez pas transmettre ou recevoir de paquets, vous devrez configurer la connectivité Internet dans le chroot. Pour ce faire, exécutez ces commandes (pour quitter le chroot, copiez les fichiers de configuration appropriés du système de CD live dans le chroot, puis entrez-le de nouveau):
Bien qu'en règle générale, vous devriez arrêter ce processus en cas d'erreur, ne vous inquiétez pas si la première et / ou la deuxième de ces quatre commandes échouent, à condition que la façon spécifique dont cela échoue consiste à vous dire que
/mnt/etc/resolv.conf
(ou/mnt/etc/hosts
) n'existe pas. .Retournez dans le chroot et essayez à nouveau:
Exécutez ces commandes pour rendre votre environnement chrooté entièrement prêt à être utilisé:
Si vous n'avez pas installé les
.deb
fichiers pour les versions 64 bits dedpkg
etapt
, faites-le maintenant. Si vous les avez installées mais que des erreurs de configuration se sont produites, exécutez-lesdpkg --configure -a
pour les réparer. (J'espère que cela fonctionnera ... il vaudra peut-être mieux attendre d'essayer de les installer jusqu'à ce que vous soyez dans l'environnement du CD live, au cas où l'installation du 64 bits audpkg
démarrage du système installé resteraitdpkg
dans un état inutilisable.)Avec les versions 64 bits de
dpkg
etapt
installées, en supposant qu'elles installent automatiquement les packages 64 bits, vous pouvez maintenant supprimer tous vos noyaux 32 bits et installer un noyau 64 bits. Pour supprimer vos noyaux 32 bits, exécutezdpkg -l | grep linux-
. Ceci répertorie les paquets installés qui commencent parlinux-
. Vous êtes plus particulièrement intéressé dans des emballages qui commencent commelinux-generic
,linux-image
,linux-server
et / oulinux-headers
. Supprimez ces fichiers avecapt-get purge ...
où...
est remplacé par une liste de paquets que vous supprimez, séparés par un espace.Maintenant, réinstallez les paquets que vous avez supprimés. (En fait, pour les packages contenant des numéros de version dans le nom du package, par exemple
linux-image-3.0.0-13-generic
, il vous suffit d'installer les derniers noms de packages versionnés.) Pour ce faire, exécutezapt-get install ...
où...
est remplacé par une liste des packages que vous installez séparés par un espace. .Mettez à jour la configuration du chargeur de démarrage, démontez certains périphériques et laissez le chroot:
Si vous avez couru
sudo cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.old
et que cela n'a pas échoué, exécutez maintenantsudo cp /mnt/etc/resolv.conf.old /mnt/etc/resolv.conf
.Si vous avez couru
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
et que cela n'a pas échoué, exécutez maintenantsudo cp /mnt/etc/hosts.old /mnt/etc/hosts
.Si votre système installé possède une
/boot
partition séparée , démontez-le:sudo umount /mnt/boot
Démontez la
/
partition de votre système installé :sudo umount /mnt
Quittez la fenêtre du terminal (exécutez
exit
), puis redémarrez (ou éteignez) le système de CD live et démarrez le système installé.Voyez si le système est utilisable et exécute un noyau 64 bits (
uname -m
devrait dire l'architecture estx86_64
).Pour que cela fonctionne, il se peut que vous deviez installer des packages supplémentaires, tels que
ia32_libs
et / ou la version 64 bits delibc6
celle-ci. Pour certains d'entre eux, vous pouvez être informé que vous en avez besoin lorsque vous essayez d'installer la version 64 bits dedpkg
et / ouapt
. Pour d'autres, vous pourriez ne pas être informé.(Les instructions ci - dessus pour chroot et opérant dans l'environnement chroot reposent en grande partie sur cette procédure connexe mais différente et aussi sur certains Launchpad Réponses messages de moi, en particulier # 6 ici et # 6 ici . Et merci à Césium pour souligner 64 bits
dpkg
et lesapt
exécutables ne fonctionneront pas sur un système exécutant un noyau 32 bits.)la source
apt
etdpkg
sont toujours en 32 bits et refuseront (vraisemblablement) d’installer un paquet de noyau 64 bits. (Construire le noyau à partir des sources et utiliser la compilation croisée fonctionnerait, mais c'est très compliqué et je ne veux pas le recommander. Je suis sûr qu'il existe un moyen plus simple et meilleur. Si vous le savez, n'hésitez pas pour modifier mon ou votre post ou un commentaire à ce sujet.)Comme indiqué ci-dessus, j'ai fait:
Ça a marché. Je suis en mesure d'exécuter mon environnement utilisateur 32 bits avec un noyau 64 bits sous Ubuntu 12.04.
la source
sudo dpkg --add-architecture amd64
plutôt. Il va crier à vous si vous le faites dans l'autre sens. J'avais besoin de faire cela pour pouvoir chrooter dans une installation 64 bits à partir d'une (précédemment) 32 bits et cela a fonctionné exactement comme prévu, sans aucun accroc.linux-image-generic:amd64
Ubuntu 16.04. Cela a bien fonctionné, même sans les deux dernières commandes.Bien que la question soit similaire à Est-il possible de "passer" d'une installation 32 bits à une installation 64 bits? (Si vous ne l'avez pas lu avant, je vous encourage à l'essayer. La réponse est bonne.) Je vous recommande également de lire les liens suivants:
Pour de meilleures performances, dois-je installer 32 bits ou 64 bits?
Comment passer d'une installation 32 bits à une installation 64 bits?
Quelles sont les différences entre 32 bits et 64 bits et que dois-je choisir?
Est-ce possible: oui
Est-ce facile: NON!
Si votre problème concerne la mémoire, sachez qu'Ubuntu 32 Bit peut lire plus de 4 Go de RAM (jusqu'à 64 Go). Donc, utiliser la dernière version 32 bits d'Ubuntu avec un ordinateur doté d'une architecture 32 bits ou 64 bits ne nécessitera pas davantage de mémoire vive. Il va simplement lire la RAM supplémentaire et travailler.
la source
Ces réponses sont un peu dépassées. Le classement croisé est maintenant documenté pour Debian sur le wiki Debian , mais il n’est toujours pas recommandé.
L'installation d'un noyau d'une architecture différente est maintenant aussi simple que décrit ici, mais le nouvel 'apt' ne reconnaîtra pas les paquets d'une architecture précédente, de sorte que tous les serveurs frontaux peuvent signaler de nombreux paquets cassés. Cela nécessite soit de changer toutes les dépendances de l'autre architecture, soit de rétablir apt et dpkg en 32 bits.
La meilleure approche peut donc être tout d’abord de sauvegarder les résultats de
dpkg --get-selections
, d’extraire: i386 de cela et de télécharger un paquet amd64 pour chacune des dépendances dans le cache:Au mieux, la résolution des dépendances risque d'être lente et longue.
la source
Ces instructions permettent à votre système de démarrer avec un noyau 64 bits, mais ne modifient pas la plupart des programmes utilisateur.
Après avoir mis à niveau mon système avec un processeur 64 bits, je souhaitais également installer un noyau 64 bits sur mon Ubuntu 14.04.2 32 bits (nom de code: Trusty). Pour ce faire, j'ai entré les commandes suivantes en tant qu'utilisateur root :
Remarques:
Cela pourrait supprimer votre noyau 32 bits car trusty - par défaut - est livré avec un noyau mis à jour (le noyau de utopic), voir 14.04 Notes de publication . Dans ce cas, votre noyau actuel entre en conflit avec le noyau 64 bits à installer et est donc supprimé. Si vous n'aimez pas cette idée, essayez plutôt l'ancien paquet du noyau 64 bits "linux-generic-lts-trusty: amd64".
La commande "--add-architecure" est essentielle. Sans cela, le système de packages ne prend pas en charge les packages de différentes architectures, voir Multiarch-HowTo
Pour voir ce que
apt-get
fera votre système, lancez-le avec les options-Vs
qui activent le "mode de simulation détaillé". Cela imprimera tous les paquets à installer et à supprimer.Que votre système démarre avec le nouveau noyau dépend de la
grub
configuration. En tant qu'utilisateur root , exécutez-leupdate-grub
pour mettre à jour grub et imprimer la configuration de démarrage actuelle. La première image de la liste sera démarrée par défaut.Pour sélectionner une image de noyau différent, j'ai enlevé la ligne
GRUB_HIDDEN_TIMEOUT=0
de/etc/default/grub
et RAN comme utilisateur rootupdate-grub
. Au démarrage, vous pouvez maintenant sélectionner un autre noyau (vous avez 10 secondes pour appuyer sur n’importe quelle touche, sinon grub continuera avec le noyau par défaut).La réponse avec le plus grand nombre de votes est de 2011 et est désespérément obsolète à mon avis. Multiarch vous permet d'installer des paquetages de bibliothèques de plusieurs architectures sur le même ordinateur sans plus tarder.
la source
apt-get install linux-generic:amd64
ce qui ne doit pas être très important pour l'expérience)! Si je passe par l'option de démarrage "rescue", le système s'exécute, mais X n'utilise pasnouveau
de pilote vidéo. Si je démarre normalement, le démarrage est interrompu à un moment donné et le système redémarre. (Mais la toute première fois, j’ai pu démarrer avec succès.) Je ne sais pas si le problème vient du pilote vidéo lors du démarrage "normal" ou autre chose.Comme je suis confronté au même problème, cela fonctionnera peut-être, c’est ce que je comptais faire:
Procurez-vous une version 64 bits du système d'exploitation, installez-la dans une partition. Une fois l'opération terminée, copiez les documents et autres éléments de l'installation 32 bits. Lorsque tout est copié en toute sécurité, vous pouvez formater le reste du lecteur et l'utiliser.
la source
Oui, la ligne d’architecture étrangère est incontestablement essentielle pour l’INSTALLATION DE TOUT paquetage multi-arch. Mais après cela, faites comme plusieurs autres utilisateurs ont mentionné:
Cela devrait presque le faire ...
la source
Ma recette pour Ubuntu 16.04 Xenial, testée sur une machine virtuelle Ubuntu 32 bits fraîchement installée avec système standard et serveur SSH mais sans interface graphique:
(sinon, il installerait thermald: amd64 et ne le redémarrerait pas avec un noyau 32 bits)
après le redémarrage avec le noyau 64 bits:
tapez 'Oui, faites ce que je dis!' quand on lui demande, ça va être en sécurité
dans la boucle ci-dessus, nous supprimons les fichiers .deb qui ont été installés avec succès et obtenons le statut 'ii' dans la liste dpkg.
nous devons répéter les
dpkg -i
essais, car cela ne réussit pas dès le premier essaià présent, avec le noyau 64 bits et l’espace utilisateur, les derniers paquets i386 peuvent être supprimés:
la liste que vous avez sauvegardée dans un
pkgs1
fichier peut être utilisée pour vos besoins ultérieurs.la source
Bonne question. J'ai eu une chasse autour et en dehors de la user story que vous citez, je ne trouve aucun détail sur la façon de procéder Toute la documentation indique que c'est uniquement pour l'exécution d'applications 32 bits sur un système d'exploitation déjà 64 bits.
Cependant, si vous êtes prêt à expérimenter, vous pouvez essayer ce qui suit (dérivé de mon lien à [1])
Je pense que vous devrez commencer avec un noyau amd64, car celui-ci 32 bits ne sera pas capable d’exécuter des fichiers binaires 64 bits. Cependant, celui 64 bits devrait exécuter des fichiers binaires 32 bits (si ia32-libs est installé?).
Si vous avez le noyau 64 bits installé et démarré, vous pouvez ensuite installer apt: amd64, puis suivez la user-story citée précédemment, ubuntu-minimal, ubuntu-desktop, etc.
Après qu'apt: amd64 soit installé, je pense que vous pouvez supprimer la ligne d’architecture étrangère puisque vous avez essentiellement basculé à ce stade.
Disclaimer: Je n'ai pas de système 32 bits à tester, donc ce ne sont que des conjectures. Bonne chance!
[1] https://wiki.ubuntu.com/OneiricOcelot/TechnicalOverview/Beta1#Improved_handling_of_32-bit_compatibility_on_amd64_systems
la source
La mise à niveau (mise à niveau vers une architecture différente) n'est pas encore prise en charge.
la source