@
shiweifu @
pyKun 打包前,在 /boot 下 ln -s . boot 建立一个 软链接 boot -> . 以方便之后grub的操作。
tar 使用 p参数记录所有文件和目录的权限和属主 --excloud 避开一些特殊的目录,假设生成的压缩包.tgz放在/backup/:
/proc/*
/sys/*
/etc/udev/rules.d/一些特殊对象
/backup/*.tgz #避开生成的压缩包
在新机器上,以 livecd 启动(最好相同平台的相同发行版),对硬盘分区,格式化,
live 环境里 将 新硬盘里准备作/ 的分区 mount 到某目录,例如 /o
在/o 里建立 boot home usr var 登目录(假若准备给这些使用独立分区),
将分区都mount到对应位置,
在 /o 下 tar xvf /path/backup.tgz
mount --bind /dev /o/dev && mount --bind /proc /o/proc && mount --bind /sys /o/sys
接着,chroot /o /bin/bash
或许要修改 chroot 环境(新机器未来的新系统)的 /etc/fstab 和 网络设定什么
执行 grub
set root (hd0,0) #假设boot是独立分区,使用第一个硬盘的第一个分区
setup (hd0)
exit
重启新机器,完毕。
我自用的 打包脚本,原本是针对 gentoo 的,稍作变动也可用于其它发行版:
https://gist.github.com/likuku/5589316