1. 为什么需要系统迁移?不仅仅是换硬盘那么简单
最近帮朋友折腾一台老电脑,他的旧硬盘时不时发出“咔咔”的异响,显然是快要“寿终正寝”了。他问我:“能不能直接把旧硬盘里的Linux系统‘搬’到新买的固态硬盘上?我装了好多软件,配置了好久的环境,实在不想从头再来一遍。” 这其实道出了很多Linux用户的痛点:系统用久了,里面装满了开发环境、配置文件、个人数据,还有那些记不清怎么装上去的依赖库。直接重装系统,意味着数小时甚至数天的重复劳动。
所以,系统迁移这个事,绝不仅仅是物理上换一块硬盘。它的核心目标是 “无缝切换”——让你在新硬盘上启动后,感觉就像什么都没发生过一样。桌面壁纸、浏览器书签、终端里的别名配置、甚至没写完的代码文件,都原封不动地出现在它们该在的位置。这对于开发者、运维人员,或者任何已经把Linux当作主力生产环境的朋友来说,价值巨大。
我经历过几次失败的迁移,比如重启后直接进了grub rescue命令行,或者系统起来了但网络挂了,又或者用户权限乱套了。这些坑让我明白,迁移成功的关键在于处理好两个核心:文件系统的完整复制和引导配置的精准适配。前者保证你的“家当”一个不少,后者保证新硬盘能正确“认路”并启动。接下来,我就把自己踩过坑、验证过的方法,一步步分享给你,从准备工具到最终收尾,手把手带你完成这次“大搬家”。
2. 迁移前的精密准备:工具盘与硬盘“认亲”
俗话说,磨刀不误砍柴工。系统迁移这活儿,前期准备做得好,能避免后面99%的抓狂时刻。你需要准备两样东西:一个Live USB启动盘和一块已经连接到电脑的新硬盘。
Live USB启动盘是你的“手术室”。为什么不能直接在旧系统里操作?因为你要复制的是整个系统盘,包括正在运行的核心文件。这就像没法一边给汽车换发动机一边还开着它跑。Live USB是一个完全独立、运行在内存中的临时Linux环境,它让你能“置身事外”地对新旧两块硬盘进行读写操作。制作方法很简单,用Ventoy、Rufus或者Ubuntu官方工具,把你熟悉的发行版ISO镜像(比如Ubuntu 22.04 LTS)写进U盘就行。我习惯用Ventoy,因为它可以在一个U盘里放多个ISO,非常灵活。
接下来是硬件连接。把新硬盘装进电脑(台式机直接接SATA线和电源,笔记本可能需要硬盘盒)。开机,进入BIOS/UEFI设置,确保启动顺序是U盘优先。然后从U盘启动,选择“试用Ubuntu”(Try Ubuntu)而不安装,这样我们就进入了干净的Live环境。
进入桌面后,第一件事就是打开终端,获取root权限,然后给新旧硬盘“验明正身”:
sudo -i
# 或者先 sudo su, 看个人习惯
fdisk -l
或者用图形化工具更直观:
gnome-disks
fdisk -l 命令会列出所有存储设备。你需要仔细分辨哪块是旧硬盘(通常容量小一点,分区复杂),哪块是新硬盘(可能还没分区,或者只有一个大分区)。关键看设备名,比如 /dev/sda、/dev/nvme0n1。务必记下来,后面每一步都会用到。我一般会结合容量、分区表类型(MBR/GPT)和现有分区情况来综合判断。这一步要是搞错了,后果可能是灾难性的——把新系统写到旧盘上,数据就全没了。
确认无误后,我们在根目录下创建两个工作目录,作为新旧硬盘的“接入点”:
mkdir /backup
mkdir /restore
假设我的旧硬盘系统根分区在 /dev/sda2,新硬盘准备用的分区是 /dev/nvme0n1p1,那么挂载命令就是:
mount /dev/sda2 /back


8827

被折叠的 条评论
为什么被折叠?



