Мой рецепт для Ubuntu 16.04 Xenial, протестированный на недавно установленной 32-разрядной виртуальной машине Ubuntu со стандартным системным и SSH-сервером, но без GUI:
sudo -s
dpkg --get-selections > pkg1
dpkg --add-architecture amd64
apt update
apt install linux-image-generic:amd64 thermald
(иначе он установит heatd: amd64 и не будет перезагрузить его под 32-разрядным ядром)
reboot
после перезагрузки с 64-битным ядром:
sudo -s
unset LANG
apt install apt:amd64 apt-utils:amd64
type «Да, делайте, как я говорю!» когда его спросят, он будет безопасным
mkdir /tmp/upgrade
cd /tmp/upgrade
pkgs() { dpkg -l | awk '$4=="'$1'"{print $2}' | awk -F: '{print $1}' | sort -u
}
apt download $(comm -23 <(pkgs i386) <(pkgs amd64))
while ls *amd64*deb
do dpkg -i *amd64*deb
dpkg -l | awk '$1=="ii" && $4=="amd64" {print $2}' | awk -F: '{print $1}' |
while read a
do [ -f ${a}_*amd64*deb ] && rm ${a}_*amd64*deb
done
done
в цикле выше, мы удалим файлы .deb, которые были успешно установлены и получили статус «ii» в списке dpkg.
нам нужно повторить пробеги dpkg -i, так как это не удается с самой первой попытки
reboot
теперь, как с 64-битным ядром, так и с пользовательским пространством, оставшиеся пакеты i386 можно удалить:
dpkg --purge $(dpkg -l | awk '$4=="i386"{print $2}')
список, который вы сохранили в файле pkgs1, который вы можете использовать для любых ваших дальнейших потребностей.