Ubuntu系统迁移

迁移目的预计问题适用条件准备工具开始迁移进入Live CD新硬盘分区DD系统迁移修复GRUB打开新硬盘系统进入emergency mode进入initramfs

引用

迁移目的

由于某些原因迫不得已得换一台新电脑,但是好不容易在旧电脑中搭建好的Ubuntu工作环境,十分复杂踩过很多坑,不想再重装环境了,所以试图将旧电脑中系统完整地搬移到新电脑中

预计问题

问:电脑配置不同会不会导致系统迁移失败? 答:由于linux系统中万物皆文件,这并不会有太大地影响,实践证明确实也是可行的

适用条件

Ubuntu18.04.6 LTS 从就硬盘迁移至新硬盘 从旧主机迁移至新主机 都是异曲同工的,但只尝试过本地系统,没试过服务器系统

准备工具

1.在FAT格式化的16G以上U盘(刻录一个UBUNTU ISO镜像),作为2.Live CD启动盘 3.刻录工具有很多,我用的使ISO to USB 4.适用Live CD时需要给系统联网,所以需要有网络 5.分区软件GParted(推荐)或者Disks 6.如果只是硬盘之间的系统迁移,那仅需一个U盘即可;如果是主机AB之间的系统迁移,最好需要多准备一个足够大的能装下你准备迁移的系统的移动硬盘C,然后A→C→B。 7.为了避免一下操作失败,请做好数据备份

开始迁移

进入Live CD

在旧主机中插入刻录好UBUNTU镜像的U盘,通过U盘启动进入GNU GRUB,选择Try Ubuntu without installing, 之后的操作都将在该环境下进行,因为Live CD相当于一个中介,将新旧两个硬盘或系统视为挂在的硬盘或者文件。

新硬盘分区

打开自带的Disks或者安装GParted,清空新硬盘中的所有分区,并且按照旧硬盘的分区对新硬盘进行分区,主要是系统所在分区,此外有些系统有BIOS分区或者EFI分区,也可按旧硬盘分区一一对应。 需要注意的是:新硬盘的所有分区的大小必须大于或等于旧硬盘上对应分区的大小 旧硬盘: 新硬盘: 在这里可能看到我的分区不是一一对应的,甚至少了BIOS分区,但是没关系。因为该分区中原本不包含任何文件,我猜想不需要该分区也行,而BIOS文件在EFI分区中,且BIOS需要放至磁盘前端

DD系统迁移

新旧硬盘需要在非挂载状态下完成迁移,不然会出错。

sudo dd if=/dev/sdb1 of=/dev/nvme0n1p2 #迁移主系统分区中的内容

如上图,即将UBUNTU迁移至HOME,迁移完成后HOME自动更名为UBUNTU,且UUID也与原旧分区一致。 由于迁移时间过长,可以另开一个终端输入

sudo watch -n 5 killall -USR1 dd #可在原终端中看到迁移进度

迁移完成后,挂载上新旧的硬盘,打开观察文件对比,如果硬盘能正常打开说明迁移成功,如果硬盘不能正常挂载并打开,说明迁移失败,那就是某步骤做的不对了。

修复GRUB

系统迁移完成,需要修复GRUB才能正常开机。通常引导文件放在BOOT分区或者文件夹下,在本系统中可以看到BOOT文件夹下有文件,所以暂时不设独立的BOIS-BOOT分区。 1.卸掉老磁盘 2.接上网线或者连接wifi 3.安装boot-repair

sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-get install -y boot-repair

修复引导前,也需要取消新硬盘的挂载,打开boot-repair后会自动挂载或取消 4.打开boot-repair

sudo boot-repair

如果分区缺失就不会出现推荐修复选项,或者会提示你需要创建某个分区却才能继续 5.选择Recommended repair 6.出现“Upload the report to a pastebin”,选择“Yes” 7.出现“Boot successfully repaired” 这次算很顺利,如果中间还有其他步骤,请按照boot-repair给出的提示逐步完成即可。 至此GRUB修复完成

打开新硬盘系统

进入GRUB选择ubuntu,如果能正常开机,即成功 如果否,以下列出两种可能

进入emergency mode

它需要你提供root密码进入命令行系统,这可能是你原来旧系统里root的密码,也可能是默认密码,也可能需要先修改root密码再重新回到这里。 GRUB下修改root密码 那么进入了这里,可能可以看到正常终端下的系统,但是需要找到引导问题如何解决 GRUB→Advanced options for Ubuntu→recovery mode→fsck(检查文件系统) 就会发现你在旧硬盘中的系统会挂载其他硬盘扩重内存,但dd的时候并没有复制这些,因此它会找不到需要挂载的硬盘 这时在紧急模式下输入密码后

sudo vim /etc/fstab #查看磁盘挂载的信息文件

把找不到的挂载磁盘信息暂时注释掉,可以等正常打开系统桌面后,把装有对应数据的硬盘插上,重新再挂载一次即可。 文件修改完成保存,重启即可正常启动。

进入initramfs

这里可能是因为主机型号是DELL的原因,据说在其他电脑上不会这样 解决方法:Gave up waiting for root device on Ubuntu 1.重启。 2.按F2并转到 BIOS 设置。 3.内存读取方式 → SATA 操作:将 RAID 更改为 AHCI

如此,系统迁移基本完成,该重新挂载什么就挂载什么吧,一些都会完好如初的!!!

引用

Linux 系统迁移指北(2022版) 迁移linux系统到新硬盘

精彩内容

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。