[2022.10.30] Linux系统硬盘迁移方案

前段时间200在某鱼淘了一台小主机,银行淘汰下来的,处理器是j1900五脏俱全,到手就直接装了Ubuntu server系统跑docker当nas用。美中不足的是装完系统之后可用的存储空间只有50多G,而且这机器仅有一个硬盘插槽。基于长远考虑打算换个500G固态。环境懒得再重新搭一遍了,直接系统迁移。

准备

一个Ubuntu desktop的安装U盘,注意是Ubuntu desktop而不是Ubuntu server。
一个备用U盘1
一个硬盘盒。
可以和Internet直接连通的网络环境

实操

主要分3步:
1.连接设备
2.进入try ubuntu进行分区,使用dd迁移数据
3.安装boot-repair补充引导分区

1

把旧硬盘从机器上拆下来,装在硬盘盒上连接机器的USB,新硬盘装在机器硬盘插槽里2,插上Ubuntu desktop的安装U盘。把机器连上显示屏。

2

开机,进入BIOS选择从U盘启动,选择try Ubuntu,而不是安装ubuntu.语言可以调成中文。
进入Ubuntu之后打开终端,输入sudo -i切换root权限再输入gparted打开图形化分区界面,给新硬盘分两个区,分区格式要和旧硬盘相同,我分的一个是fat32的引导分区,100Mb应该都绰绰有余了3。其余的全给系统盘(数据盘),ext4格式的。另外要在引导分区右键标注为boot,efi,除此之外分区名称什么的都不需要管,点击对勾执行操作。
使用dd命令迁移数据,把旧硬盘的系统盘(数据盘)分区的数据迁移到新硬盘系统盘(数据盘)分区。如果你的旧硬盘数据盘分区是/dev/sda2,新硬盘数据盘分区是/dev/sdb2,那么你的dd命令应该是

dd if=/dev/sda2 of=/dev/sdb2

if=参考的分区,of=写入的分区,这个一定不能搞反,否则旧硬盘中的数据会被抹去。
这个命令不会显示进度,我们再打开一个终端窗口,输入下面这段指令让它显示进度:

watch -n 1 pkill -USR1 -x dd

3

之后就是安装boot-repair进行修复了。首先由于网络环境需要换成中科大的源,不然无法安装boot-repair。在另一台电脑上创建一个txt文本文件,把下面内容复制进去,

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

保存为sources.list 拷贝到备用U盘,插到机器上,在root权限下用cp命令拷贝覆盖/etc/apt/sources.list 换源完成。
执行下面几步安装boot-repair

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair

安装完成之后,卸载旧硬盘和备用U盘,输入boot-repair,点recommend选项4进行修复,修复完成之后关机。进bios选择从新硬盘启动,进入系统发现欢迎文字里面显示的还是旧硬盘的容量,这时候用root执行命令resize2fs /dev/sdb1
更新一下硬盘容量即可。
到此,系统迁移结束5,除了容量扩大了之外,其他的丝毫没变,无缝切换。

注释


  1. 用于拷贝源文件sources.list,U盘文件系统得是linux能读取的FAT32等格式。 ↩︎

  2. 我第一次,把新硬盘放在外面用硬盘盒连接,执行dd,结果拷贝报了点错误,后面修复的时候也没有recommend选项。第二次把新硬盘装在机箱里,旧硬盘放在外面,拷贝速度是第一次的两倍,boot-repair里recommend选项也出来了。 ↩︎

  3. 原本旧硬盘引导分区总共是1G,但使用才10Mb,所以我改成512Mb了。关于它容量改小有什么影响我也不清楚,各位自行斟酌。 ↩︎

  4. 如果没有recommend选项说明你dd执行中出了错误,参考注脚2 ↩︎

  5. 本文如有不对之处请指教,有任何问题均可在评论区咨询 ↩︎

你可能感兴趣的:(问题解决,linux,ubuntu,服务器,运维,存储)