目录:网上冲浪指南

使用 rsync 复制 Linux 工作环境

2019/06/29

因为上下班背着个 MBP 15 真的很沉,而且恰好家里有一台闲置的笔记本电脑,所以就想着把工作电脑中的数据复制到闲置的笔记本里面,这样在公司就可以用 MBP 15,回家后就用自己的笔记本,工作内容则通过 git 跟 OneDrive 同步。因为平常有定期使用 rsync 备份工作电脑的习惯,这次迁移我也准备使用 rsync 来完成。

日常使用的全盘备份脚本
#!/usr/bin/fish
function full_system_backup
  if test -d "$argv[1]"; and test -n "$argv[1]"
    rsync -aAXH --inplace --info=progress2 --delete --exclude={"/swapfile","/var/log/journal/*","/dev/*","/proc/*", "/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*/.nuget/*", "/home/*/.cache/*", "/home/*/OneDrive/*", "/var/cache/pacman/pkg/*"} / $argv
  else
    echo "Invalid backup destination"
  end
end

full_system_backup $argv

LiveCD 规划分区

在开始迁移之前,需要制作一个 Manjaro Linux LiveCD,用来执行 rsync 命令以及救砖。镜像随便去 Manjaro 官网下载就好了,可以选体积小一些的 xfce,如果对命令行硬盘分区工具比较熟悉的话,也可以使用 Architecture 版本的镜像。

其实规划分区跟安装全新的系统差不了多少,我就自己的习惯就是一个 EFI 分区加上一个 root 分区。

rsync 恢复系统

进入 LiveCD 后,插上备份硬盘,然后使用 rsync 将备份还原到目标硬盘的 root 分区。还原好文件后要做的第一件事就是重建 grub ,这一步可以参考 Manjaro Wiki:Restore the GRUB Bootloader

因为我们是在一台全新的电脑上部署的一个已经被使用过的 Linux 系统,所以还需要修改一下 /etc/fstab 文件中挂载 EFI 分区的配置,避免开机挂载分区出错。

查看 EFI 分区 UUID
lsblk -f

除了硬盘之外,其他的硬件也发生了变化,比如显卡。原先的 MBP 15 是用的 AMD 显卡,而这台闲置笔记本用的是 Nvidia 显卡,所以当初安装显卡驱动的那一套步骤就需要倒着重来一遍。涉及到的地方有这些:

  • /etc/mkinitcpio.conf

    去掉 AMD 显卡驱动的内核参数

  • /etc/modprobe.d/20-amdgpu.conf

    删除 amdgpu 显卡驱动的相关设置

  • /etc/modprobe.d/20-radeon.conf

    删除 amdgpu 显卡驱动的相关设置

  • /etc/X11/xorg.conf

    使用 nvidia-xconfig 重新生成 X 的配置文件