之前为了方便批量部署运行环境,都是先在一台x86机器上安装好ubuntu14.04以及各种依赖,然后用clonezilla把整个硬盘做成镜像。装机的时候,用clonezilla把硬盘镜像还原出来(clonezilla会自动建好分区,然后拷贝好数据,和dd命令不同,镜像只占用实际使用的硬盘大小),非常方便。
但是clonezilla有个短板就是,没办法把硬盘镜像恢复到更小的硬盘上(只能还原到容量相等或者更大的硬盘上)。由于原始的ubuntu14.04的系统硬盘是2T的,某些新的x86的机器的硬盘是1T的,这就导致没法还原到1T的硬盘上(究其原因,我认为还是没法还原分区)。现在问题来了,我需要手动的把ubuntu14.04系统从2T的硬盘克隆到1T的硬盘上。
2T硬盘分区:200M的fat32格式的uefi分区,以及剩下2T的ext4的分区挂载/安装的ubuntu14.04系统,没有swap分区
1T裸的硬盘
具体步骤如下:
1. 首先用ubuntu14.04的安装u盘启动(从uefi模式启动),在安装选项中手动对1T的裸硬盘分区成200M的fat的uefi分区,以及剩下的1T的ext4分区(用来挂载/),然后安装一个全新的ubuntu14.04系统
2. 挂载2个硬盘的ext4分区,把1T的硬盘的ext4分区(也就是/根目录)清空,然后把2T的硬盘的ext4分区(也即是/根目录)cp -r -p的方式复制过去,注意不要画蛇添足的把efi分区也复制过去了
3. 参考:`https://askubuntu.com/questions/88384`,这样更新grub启动信息,然后就ok了