飞牛系统盘迁移(大盘迁小盘)
本文将详细介绍如何将飞牛OS系统从大容量磁盘迁移到小容量磁盘,支持BIOS和UEFI两种引导模式。
概述

系统盘迁移是将操作系统从一个存储设备完整复制到另一个存储设备的过程。在飞牛OS中,由于某些工具(如DG)克隆后可能无法正常引导,本教程采用Linux原生命令进行迁移,确保系统的完整性和可启动性。
迁移特点
- 无需PE环境:直接在系统终端中操作
- 支持两种引导:兼容BIOS和UEFI引导模式
- 数据完整性:使用rsync确保文件完整复制
- 引导修复:自动重建引导程序
重要提醒
迁移过程涉及磁盘分区和系统文件操作,请务必备份重要数据。错误的操作可能导致系统无法启动或数据丢失。
系统要求
硬件要求
- 源磁盘:当前运行飞牛OS的系统盘
- 目标磁盘:用于迁移的新磁盘(容量可以小于源盘,但需大于已使用空间)
- 可用接口:足够的SATA或其他接口连接两块磁盘
软件要求
- 飞牛OS系统正常运行
- SSH访问权限
- 管理员权限
引导类型检测
在开始迁移之前,需要确认当前系统的引导类型,这将决定后续的操作流程。
检测方法
通过SSH终端执行以下命令:
lsblk判断标准
根据输出结果判断引导类型:
| 引导类型 | 特征 | 说明 |
|---|---|---|
| BIOS引导 | 系统盘第一分区没有挂载任何目录 | 传统BIOS引导模式 |
| UEFI引导 | 系统盘第一分区挂载在/boot/efi | 现代UEFI引导模式 |
识别要点
- sda2通常是系统根目录(后面有反斜杠
/标识) - UEFI系统会有单独的EFI分区挂载到
/boot/efi
方案一:BIOS引导系统迁移
适用环境
- 引导类型:BIOS引导
- 分区特点:不需要单独的EFI分区,克隆过程相对简单
- 示例:将sda迁移到sdb
迁移流程概述
BIOS引导系统的迁移包含以下主要步骤:
- 给目标磁盘进行分区
- 挂载新磁盘以便后续操作
- 使用rsync动态复制系统文件
- 修改fstab文件系统标识
- 重新生成GRUB引导文件
详细操作步骤
目标磁盘分区
磁盘标识确认
以下命令中的
sdb和sda需要根据实际情况修改为目标磁盘和源磁盘的设备名。进入SSH终端,创建分区:
# 进入fdisk分区工具 sudo fdisk /dev/sdb分区操作步骤:
- 输入
n创建新分区 - 输入
p选择主分区 - 连续按回车键使用默认设置
- 输入
w保存分区表并退出

- 输入
格式化目标分区
将新创建的分区格式化为ext4文件系统:
# 格式化为ext4文件系统 sudo mkfs.ext4 /dev/sdb1
挂载并复制系统文件
挂载目标分区并复制系统文件:
# 挂载新磁盘到/mnt目录 sudo mount /dev/sdb1 /mnt # 使用rsync复制系统文件(约需10分钟) sudo rsync -q -avxHAX --progress \ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/lost+found"} \ / /mnt/复制说明
- 根据系统大小,复制过程约需10分钟
- 期间控制台可能无响应,属于正常情况
- 指令执行完毕后不会有任何输出
修改文件系统标识
获取目标磁盘的UUID并更新fstab文件:
# 查看目标磁盘的UUID sudo blkid /dev/sdb1复制UUID等号后面的字符串,然后编辑fstab文件:
# 编辑fstab文件 sudo nano /mnt/etc/fstab
保存方法
按键盘
Ctrl+X,再输入y,然后按回车键保存。重建GRUB引导
绑定系统目录并进入chroot环境:
# 绑定必要的系统目录 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo mount --bind /run /mnt/run执行说明
全部命令可以一次性复制粘贴到终端执行,正常情况下不会有任何输出。
进入目标系统并重建引导:
# 进入chroot环境 sudo chroot /mnt # 安装GRUB引导程序 grub-install /dev/sdb # 生成GRUB配置文件 grub-mkconfig -o /boot/grub/grub.cfg
完成后输入
exit或按Ctrl+D退回原系统。取消挂载
清理挂载点:
# 递归卸载所有挂载点(约需1分钟) sudo umount -R /mnt完成标志
执行完毕后不会有任何输出,此时BIOS系统克隆已完成。
验证迁移结果
重启系统并进入BIOS,将引导顺序切换到目标磁盘,或在关机状态下移除原系统盘。

可以看到系统根目录已经成功迁移到新磁盘。
方案二:UEFI引导系统迁移
适用环境
- 引导类型:UEFI引导
- 分区特点:需要单独的EFI引导分区,步骤相对复杂
- 示例:将sda迁移到sdb
迁移流程概述
UEFI引导系统需要单独分区EFI引导盘,迁移过程包含以下步骤:
- 给目标磁盘进行分区(EFI分区+系统分区)
- 挂载新磁盘以便后续操作
- 复制EFI引导文件
- 复制系统文件
- 修改fstab文件系统标识
- 重新生成GRUB引导文件
设备标识
以下命令中的sdb和sda需要根据实际情况分别修改为目标磁盘和源磁盘的设备名。
详细操作步骤
目标磁盘分区
为UEFI系统创建EFI分区和系统分区:
# 进入fdisk分区工具 sudo fdisk /dev/sdb分区操作步骤:
创建EFI分区:
- 输入
n→p→ 回车 → 回车 →+94M→y
修改分区类型为EFI:
- 输入
t→ef
创建系统分区:
- 输入
n→p→ 回车 → 回车 → 回车 →w

- 输入
格式化分区
分别格式化EFI分区和系统分区:
# 格式化EFI分区为FAT32 sudo mkfs.fat -F32 /dev/sdb1 # 格式化根分区为ext4 sudo mkfs.ext4 /dev/sdb2
复制EFI引导文件
首先复制EFI分区的内容:
# 创建挂载点目录 sudo mkdir -p /mnt/old-efi /mnt/new-efi # 挂载EFI分区 sudo mount /dev/sda1 /mnt/old-efi sudo mount /dev/sdb1 /mnt/new-efi # 复制EFI文件 sudo rsync -av /mnt/old-efi/ /mnt/new-efi/ # 卸载分区 sudo umount /mnt/old-efi /mnt/new-efi
复制系统文件
复制系统根分区的内容:
# 创建挂载点并挂载根分区 sudo mkdir -p /mnt/sdb2 sudo mount /dev/sdb2 /mnt/sdb2 # 复制系统文件(排除临时目录) sudo rsync -aAXv -q \ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \ / /mnt/sdb2/复制说明
- 根据系统大小,复制过程约需10分钟
- 期间控制台可能无响应,属于正常情况
- 指令执行完毕后不会有任何输出
修改文件系统标识
获取两个分区的UUID并更新fstab:
# 查看两个分区的UUID sudo blkid /dev/sdb1 /dev/sdb2UUID说明
需要复制两个分区的UUID(等号后面的字符串)
编辑fstab文件:
# 编辑fstab文件 sudo nano /mnt/sdb2/etc/fstab
保存方法
按键盘
Ctrl+X,再输入y,然后按回车键保存。重建UEFI引导
挂载分区并绑定系统目录:
# 挂载根分区和EFI分区 sudo mount /dev/sdb2 /mnt/sdb2 sudo mount /dev/sdb1 /mnt/sdb2/boot/efi # 绑定必要的系统目录 sudo mount --bind /dev /mnt/sdb2/dev sudo mount --bind /dev/pts /mnt/sdb2/dev/pts sudo mount --bind /proc /mnt/sdb2/proc sudo mount --bind /sys /mnt/sdb2/sys sudo mount --bind /run /mnt/sdb2/run挂载报错
这里可能会有挂载报错的提示,可以忽略。
进入目标系统并重建UEFI引导:
# 进入chroot环境 sudo chroot /mnt/sdb2 # 安装UEFI引导程序 grub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sdb # 更新GRUB配置 update-grub完成后输入
exit或按Ctrl+D退回原系统。取消挂载
按顺序卸载所有挂载点:
# 按顺序卸载所有挂载点 sudo umount /mnt/sdb2/dev/pts sudo umount /mnt/sdb2/dev sudo umount /mnt/sdb2/proc sudo umount /mnt/sdb2/sys sudo umount /mnt/sdb2/run sudo umount /mnt/sdb2/boot/efi sudo umount /mnt/sdb2完成标志
到这里UEFI系统克隆已完成,可以重启进入BIOS将引导切换到目标磁盘,或在关机状态下移除原系统盘。
验证迁移结果
重启系统并进入UEFI设置,将引导顺序切换到目标磁盘。

可以看到系统根目录已经成功迁移到新磁盘。
故障排除
常见问题
系统无法启动
可能原因:
- fstab文件UUID配置错误
- GRUB引导程序安装失败
- 分区类型设置错误
解决方案:
- 检查fstab文件中的UUID是否正确
- 重新执行GRUB安装步骤
- 确认EFI分区类型为
ef
文件复制中断
可能原因:
- 磁盘空间不足
- 磁盘读写错误
- 权限不足
解决方案:
- 检查目标磁盘空间是否充足
- 检查磁盘健康状态
- 确认使用sudo权限执行命令
UEFI引导失败
可能原因:
- EFI分区未正确挂载
- EFI文件复制不完整
- GRUB UEFI模块缺失
解决方案:
- 重新挂载EFI分区到
/boot/efi - 重新复制EFI分区内容
- 重新安装GRUB UEFI引导程序
最佳实践
迁移前准备
- 完整备份:迁移前务必备份重要数据
- 磁盘检查:检查源磁盘和目标磁盘的健康状态
- 空间评估:确保目标磁盘有足够空间
- 引导确认:正确识别当前系统的引导类型
迁移后维护
- 功能测试:全面测试系统功能是否正常
- 性能监控:观察新磁盘的性能表现
- 备份更新:更新备份策略以适应新的存储配置
- 文档记录:记录迁移过程和配置变更
通过正确的迁移操作,您可以成功将飞牛OS系统迁移到新的存储设备!
