Linux minimal如何迁移
导读:Linux Minimal 系统迁移实操指南 一 场景与准备 适用对象:基于发行版最小化安装的 Linux Minimal(无图形界面、仅核心组件),迁移到新硬盘或新机器。 准备要点: 备份策略:优先做整盘镜像或全量文件级备份;若用文件...
Linux Minimal 系统迁移实操指南
一 场景与准备
- 适用对象:基于发行版最小化安装的 Linux Minimal(无图形界面、仅核心组件),迁移到新硬盘或新机器。
- 准备要点:
- 备份策略:优先做整盘镜像或全量文件级备份;若用文件级,推荐 rsync 或 tar/bsdtar。
- 传输方式:外置 USB 硬盘/U 盘 或 SSH/SCP;确保两端网络与权限可用。
- 启动介质:在目标机用 Live USB(如 Ubuntu LiveCD)启动,以便对裸盘进行分区、格式化与恢复。
- 兼容性检查:记录源机关键信息(发行版与版本、内核版本、分区与 UUID、文件系统、是否 UEFI/GPT),便于目标机对齐配置。示例命令:
cat /etc/issue、uname -r、lsblk -f、blkid、efibootmgr。
二 方法一 文件级迁移 rsync(通用、可增量)
- 旧机备份(在运行的 Minimal 系统中执行):
- 挂载备份盘(示例挂载到 /mnt/backup),全量同步并排除虚拟与临时文件系统:
sudo mkdir -p /mnt/backup sudo mount /dev/sdX1 /mnt/backup sudo rsync -aAXhv --info=progress2 \ --exclude={ "/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \ /* /mnt/backup/
- 挂载备份盘(示例挂载到 /mnt/backup),全量同步并排除虚拟与临时文件系统:
- 目标机恢复(用 Live USB 启动后):
- 分区与格式化(示例:根分区 /dev/sda1;如为 UEFI,还需 /dev/sda2 作 ESP 并格式化为 FAT32):
sudo gparted sudo mkfs.ext4 /dev/sda1 # UEFI 示例:sudo mkfs.fat -F32 /dev/sda2 sudo mount /dev/sda1 /mnt # UEFI 示例:sudo mkdir -p /mnt/boot/efi & & sudo mount /dev/sda2 /mnt/boot/efi - 恢复数据:
sudo rsync -aAXhv --info=progress2 /外部介质路径/ /mnt/ - 准备 chroot 环境并修复引导:
sudo mkdir -p /mnt/{ proc,sys,dev,run,tmp} sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt # BIOS grub-install /dev/sda update-grub # UEFI grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB update-grub update-initramfs -u exit - 修复 /etc/fstab 的 UUID(关键步骤):
sudo blkid sudo nano /mnt/etc/fstab # 将根分区与 /boot/efi 的 UUID 改为新盘实际值 - 可选:若目标机硬件差异较大,按需安装/调整显卡或存储驱动,再次生成 initramfs。
- 分区与格式化(示例:根分区 /dev/sda1;如为 UEFI,还需 /dev/sda2 作 ESP 并格式化为 FAT32):
三 方法二 归档迁移 tar 或 bsdtar(打包后一次性恢复)
- 旧机打包(示例排除备份介质自身与缓存,避免递归打包):
sudo tar -cvpzf /mnt/backup/backup.tar.gz \ --exclude=/mnt/backup --exclude=/home/*/.cache --exclude=/var/cache \ --one-file-system / - 目标机恢复(Live USB 中):
sudo mount /dev/sda1 /mnt # UEFI 示例:sudo mkdir -p /mnt/boot/efi & & sudo mount /dev/sda2 /mnt/boot/efi # 使用 GNU tar sudo tar -xvpzf /外部介质/backup.tar.gz -C /mnt --numeric-owner # 或使用 bsdtar(同样支持 --numeric-owner) # sudo bsdtar -xpf /外部介质/backup.tar.gz -C /mnt --numeric-owner # 准备 chroot 并修复引导(同方法一) sudo mkdir -p /mnt/{ proc,sys,dev,run,tmp} sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install /dev/sda & & update-grub # BIOS # 或 UEFI:grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB & & update-grub update-initramfs -u exit # 修正 /etc/fstab 的 UUID sudo blkid sudo nano /mnt/etc/fstab - 提示:归档方式对 符号链接、权限、设备节点 的保留依赖正确选项(如 –numeric-owner),恢复后务必检查 fstab 与 initramfs。
四 方法三 整盘克隆 dd(最快,但要求目标盘容量≥源盘)
- 适用:希望“逐比特”复制的场景(如相同硬件或近似硬件)。
- 步骤:
- 在 Live USB 中确认设备名(如源 /dev/sda,目标 /dev/sdb),先对目标盘分区/建立分区表(可先按源盘结构用
sfdisk -d /dev/sda | sfdisk /dev/sdb复制分区表),再克隆:sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress - 克隆后,目标盘通常可直接启动;如为 UEFI,确认 ESP 分区挂载到 /boot/efi 且 /etc/fstab 使用新盘 UUID。
- 在 Live USB 中确认设备名(如源 /dev/sda,目标 /dev/sdb),先对目标盘分区/建立分区表(可先按源盘结构用
- 注意:目标盘容量更大时,克隆后需扩展分区与文件系统;容量更小则无法克隆。此方法不“自适应”新硬件,后续可能需要调整 initramfs 与驱动。
五 验证与常见问题处理
- 首次启动检查:
- 是否能正常进入系统、登录、网络可用(
ping、ip a)。 - 检查挂载点:
mount | grep '^/dev',确认 根分区 与 /boot/efi 挂载正确。 - 查看日志:
journalctl -xe、dmesg | tail,定位驱动或挂载失败原因。
- 是否能正常进入系统、登录、网络可用(
- 常见问题与修复:
- 启动失败(GRUB 阶段):回到 Live USB,chroot 后重装 GRUB(BIOS:
grub-install /dev/sda;UEFI:grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB),再update-grub。 - 找不到根分区:用
blkid确认新盘 UUID,修正 /etc/fstab 中的根与 /boot/efi 条目。 - 新硬件不识别:在 chroot 中执行
update-initramfs -u;必要时安装对应 存储/显卡 驱动并重启。 - 网卡名称变化(如 eth0 变 ens33/enp0s3):更新
/etc/netplan/*.yaml(Ubuntu)或/etc/sysconfig/network-scripts/ifcfg-*、/etc/udev/rules.d/70-persistent-net.rules(RHEL/CentOS 系),再重启网络服务。
- 启动失败(GRUB 阶段):回到 Live USB,chroot 后重装 GRUB(BIOS:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux minimal如何迁移
本文地址: https://pptw.com/jishu/766200.html
