因为中国区域的Debian版本没有新版的,是不是很无语。云平台竟然连 linux 发行版的系统都没的。。。
大概的步骤
-
首先,在
AWS东京地区启动Debian实例,将适当大小的EBS卷挂载到该 Debian 实例上,然后使用dd命令将Debian实例的整个根卷作为文件保存到该EBS卷。 - 之后,将文件复制到
cn-north-1区域中的实例.在该cn-north-1区域的实例中,使用dd命令将该文件写入EBS卷,然后为该EBS卷创建快照,并使用该快照在cn-north-1区域中创建AMI。 - 最后,用户可以使用该
AMI启动CentOS实例,该实例与在东京地区运行的实例相同。
具体实施
-
在海外创建一个 Debian 系统实例,本次选择东京地区

-
创建一个挂载卷,用于存储系统镜像文件,并挂载到新建的实例上
也可以在创建实例的时候一并建立

将卷连接到实例中

-
连接实例后,可以看到系统中存在 2 个磁盘

/dev/xvda是系统盘,/dev/xvdf是我们挂载的数据磁盘格式化数据磁盘,并挂载到目录中
mkfs.ext4 /dev/xvdf mount /dev/xvdf /mnt/ -
使用
dd命令将系统盘写入到数据磁盘目录文件中。dd if=/dev/xvda of=/mnt/root.img bs=1M -
在国内也创建一个 Amazon Linux 2 的实例,根磁盘需要设置 20g,用作存储 img,同样也挂载一块磁盘用于将 img 写入
接着,将 img 传递到国内的实例中
scp -i test.pem /mnt/root.img ec2-user@ec2-52-80-171-123.cn-north-1.compute.amazonaws.com.cn:/tmp/ -
在传送完毕后,进入国内的实例中。
磁盘信息
fdisk -l Disk /dev/nvme1n1: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xf6897bce Device Boot Start End Sectors Size Id Type /dev/nvme1n1p1 * 2048 16777215 16775168 8G 83 Linux Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 33E98A7E-CCDF-4AF7-8A35-DA18E704CDD4 Device Start End Sectors Size Type /dev/nvme0n1p1 4096 41943006 41938911 20G Linux filesystem /dev/nvme0n1p128 2048 4095 2048 1M BIOS boot/dev/nvme0n1是系统盘,/dev/nvme1n1是挂载的数据盘使用 dd 命令,将 img 文件写入到
/dev/nvme1n1数据盘中。dd if=/tmp/root.img of=/dev/nvme1n1 bs=1M oflag=direct接着,我们挂载数据盘,并删除系统用户的
authorized_keysmount /dev/nvme1n1p1 /tmp/debian rm -f /tmp/debian/root/.ssh/authorized_keys umount /tmp/debian -
卸载完磁盘后, 在 aws 网页控制台上将 EBS 打上快照

-
创建完快照后, 使用这个快照创建 ami 映像
创建完映像之后,我们就可以用这个映像来创建 debian ec2 了