2023年11月24日发(作者:)

把整个Linux系统迁移到另⼀个硬盘

买了个固态,不想重装,所以⿎捣着直接把旧硬盘数据迁移到新硬盘中。遂有此⽂。

原来机械硬盘是msdos分区表,新固态硬盘是gpt分区表,数据⼤⼩在100GB以内,所以使⽤ dd 命令迁移。

我系统都是只装在⼀个分区中,所以直接在 root 模式下执⾏迁移:

# dd if=/dev/sda1 of=/dev/sdb1

⼤概⼀个⼩时就迁移完成了。

这⾥要注意的是拷贝的源和⽬标分别是 /dev/sda1 和 /dev/sdb1 这两个分区,⽽不是 /dev/sda 和 /dev/sdb 这两个硬盘名称。

最后更新⼀下硬盘信息(不然显⽰的⼤⼩信息等还是旧硬盘的信息):

# umount /dev/sdb1 // 记得在操作之前先卸载所有挂载

# 设定默认启动项,推荐使⽤数字

GRUB_DEFAULT=0

# 注释掉下⾯这⾏将会显⽰引导菜单

#GRUB_HIDDEN_TIMEOUT=0

# ⿊屏,并且不显⽰GRUB_HIDDEN_TIMEOUT过程中的倒计时

GRUB_HIDDEN_TIMEOUT_QUIET=true

# 设定超时时间,默认为10

# 设定为-1取消倒计时

GRUB_TIMEOUT=10

# 获得发⾏版名称(⽐如Ubuntu, Debian

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

# 将会导⼊到每个启动项(包括recovery mode启动项)'linux'命令⾏

GRUB_CMDLINE_LINUX=""

# 同上,但是只会添加到 normal mode 的启动项

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

# 取消注释以允许图形终端(只适合grub-pc

#GRUB_TERMINAL=console

# 分辨率设定,否则采⽤默认值

#GRUB_GFXMODE=640x480

# 取消注释以阻⽌GRUB将传递参数 "root=UUID=xxx" 传递给 Linux

#GRUB_DISABLE_LINUX_UUID=true

# 取消启动菜单中的“Recovery Mode”选项

#GRUB_DISABLE_LINUX_RECOVERY="true"

# GRUB菜单出现时发出鸣⾳提醒

#GRUB_INIT_TUNE="480 440 1"

最后更新⼀下: