archlinux迁移到新硬盘

1.前言

数据无价,谨慎操作!

老早之前就想把这个以前的破硬盘换了,空间小不说,速度也让人吓得慌,生怕哪天一个卡住,数据全火葬场了.如今过年有了压岁钱赶紧去买上新的.

uefi,新旧盘都是固态,原先图方便除了efi分区和一个swap分区,剩下的整个系统都在一个分区:

1
2
3
4
/dev/sda
|___ /dev/sda1 efi (boot)
|___ /dev/sda2 swap
|___ /dev/sda3 linux

swap无所谓了,反正以后直接用文件形式的就好,主要任务就是迁移完成以后把sda3扩一下容.

2.操作

准备

首先准备好一个能用的arch安装盘(就是你装系统时候那个u盘),找不到了在做一个就行.

把新旧两块盘都接到电脑上

启动到live环境,不用操心联网啥的.

同步数据

首先fdisk 看一下新盘跟旧盘的设备

1
fdisk -l

比如我的旧盘是/dev/sda,新盘是/dev/sdb

先直接用dd把数据直接原封不动弄过去:

1
dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror,sync status=progress

重建引导

这个类比当初安装时候,直接挑几步关键的重来一遍就行了

把新硬盘上的各种分区都挂载好,然后chroot过去

因为是直接dd整个硬盘,所以uuid啥的都没变化,fstab也不用管,不过你要是不放心也可以注释掉原来的再生成一次.

1
2
3
4
5
6
#注意挂载的都是新硬盘
mount /dev/sdb3 /mnt
mount /dev/sdb1 /mnt/boot
swapon /dev/sdb2

arch-chroot /mnt

重新生成initramfs:

1
mkinitcpio -P

重新安装grub

1
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

退出chroot环境,umount掉新盘,关机拔掉旧硬盘再重启一下看看能不能进系统

如果可以进没毛病的话再重启到安装盘

扩容分区

现在就要扩容了:

1
2
fdisk -l #这个时候新硬盘已经是sda了
cfdisk /dev/sda #cfdisk直接resize还是很简单的

不过resize之后还不能直接重启:

1
2
partprobe
e2fsck -f -y /dev/sda3

最后

1
resize2fs /dev/sda3

现在退出live环境,重启一下就能看到分区扩容成功了,而且数据也都原封不动.


archlinux迁移到新硬盘
https://www.hakurei.org.cn/2023/01/29/archlinux-move/
作者
zjkimin
发布于
2023年1月29日
更新于
2023年1月29日
许可协议