- 首页 >
- 问答 >
-
智能运维 >
- Debian From Scratch如何迁移
Debian From Scratch如何迁移
小樊
37
2025-12-09 02:32:00
Debian From Scratch 迁移指南
一、先明确迁移目标与策略
- 同架构原地升级:保留现有环境,仅把 DFS 系统“搬家”到新磁盘或新主机,保持现有编译配置与自编译软件。
- 跨架构或跨版本重建:当目标硬件架构不同或需要同步到新版本时,采用“重建+迁移数据”的方式更稳妥。
- 重要认知:DFS 是“从源码构建”的自定义系统,没有 apt 式的增量更新机制;要获取新功能或安全修复,本质是重新构建系统或按需单独编译更新。
二、同架构原地迁移步骤(到新硬盘或新主机)
- 准备与挂载
- 在新硬盘上分区并格式化(如 ext4),挂载到如 /mnt/newroot;如跨主机,可用 LiveCD/救援盘启动并挂载新旧根分区。
- 迁移系统文件
- 推荐整包迁移以减少遗漏与权限/属性偏差:
- rsync:sudo rsync -aAX --info=progress2 / /mnt/newroot
- 或 tar:cd / && sudo tar --one-file-system -cpf - . | (cd /mnt/newroot && sudo tar -xpf -)
- 处理引导与分区标识
- 获取新分区 UUID:blkid
- 更新 /mnt/newroot/etc/fstab:将所有旧 UUID 替换为新分区的 UUID(含根分区与 swap)。
- 若使用 GRUB:
- chroot 到新系统:sudo chroot /mnt/newroot
- 安装引导:grub-install /dev/sdX(目标磁盘,如 /dev/sda)
- 生成配置:update-grub
- 若使用 initramfs:update-initramfs -u
- 收尾与验证
- 检查网络、SSH、用户登录、关键服务;确认无误后重启到新盘。
三、跨架构或跨版本迁移策略(重建为主)
- 备份与清单
- 备份个人数据与关键配置(如 /home、/etc 自定义部分、/opt 或 /usr/local 下的自编译软件)。
- 导出软件清单以便在新系统复现:
- 已安装包:dpkg --get-selections > pkglist.txt
- 源列表:cat /etc/apt/sources.list /etc/apt/sources.list.d/*.list > sources.list
- 在新环境重建 DFS
- 按 DFS 构建流程重新准备环境、下载源码、配置与编译(如内核、glibc、核心工具等),再按需安装 apt/dpkg 以便后续包管理。
- 恢复数据与配置
- 将备份的数据与配置拷回新系统对应位置;用导出的 sources.list 与 pkglist.txt 在新系统恢复软件集合(必要时在 chroot 中执行)。
- 验证与回滚预案
- 逐项验证服务与功能;保留旧盘一段时间,确认稳定后再回收。
四、最小化停机的实用做法
- 双系统并行
- 在新盘部署好 DFS 后,先以 GRUB 默认启动旧系统;确认新系统稳定后,再切换默认启动项到新盘。
- 只读根与快照
- 迁移窗口内将旧根设为只读(如 mount -o remount,ro /),降低写入冲突;使用 LVM/btrfs 快照便于快速回滚。
- 分阶段切换
- 先迁移非关键服务,再迁移关键业务;对数据库等有状态服务,使用停机窗口+一致性快照/备份恢复。
五、常见坑与排查要点
- 分区与引导
- 忘记更新 /etc/fstab 或 GRUB 的 UUID,会导致无法启动;务必用 blkid 核对并修正。
- 权限与属性
- 使用 rsync 时加上 -aAX 以保留 ACL、扩展属性与设备文件;用 tar 时加 –one-file-system 避免跨文件系统误拷。
- 内核与 initramfs
- 更换磁盘或 swap 后,记得执行 update-initramfs -u;必要时在 chroot 中重新安装/更新 GRUB。