The desktop where I do most of my stuff is a Debian testing 32bit. Recently Google Chrome team declared the end of support of 32bit Linux distributions, and I decided to take the occasion to migrate towards a 64bit Debian.
I read some guides around, some old, some with big warnings and disclaimers, some interesting. Ultimately I decided to apply a strategy involving an intermediate step where I could dual boot between 32 and 64 bits, and this would allow me to return easily to the old system. When I first installed Debian 32bit, I separated my home, root and boot partitions, and this helped much in my migration.
The strategy has been:
- Reduce the size of some existing partitions. In my case I reduced my
home, to make space for the new 64bit partitions.
- Add new partitions for
boot64. Note that it doesn’t seem like a good idea to share boot partition between two distributions, otherwise one distro might decide to delete the kernels of the other ones. While Grub is able to detect Linux kernels and other operating systems in partitions other than boot.
- Install (from CD or USB) Debian 64-bit on
boot64, keeping shared (and without formatting!) the home and swap directories. I used an “Alpha” snapshot of the Debian testing (Stretch) network installer (netinst).
- Replicate the setup of installed packages and configurations. This has been an easy but iterative process of installing packages that I installed on previous
- Remove old 32bit
boot(actually, I haven’t yet done this one)
Some notes about what happened:
- Before installation, I ran “
dpkg --get-selections >selections.txt” to get a list of all packages, but since I use aptitude, I ran “
aptitude search '~i !~M' >pkgs.txt” to search for packages that I did install and were not installed automatically as dependencies.
- During CD installation, it complained about
ifupdowndependencies not met. I found this post, and ran “apt-get install -f” from recovery shell to solve it.
- I installed Grub into the Master Boot Record, and rebooted. The first time, it complained about home partition not clean, and I had to enter recovery console and run
- I could log into my desktop, but it was very slow to start. I installed some XFCE packages and other software that I ran in autostart, and XFCE was then starting smoothly.
- One problem that I had in my old setup and it still appeared was a failure in checking some partitions at boot: it would timeout after a minute and the partitions were not checked. Turns out I had to run “
systemctl mask systemd-fsckd.socket” and “
systemctl mask systemd-fsckd.service” that were interrupting the operation.
- I noticed that I had no
xfce4-mixeranymore, and I substituted it with a pulseaudio plugin instead.
- dropbox, truecrypt and google chrome were installed by downloading from their respective websites.
- I had some programs on
wine, but it turns out I have to install the 32bit version to make them run. So I added the 32bit architecture with “
dpkg --add-architecture i386” and installed wine32-development package.
I am happy with the end result, I am typing right now in the 64bit version and I don’t notice the difference. The user experience seems more fluid, but it may very well be just an impression. I hope this strategy can be helpful for reference.