debian从32位i386,更换到64位amd64的步骤, 过程很容易损坏系统, 要实现对整个目录进行备份。
最好在一个空的分区, 建立一个root分区的备份, 然后chroot到备份目录,进行操作, 成功后, 选择从新的root分区启动。
debian支持i386/amd64 multiarch 共存, 先添加amd64支持,然后用amd64的包,替换掉i386的包,在取消i386架构。
0. 用debootstrap和chroot建立一个debian10的amd64基本系统, 用于下载amd64的deb包,sources.list要跟原系统保持一致
1.增加amd64架构支持
dpkg --add-architecture amd64
2.安装基本包
apt update
apt install libc6:amd64 libncurses5:amd64 libstdc++6:amd64
apt install linux-image-5.10-amd64:amd64
dpkg --print-foreign-architectures
3.重启到amd64内核
5.列出所有i386的软件
dpkg --get-selections |grep :i386 |grep -v deinstall >/home/i386.list
6.目前amd64不是主架构, 所有有些包不能直接安装, 可以在同版本的debian10(sources.list也要相同)系统, 下载对应的amd64的deb版本
chroot .....
apt update
cd /home/deb
cat i386.list |awk -F: '{print "apt-get download "$1":amd64"}' |bash
exit
cd /chroot/home/deb
7.在amd64的deb目录下, 先安装基础系统deb包:
dpkg -i --force-all gcc-*-base*.deb libgcc*.deb libc*.deb libselinux*.deb libbz2*.deb
8.再安装一次所有的deb包
dpkg -i *.deb
9.清理i386
apt remove $(cat /home/i386.list |awk -F: '{printf " "$1":i386"}')
apt --fix-broken install
apt autoremove
10. 反复执行5-9, 然后确认i386的数量降到0
11. dpkg --remove-architecture i386