平台系统迁移指南

本文主要讲解更换Windows和Linux系统盘的方法。

Windows 系统迁移

🛠️ 准备工作

  • 源系统盘:需要迁移的旧硬盘
  • 目标磁盘:新硬盘(容量 ≥ 源盘已用空间)
  • PE启动U盘:需集成DiskGenius工具(推荐微PE工具箱)

📝 详细操作步骤

  1. 制作启动盘

  2. 进入PE环境

    • 插入U盘 → 开机时反复按F12/Del/F2(不同主板按键不同)
    • 在BIOS中设置U盘为第一启动项 → 进入PE桌面
  3. 执行系统迁移

    • 打开DiskGenius软件
    • 顶部菜单选择 工具 → 系统迁移
    • 按向导操作:
      1. 选择源磁盘(原系统盘)
      2. 选择目标磁盘(新硬盘)
      3. 调整目标分区大小(默认自动填充)
  4. 迁移后操作

    • 重启进入BIOS → 设置新硬盘为第一启动项
    • 进入系统后运行 chkdsk C: /f 检查磁盘完整性

⚠️ 关键注意事项:

  1. 目标磁盘必须为GPT格式(如原系统为UEFI启动)
  2. 迁移前备份重要数据(目标磁盘将被覆盖)
  3. 迁移完成后拔出旧硬盘测试启动

Linux 系统迁移

🧰 准备工作

  • Live USB(推荐和迁移系统相同的系统镜像)
  • 新硬盘(建议容量 ≥ 源盘已用空间)

🐧 操作流程

1. 进入Live环境

1
lsblk  # 确认磁盘标识(假设原盘为sdb,新盘为sda)

2. 分区操作

1
cfdisk /dev/sda  # 创建新分区
  • 分区方案建议:
    分区 类型 建议大小
    /boot EFI 512M
    / f2fs 剩余空间

3. 格式化分区

1
2
mkfs.fat -F32 /dev/sda1  # 格式化EFI分区
mkfs.f2fs -f /dev/sda2 # f2fs格式化根分区

4. 挂载文件系统

1
2
3
4
5
6
# 挂载新分区(假设新系统在sda2,新系统的EFI分区在sda1)
mount /dev/sda2 /mnt
mkdir -p /mnt/boot && mount /dev/sda1 /mnt/boot

# 挂载原分区(假设原系统在sdb2,原系统的根分区在sdb1)
mkdir /old_root && mount /dev/sdb2 /old_root

5. 数据迁移

1
rsync -avhP --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*"} /old_root/ /mnt/

6. 系统配置更新

1
2
3
4
5
# 生成新fstab
genfstab -U /mnt >> /mnt/etc/fstab

# Chroot环境配置
arch-chroot /mnt

7. 引导修复

1
2
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ArchLinux
grub-mkconfig -o /boot/grub/grub.cfg

🔍 验证检查

  1. 确认/etc/fstab中UUID与blkid输出一致
  2. 检查EFI分区是否包含引导文件
  3. 测试从新硬盘启动

Linux Home目录迁移方法

🏠 迁移目的

将用户的home目录迁移到新硬盘,可以有效扩展存储空间并提高系统性能。

📋 详细步骤

1. 查看硬盘UUID

1
sudo blkid

记录新硬盘的UUID,后续配置会用到

2. 开机自动挂载硬盘

编辑fstab文件:

1
sudo vim /etc/fstab

在文件末尾添加:

1
UUID=<你的硬盘UUID> /media <你的硬盘格式,例如ext4> defaults 0 0

3. 临时挂载硬盘

如果不想立即重启,可以先手动挂载:

1
sudo mount /dev/sdb1 /media

4. 创建软链接

将新硬盘上的用户目录链接到home目录:

1
sudo ln -s /media/abelxiaoxing /home/abelxiaoxing

5. 创建用户并指定用户目录

1
sudo useradd -d /home/abelxiaoxing abelxiaoxing

6. 修改目录所属权

确保用户对自己的目录有完全控制权:

1
sudo chown -R abelxiaoxing:abelxiaoxing /media/abelxiaoxing

⚠️ 注意事项

  • 迁移前备份重要数据
  • 确保新硬盘有足够空间
  • 迁移后测试用户登录和文件访问权限

通用注意事项

  1. 数据备份:建议使用dd命令创建完整磁盘镜像

    1
    dd if=/dev/sdX of=/path/to/backup.img bs=4M status=progress
  2. 迁移工具替代方案

    • Clonezilla(跨平台克隆工具)
    • Timeshift(Linux系统快照工具)
  3. 故障排查

    • 引导失败:尝试boot-repair工具
    • 文件系统错误:使用fsck进行检查修复

历史数据(Linux,已废弃)

  1. 准备工作:
    • 原系统硬盘
    • 新系统硬盘
    • 带有Live USB的Un盘
  2. bios设置启动U盘,进入U盘Live USB的linux系统
  3. 输入lsblk命令查看磁盘信息,找到原系统的磁盘和新系统的磁盘,例如/dev/sdb1和/dev/sdb2分别为原系统的EFI分区和根分区,/dev/sda为新系统磁盘(此处为举例,具体根据lsblk命令输出进行修改)
  4. 输入cfdisk命令,对新磁盘进行分区,创建efi分区和根分区,efi设置分区类型为fat32,根分区类型须和原来系统一致,例如原系统为ext4,则新系统根分区也为ext4
    格式化EFI分区
    1
    2
    3
    4
    5
        mkfs.fat -F32 /dev/sda1
    ```
    格式化根分区
    ```bash
    mkfs.ext4 /dev/sda2
  5. 挂载分区
    • 挂载旧磁盘
      1
      2
      3
      4
      mkdir /sdb1
      mount /dev/sdb1 /sdb1
      mkdir /sdb2
      mount /dev/sdb2 /sdb2
    • 挂载新磁盘
      1
      2
      3
      mount /dev/sda2 /mnt
      mkdir /mnt/boot
      mount /dev/sda1 /mnt/boot
  6. 复制原系统文件到新系统
    • 复制根分区数据
      1
      rsync -aHAXxSP --exclude=/boot /sdb2/ /mnt/
    • 复制EFI分区数据
      1
      rsync -aHAXxSP /sdb2/ /mnt/boot/
  7. 更新fstab
    • 生成新的UUID
      1
      blkid
    • 修改/etc/fstab文件,将原系统的UUID和新系统的UUID进行替换
  8. 配置启动加载器
    1
    2
    3
    4
    mount --bind /dev /mnt/dev
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
    cp /etc/resolv.conf /mnt/etc/resolv.conf
  9. 切换到新根目录
    1
    arch-chroot /mnt
  10. 安装配置grub
    1
    2
    3
    pacman -S grub efibootmgr
    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ArchLinux
    grub-mkconfig -o /boot/grub/grub.cfg
  11. 重启系统,bios设置从新硬盘启动,进入新系统