提醒:本文最后更新于 424 天前,文中所描述的信息可能已发生改变,请谨慎使用!
你似乎正在查看一篇很久远的文章。
为了你这样的访客,我特地保留了我的历史博文。不要笑话过去的我,用温柔的目光看下去吧。

去年把小站服务器系统换成了ArchLinux,一直正常运行着,我时不时ssh上去 sudo pacman -Syu 一下,后来准备更换小站服务器的服务商,但因系统配置太过麻烦遂搁浅。前几天给手机刷机操作失误,清空了我所有的数据,不过幸好我还有备份的习惯 :机智: :机智:

在恢复数据时看到我的移动备份硬盘,想着能不能用 rsync 直接把所有数据迁移到新的机器,尝试了一下,还真能实现,步骤也很简单:

两台机器都登录上,装上 rsync,新机器的操作系统不限

新机器准备

mkdir /mnt/new_server/
mount /dev/vda2 /mnt/new_server/
mount /dev/vda1 /mnt/new_server/boot/

/dev/vda 可能在不同主机商那不同,自行 df -h 查看

老机器迁移

rsync -aHAXSz --delete --numeric-ids -e "ssh" --rsync-path="rsync" --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/lost+found","/etc/fstab","/etc/udev/rules.d/*","/etc/network/*","/etc/modprobe.d/*"} / [email protected]新机器i:/mnt/new_server/

使用 -aHAXS 基本包含了所有的文件信息,-z 会在传输数据时压缩,--numeric-ids 不将用户和组id匹配名称
不同系统排除的目录不一样,在--exclude后面自行修改排除目录,也可以尝试 --one-file-system 选项(我没有试过

新机器配置引导和网络

mount --bind /proc /mnt/new_server/proc
mount --bind /sys /mnt/new_server/sys
mount --bind /dev /mnt/new_server/dev
mount --bind /run /mnt/new_server/run
chroot /mnt/new_server
grub-install --target=i386-pc --recheck --force /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg
vim /etc/systemd/network/default.network # 修改为新主机的ip
systemctl restart systemd-networkd

之后重启即可



恭喜,你成功屏蔽了广告 *这是一则由 Google AdSense 自动推荐的广告,不代表本站立场