(注:如果文中图片太小看不清,可以点击放大)
在使用腾讯云服务器时,腾讯云能提供的默认系统可能不能满足使用需求,例如系统需要安装一系列的自定义软件。为了避免后续逐个安装,在这种情况下使用者就会有在腾讯云上运行自定义系统的需要。腾讯云提供了导入自定义镜像的功能,让用户可以自己制作镜像导入到腾讯云上,从而满足用户这一需要。要实现将物理服务器的系统迁移到腾讯云服务器上,需要根据本地系统制作镜像并将镜像导入腾讯云。 本课程使用虚拟机在本地创建服务器进行演示。通过学习本课程,让学员掌握根据已有系统制作 Linux、Windows 镜像的流程,掌握导入镜像到腾讯云服务器以及根据镜像新建云服务器的流程,从而具备将本地系统镜像导入到腾讯云的能力。 1.2 课前知识准备相关概念: - 腾讯云 COS 对象存储:对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务。具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式,用户可简单、快速地接入 COS,进行多格式文件的上传、下载和管理,实现海量数据存储和管理。本课程需要将制作完成的镜像文件上传至腾讯云 COS,从而获得自定义镜像的镜像 URL。
- 腾讯云 CVM 云服务器:云服务器(Cloud Virtual Machine,CVM)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。腾讯云 CVM 允许选择多种操作系统来启动 CVM 实例,并加载到自定义的应用环境。后续随着业务量的变化,还可以随时调整 CVM 的规格。可以使用控制台、命令行或 SDK 等多种管理工具来启动、监控或终止 CVM 实例。本课程使用腾讯云服务器,可以根据上传至镜像列表的自定义镜像生成任意个服务器实例。
- Linux:Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。
- CentOS:CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是 Linux 发行版之一,来源于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。
- Windows Server:Windows Server 是微软推出的 Windows 的服务器操作系统,其核心是 Microsoft Windows Server System(WSS)。
- VMware player:VMware Workstation 是 VMware 公司推出的一套软件,借助该软件可以在 Windows 或 Linux PC 上运行其它类型的操作系统,用于代码开发、应用测试、产品演示等场景。VMware Workstation player 是其推出的面向个人的免费使用版本。
- 镜像:镜像(Mirroring)是一种文件存储形式,将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。
相关原理: - 在腾讯云上实现镜像导入原理:根据已有系统,不论是物理机还是运行在物理机上的虚拟机,只要符合腾讯云导入镜像标准,都可以制作成相应镜像,导入到腾讯云。用户可以将上传至 COS 的镜像文件导入到云服务器的镜像列表并以此生成服务器实例。腾讯云使用开源程序 cloud-init 初始化子机,在制作镜像时安装 cloud-init 程序并进行配置,就会自动对子机进行初始配置化。
实验原理
- 虚拟化技术:虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。腾讯云使用 KVM 虚拟化技术,要求用户导入的镜像内已安装 virtio 驱动。
2. 实验环境2.1 实验操作环境本实验要求: - 运行 Microsoft Windows,可以接入互联网的笔记本电脑或者台式机;
- Internet 浏览器,例如 Chrome,IE 或 Firefox;
- 能够通过浏览器连接腾讯云官网https://cloud.tencent.com;
- 笔记本电脑支持硬件虚拟化(在任务管理器中查看到虚拟化是否已启用);
任务管理器
- 腾讯云账号,可以创建 COS 存储桶和 CVM 服务器。
2.2 实验的数据规划表
| | | 腾讯云账号
| 账号:XXXXXXXXX 密码:XXXXXXXXXX
| 涉及产品如下:CVM、COS
| VMware player
| VMware Workstation player 15.5
| 虚拟机
| CentOS
| CentOS 7 64 位
| N/A
| Windows Server
| Windows Server 2012 64 位
| N/A
|
3. 实验流程实验流程
- 本实验首先需要安装 VMware player( 需要计算机开启虚拟化功能,如未开启需要到 BIOS 设置开启),在软件安装完成之后就开始在 VMware 上安装 Linux 系统和 Windows 系统。
- 本课程选择安装的 Linux 系统是 CentOS 7,Windows 系统是 Windows Server 2012 R2。系统安装完成,就可以开始着手进行 Linux 系统和 Windows 系统镜像的制作。
- 在已经安装好的 Linux 和 Windows 系统进行一系列配置,之后根据系统制作镜像文件,镜像文件格式需要在腾讯云支持的格式列表中。
- 制作完成后将镜像文件上传至腾讯云 COS 的存储桶实例中,获取 URL 后将 COS 的镜像文件导入云服务器的镜像列表,最后就可以根据镜像创建云服务器的实例了。
4. 实验步骤任务 1 环境搭建(安装 VMware player)【任务目标】 完成 VMware player 的安装。本课程需要基于 Linux 和 Windows 系统制作镜像文件,需要两个系统但只有一台主机。在这种情况下,可以使用虚拟化技术在一台电脑上安装多个系统解决这一问题。安装 VMware player,就可以在其上安装多个虚拟机。 【任务步骤】 1.下载 VMware player 并安装。 VMware官网
鼠标移至下载,找到免费产品下载下的 Workstation Player,点击链接进入软件下载页面。 VMware产品列表
在下载页面点击立即下载,下载软件安装包。 VMware player下载页面
安装包下载完成之后安装软件到本机,软件界面如下图。 VMware主界面
任务 2 安装 Linux 系统【任务目标】 在 VMware 上安装 Linux 系统。本课程制作自定义镜像要根据已有的系统,需先安装 Linux 虚拟机为后续步骤做准备。如果需要导入 Windows 请跳至任务 6。 【任务步骤】 1.下载 CentOS 7 镜像文件。 前往腾讯软件源找到 centos 镜像的下载地址。 镜像源列表
前往 CentOS7 镜像文件列表,镜像文件在 centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso 目录下。找到下载链接,下载文件到本地。 CentOS 7镜像列表
2.在 VMware 上安装 CentOS 7。 打开已经安装好的 VMware player,点击创建新虚拟机。在弹出窗口选择安装程序光盘映像文件,浏览文件夹选择刚刚下载的 CentOS 7 镜像文件,完毕之后点击下一步。 选择Linux镜像文件
选择【将虚拟磁盘存储为单个文件】,导出 Linux 镜像时就可以直接使用这个文件。 设置虚拟磁盘
完成新建虚拟机向导后,进入安装 CentOS 7 的界面,需要注意的是不必安装 VMware tools,这会对后续制作 Linux 镜像时产生干扰。点击【INSTALLATION DESTINATION】,进入磁盘分区页面。 安装选项
选择【I will configure partitioning】手动分区。点击左上角【Done】进入分区界面。 磁盘分区
点击左下角【+】如下图创建分区,在弹出框输入分区大小。分区文件系统选择 ext4 或者 ext3,本示例选择 ext4。分区类型选择【Standard Partition】。设置完成后点击左上角的【Done】按钮,在弹出框点击【Accept changes】。 CentOS分区
返回“安装设置”界面,可以根据需求选择需要安装的功能,其他选项选择默认即可,点击【Begin Installation】开始安装。设置管理员密码,之后按提示重启,Linux 系统安装完成。 设置root密码
任务 3 制作 Linux 镜像【任务目标】 根据已经安装完成的 Linux 系统制作可以被腾讯云服务器导入的镜像文件。腾讯云对被导入的镜像文件有一系列相应的要求,根据已有系统制作镜像需要根据不同的系统有针对性的进行一系列相关的配置,最终制作完成的镜像文件才是能被成功导入的。 【任务步骤】 1.检查 Linux 系统 OS 分区和启动方式。 开启 Linux 虚拟机并以 root 身份登录 Linux 系统,输入以下命令查询 OS 分区格式。 sudo parted -l /dev/sda | grep 'Partition Table'若返回结果为 msdos,即表示为 MBR 分区,可以继续操作。若返回结果为 gpt,即表示为 GPT 分区,目前服务迁移不支持 GPT 分区。若要继续需要把 GPT 分区变为 MBR 分区。把 GPT 分区变为 MBR 可以使用parted命令,或者使用gdisk命令,在转换磁盘分区格式前需要备份系统文件,可以使用dd命令复制磁盘文件。 执行以下命令,检查操作系统是否以 EFI 方式启动。 sudo ls /sys/firmware/efi若存在文件,则表示当前操作系统以 EFI 方式启动,不支持进行迁移。若不存在文件,则可以进行下一步。 检查OS分区和启动方式
2.检查系统关键文件。 为确保生成的镜像文件可用,需要先确保系统关键文件状态正常。由于这是正常安装的新系统,这一步可以省略。 需检查的系统关键文件包括且不限于以下文件: /etc/grub2.cfg: kernel 参数里推荐使用 uuid 挂载 root,其它方式(如 root=/dev/sda)可能导致系统无法启动。 /etc/fstab:请勿挂载其它硬盘,迁移后可能会由于磁盘缺失导致系统无法启动。 /etc/shadow:权限正常,可以读写。 执行以下命令查看“grub2.cfg”文件有关“root”的内容。 cat /etc/grub2.cfg | grep root查看grub2.cfg
执行以下命令查看“fstab”文件。 cat /etc/fstab查看fstab
执行以下命令检测“shadow”文件是否存在以及读写权限。 #检测文件长度test -s /etc/shadow && echo "yes"#检测文件读权限test -r /etc/shadow && echo "yes"#检测文件写权限test -w /etc/shadow && echo "yes"查看shadow
3.卸载会引起冲突的软件。 卸载会产生冲突的驱动和软件(包括 VMware tools,Xen tools,Virtualbox GuestAdditions 以及一些自带底层驱动的软件)。如 VMware tools,如果之前已经安装则需要卸载,卸载 VMWare Tools 的方法如下图。 卸载VMware tools
4.Linux 系统检查 Virtio 驱动。 使用以下命令检查内核是否支持 Virtio 驱动。uname -r 为当前系统内核版本。 grep -i virtio /boot/config-$(uname -r)检查Linux内核
如上图所示:当前内核包含了 virtio_blk 和 virtio_net 驱动,并且是以模块形式编译的(CONFIG_VIRTIO_BLK=m,表示编译成为内核模块,等于 y 表示编译进内核)。 - 如果返回结果中 CONFIG_VIRTIO_BLK 参数和 CONFIG_VIRTIO_NET 参数取值为 m,表明该操作系统支持但未安装 Virtio 驱动。
- 如果在返回结果中 CONFIG_VIRTIO_BLK 参数和 CONFIG_VIRTIO_NET 参数取值为 y,表示该操作系统包含了 Virtio 驱动。
- 如果在返回结果中没有 CONFIG_VIRTIO_BLK 参数和 CONFIG_VIRTIO_NET 参数的信息,表示该操作系统不支持导入腾讯云。
上图的返回结果中 CONFIG_VIRTIO_BLK 参数和 CONFIG_VIRTIO_NET 参数取值为 m,需要手动安装 Virtio 驱动。 使用以下命令检查临时文件系统是否包含 Virtio 驱动。 lsinitrd /boot/initramfs-$(uname -r).img | grep virtio检查Virtio驱动(失败)
命令无返回结果表明临时文件系统中不含 Virtio 驱动,需要重新配置临时文件系统。先执行以下命令备份关键文件。 cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak使用以下命令重新配置临时文件系统。 mkinitrd -f --with=virtio_blk --with=virtio_pci /boot/initramfs-$(uname -r).img $(uname -r)再次检查临时文件系统是否包含 Virtio 驱动,出现下图结果则 Virtio 驱动配置成功。 检查Virtio驱动(成功)
5.安装 cloud-init。 安装 cloud-init 首先要确保虚拟机网络连接畅通。执行以下命令查看网络连接状态。 ip addr查看网络连接
执行以下命令修改网卡配置。 vi /etc/sysconfig/network-scripts/ifcfg-ens33在 vi 编辑界面按i进入插入模式,将 ONBOOT 后面的 no 改成 yes,设置网卡自动启动,按Esc键退出插入模式,再输入“:wq”保存并退出。 修改网卡配置
执行以下命令重启网卡。 service network restart重启网卡
网络连接畅通,开始配置 yum 源,这里使用腾讯软件源。 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repoyum 源安装完成后,安装 wget。 yum install wget -y接下来开始安装 cloud-init,有两种安装方式。 方式一:使用软件源上的 cloud-init 包方式。 - 执行以下命令安装 cloud-init 包。yum install cloud-init -y
- 执行以下命令修改 cloud-init 配置文件。
wget -O /etc/cloud/cloud.cfg http://cloudinit-1251740579.cosgz.myqcloud.com/centos-cloud.cfg?_ga=1.215849695.911154906.1570865323方式二:手工下载 cloud-init 源码包方式。(方式一使用软件源安装不可用时选择这种方式,如果 yum 安装成功,可以直接跳至下一步(本任务第6步) 在正常安装的情况下,cloud-init-17.1 版本与腾讯云的兼容性最佳,可以保证使用该镜像创建的云服务器的所有配置项都可以正常初始化。 - 执行以下命令,下载 cloud-init 源码包。
wget https://launchpad.net/cloud-init/trunk/17.1/+download/cloud-init-17.1.tar.gz安装cloud-init
tar -zxvf cloud-init-17.1.tar.gzcd cloud-init-17.1- 接下来需要安装 Python-pip,使用 yum 方式安装。如果没有配置 epel 镜像源,则需要配置 epel 镜像源。前往腾讯软件源,找到 epel,点击查看进入epel 帮助文档。
epel镜像源
epel安装方法
yum install python-pip -ypip install -r requirements.txt结果如下图显示。 安装依赖结果
yum install cloud-utils-growpart -ypython setup.py buildpython setup.py install --init-system system结果如下图,则安装成功。 安装cloud-init结果
- 执行以下命令修改 cloud-init 配置文件。
wget -O /etc/cloud/cloud.cfg http://cloudinit-1251783334.cosgz.myqcloud.com/centos-cloud.cfg?_ga=1.212713436.911154906.1570865323修改 cloud-init 配置文件
useradd syslogsystemctl enable cloud-init-local.servicesystemctl start cloud-init-local.servicesystemctl enable cloud-init.servicesystemctl start cloud-init.servicesystemctl enable cloud-config.servicesystemctl start cloud-config.servicesystemctl enable cloud-final.servicesystemctl start cloud-final.servicesystemctl status cloud-init-local.servicesystemctl status cloud-init.servicesystemctl status cloud-config.servicesystemctl status cloud-final.service- 将 /lib/systemd/system/cloud-init-local.service 文件替换为如下内容:
[UnitDescription=Initial cloud-init job (pre-networking)Wants=network-pre.targetAfter=systemd-remount-fs.serviceBefore=NetworkManager.serviceBefore=network-pre.targetBefore=shutdown.targetConflicts=shutdown.targetRequiresMountsFor=/var/lib/cloud[ServiceType=oneshotExecStart=/usr/bin/cloud-init init --localExecStart=/bin/touch /run/cloud-init/network-config-readyRemainAfterExit=yesTimeoutSec=0# Output needs to appear in instance console outputStandardOutput=journal+console[InstallWantedBy=cloud-init.target- 将 /lib/systemd/system/cloud-init.service 文件替换为以下内容:
[UnitDescription=Initial cloud-init job (metadata service crawler)Wants=cloud-init-local.serviceWants=sshd-keygen.serviceWants=sshd.serviceAfter=cloud-init-local.serviceAfter=systemd-networkd-wait-online.serviceAfter=networking.serviceAfter=systemd-hostnamed.serviceBefore=network-online.targetBefore=sshd-keygen.serviceBefore=sshd.serviceBefore=systemd-user-sessions.serviceConflicts=shutdown.target[ServiceType=oneshotExecStart=/usr/bin/cloud-init initRemainAfterExit=yesTimeoutSec=0# Output needs to appear in instance console outputStandardOutput=journal+console[InstallWantedBy=cloud-init.target6.检查 cloud-init 相关配置是否成功。 执行以下命令,检查 cloud-init 相关配置是否成功。 以下操作执行完成后,请勿重启服务器,否则需重新执行下以下操作。 #启动cloud-initcloud-init init --local#删除程序执行时产生的文件rm -rf /var/lib/cloud7.导出镜像。 导出的镜像中至少需要包含根分区以及 mbr。如果导出的镜像缺少 mbr,将无法启动。 在当前操作系统中,如果/boot和/home为独立分区,导出的镜像还需要包含这两个独立分区。 执行lsblk命令查看分区,/boot为独立分区需要导出,此外还需要存在于磁盘/dev/sda的mbr,选择导出/dev/sda。 系统分区
方式一:使用 vmdk 文件。 使用该方式导出镜像的前提是在安装 Linux 系统时选择了【将虚拟磁盘存储为单个文件】,若是选择了【将虚拟磁盘拆分为多个文件】请使用方式二导出镜像。 输入命令poweroff关闭虚拟机。打开虚拟机所在文件夹,找到 后缀为“.vmdk” 文件,此即为需要导出的镜像文件。 CentOS vmdk格式镜像文件
方式二:使用命令导出。 使用命令导出需要挂载另一虚拟磁盘。 关闭虚拟机,来到 VMware player 软件主界面。选中 Linux 虚拟机,点击右下角的【编辑虚拟机设置】。 VMware虚拟机列表
点击下方的【添加】按钮,在弹出框选择【硬盘】。选择磁盘界面选择【创建新虚拟磁盘】,指定磁盘容量为 10GB,选择【将虚拟磁盘存储为单个文件】。其它设置默认。 添加硬盘
添加磁盘后开启虚拟机,以 root 用户登录,执行以下命令。 fdisk -l磁盘分区
找到添加的磁盘/dev/sdb,执行下列命令对磁盘分区。 fdisk /dev/sdb首先输入“n”添加分区,然后输入“p”主分区,其它按回车健选择默认值。 添加分区
分区完成后输入“w”保存设置。 保存分区设置
执行以下命令将分区格式化为 ext4。 mkfs.ext4 /dev/sdb1执行以下命令将磁盘挂载到/mydata文件夹。 #创建文件夹mkdir /mydata#将磁盘挂载到文件夹mount /dev/sdb1 /mydata由于虚拟机重启,故需要执行下列命令。 cloud-init init --localrm -rf /var/lib/cloud执行以下命令,将/dev/sda导出。/mydata/test.qcow2是存放镜像文件的地址。 #安装qemu-imgyum install qemu-img -yqemu-img convert -f raw -O qcow2 /dev/sda /mydata/centos7.qcow2下载软件安装包,找到安装包并双击安装软件。选择默认配置,安装完成后双击图标打开软件。 FileZilla
使用 FTP 需要填入主机地址,回到 Linux 虚拟机,执行以下命令。 ifconfig“192.168.19.130”即为主机地址。不同虚拟机的主机地址可能不相同。 主机地址
回到 FileZilla 软件主界面,最小化安装 CentOS 时 vsftpd 没有安装,可以采用 SFTP 的方式连接主机。点击左上角的图标添加站点。 添加站点按钮
【协议】选择【SFTP - SSH File Transfer Protocol】,【主机】填入查询到的主机地址,【用户】和【密码】填入 Linux 系统的用户名和密码。点击【连接】按钮。 添加站点
连接到虚拟机后,软件右侧显示 Linux 虚拟机的文件系统,找到位于/mydata 文件夹的镜像文件,选中镜像文件后右键点击【下载】,将镜像文件下载到本机。 下载镜像文件
至此,Linux 镜像制作完成。 任务 4 导入 Linux 镜像【任务目标】 将制作完成的 Linux 镜像文件上传到腾讯云服务器上,导入为自定义镜像。按照腾讯云的标准制作完成符合标准的镜像文件后,要想利用这些文件生成对应的系统,需要将这些镜像文件上传到腾讯云 COS 存储桶中,再将其导入到腾讯云服务器的镜像列表中。只有镜像文件成功导入镜像列表,才能在腾讯云服务器上根据这些镜像文件生成实例。 【任务步骤】 1.上传镜像文件至腾讯云 COS。 登录腾讯云管理控制台,来到对象存储管理控制台,导航到【存储桶列表】,点击【创建存储桶】。 创建存储桶1
在创建存储桶页面的名称处输入“linux”,所属地域处选择【广州】,访问权限处勾选【公有读写】,然后点击【确定】。 创建存储桶2
点击存储桶列表中新建的存储桶,进入存储桶页面。在存储桶中,点击【上传文件】,将电脑上制作完成的 Linux 镜像文件上传至存储桶。 上传文件1
此处上传的是 qcow2 格式的镜像文件,也可以上传 vmdk 格式的镜像文件,二者操作一致。 上传文件2
等待虚拟磁盘文件上传完成。 导入完成后,可以在存储桶中看到虚拟磁盘文件,如下: 文件列表
2.获取镜像文件 URL。 找到上传文件点击【详情】,进入详情页。 文件详情按钮
进入详情页面找到【对象地址】。 对象属性
鼠标点击下载链接后的图标,将镜像文件下载链接复制到剪切板。 3.将 Linux 镜像导入腾讯云服务器。 再次进入腾讯云管理控制台,搜索 CVM 进入云服务器管理控制台,导航到【镜像】,再选择【自定义镜像】,然后点击【导入镜像】。需要注意到镜像区域应该选择广州,和存储桶地域对应。 自定义镜像
在导入镜像页面,根据导入的镜像文件系统选择对应的【您准备导入的镜像操作系统】。 导入镜像1
勾选【我已做好以上准备】,再点击下一步。 导入景象2
依次填入表单对应项,校验无误后点击【开始导入】导入镜像文件,等待腾讯云系统完成导入过程。 导入镜像3
在镜像列表找到导入的镜像,导入镜像成功。 导入的Linux镜像
任务 5 新建 Linux 服务器【任务目标】 根据已经导入的 Linux 镜像文件创建腾讯云服务器实例。镜像文件导入腾讯云,存在于云服务器的镜像列表,此时就可以根据这些自定义的镜像文件创建出符合自己需求的自定义的云服务器实例。 【任务步骤】 1.创建 Linux 系统实例。 进入腾讯云管理控制台,导航到【镜像】,找到已经导入的 Linux 镜像文件,找到并点击右侧的【创建实例】按钮。 创建实例1
点击【按量计费】,选择【广州】,选择【广州三区】,选择默认的 VPC 和子网,实例处选择【标准型 SA1,1 核 1G】。 创建实例2
继续向下滚动页面,在镜像处选择【自定义镜像】,镜像版本选择上面制作好的【linuxtest1】,系统盘选择【高性能云硬盘】,默认 50GB,数据盘不选择,网络计费模式选择【按使用流量】,带宽上线默认 1Mbps,勾选【免费分配公网 IP】,公网网关无需选择,然后点击【下一步:设置主机】。 创建实例3
来到设置安全组和主机页面,所属项目默认,安全组选择【已有安全组】,安全组选择放通全部端口(若没有此安全组,可新建安全组),安全组规则默认即可,实例名称输入“linuxtest1”,登录方式选择【设置密码】,密码中输入“Welcome2Tencent!”,其他配置项保持默认,直接点击【下一步:确认配置信息】。 创建实例4
创建实例5
确认配置信息无误,点击【开通】。 确认配置
进入【实例】列表,点击【广州】地域,找到刚才新建成功的服务器实例,点击【登录】选择标准方式登录,进入服务器登录界面。 Linux实例
选择【密码登录】输入用户名 root 与密码,端口填写 22,填写完成后点击【确定】。 登录Linux
登录成功,进入服务器终端界面,服务器实例创建成功。 Linux界面
任务 6 安装 Windows 系统【任务目标】 在 VMware 上安装 Windows 系统。本课程制作自定义镜像要根据已有的系统,需先安装 Windows 虚拟机为后续步骤做准备。 【任务步骤】 1.在 VMware 上安装 Windows Server 2012。 新建虚拟机,选择 Windows Server 2012 的镜像文件。 选择Windows镜像文件
选择【将虚拟磁盘存储为单个文件】。其它设置采用默认设置,等待虚拟机安装完成。 指定磁盘容量
任务 7 制作 Windows 镜像【任务目标】 根据已经安装完成的 Windows 系统制作可以被腾讯云服务器导入的镜像文件。腾讯云对被导入的镜像文件有一系列相应的要求,根据已有系统制作镜像需要根据不同的系统有针对性的进行一系列相关的配置,最终制作完成的镜像文件才是能被成功导入的。 【任务步骤】 1.检查 Windows 系统 OS 分区和启动方式。 开启 Windows 虚拟机,打开 Windows PowerShell。在 Windows PowerShell 窗口中,输入diskmgmt.msc,按Enter,打开 “磁盘管理”。右键单击磁盘 >【属性】,选择【卷】页签,查看磁盘分区形式,分区为 MBR 格式可以继续下一步。 OS分区
使用管理员身份打开 CMD,并执行以下命令,检验操作系统是否以 EFI 方式启动。 bcdedit /enum {current}启动方式
path 参数中没有 efi,可以迁移至云服务器。 2.卸载软件。 卸载会产生冲突的驱动和软件(包括 VMware tools,Xen tools,Virtualbox GuestAdditions 以及一些自带底层驱动的软件)。如 VMware tools,如果之前已经安装则需要卸载,卸载 VMWare Tools 的方法如下图。 卸载VMware tools
3.安装 cloud-base。 若是虚拟机无法下载文件,也可以在本机下载文件到 U 盘再传输到虚拟机上(虚拟机网络正常可直接跳至安装)。 插入 U 盘到本机,把所需文件复制至 U 盘。转至 VMware player 界面,选择【Player(P)】>【可移动设备】>【Disk2.0】>【连接(与主机断开连接)】,让 U 盘连接虚拟机。“Disk2.0”使 U 盘的名称,不同 U 盘的名称不相同。在虚拟机文件系统中找到 U 盘,把 U 盘的文件复制到虚拟机上即可。 U盘连接虚拟机
在 Windows 虚拟机找到安装包,双击安装包安装软件。 在 “Configuration options” 界面,将【Serial port for logging】设置为【COM1】,单击【Next】。 安装cloud-init
单击【Install】,安装 Cloudbase-Init。 待 Cloudbase-Init 完成安装后,单击【Finish】,关闭 Cloudbase-Init 安装界面。关闭 Cloudbase-Init 安装界面时,请勿勾选任何复选框,不要运行 Sysprep。 结束安装
软件安装完成,开始修改软件配置。打开 cloudbase-init.conf 配置文件。 cloudbase-init.conf 配置文件的默认路径为:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf。 将 cloudbase-init.conf 配置文件替换为以下内容: [DEFAULTusername=Administratorgroups=Administratorsinject_user_password=trueconfig_drive_raw_hhd=trueconfig_drive_cdrom=trueconfig_drive_vfat=truebsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exemtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveServiceplugins=cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin,cloudbaseinit.plugins.common.userdata.UserDataPluginverbose=truedebug=truelogdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\logfile=cloudbase-init.logdefault_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARNlogging_serial_port_settings=COM1,115200,N,8mtu_use_dhcp_config=truentp_use_dhcp_config=truefirst_logon_behaviour=nonetbios_host_name_compatibility=falseallow_reboot=falseactivate_windows=truekms_host="kms.tencentyun.com"local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\C:\powershellPS C:\Set-ExecutionPolicy Unrestricted将 TencentCloudRun.ps1 脚本(下载地址)拷贝到 C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts 路径下。 将 C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common 路径下的 localscripts.py 替换为 准备软件 中的 localscripts.py 文件(下载地址)。 4.检查或安装 Virtio 驱动。 打开【控制面板】>【程序】>【程序和功能】,并在搜索栏中搜索 Virtio。 安装完成后再次查看程序和功能列表,安装成功。 已安装Virtio驱动
5.导出镜像。 关闭虚拟机后找到 Windows 虚拟机文件所在目录,找到“Windows Server 2012.vmdk”文件,此即为需要上传的 Windows 镜像文件。 Windows vmdk格式镜像文件
任务 8 导入 Windows 镜像【任务目标】 将制作完成的 Windows 镜像文件上传到腾讯云服务器上,导入为自定义镜像。按照腾讯云的标准制作完成符合标准的镜像文件后,要想利用这些文件生成对应的系统,需要将这些镜像文件上传到腾讯云 COS 存储桶中,再将其导入到腾讯云服务器的镜像列表中。只有镜像文件成功导入镜像列表,才能在腾讯云服务器上根据这些镜像文件生成实例。 【任务步骤】 1.上传镜像至腾讯云 COS。 登录腾讯云管理控制台,进入对象存储管理控制台,导航到【存储桶列表】,点击存储桶列表中已经创建的存储桶(新建存储桶可以参照任务 4步骤 1),进入存储桶页面。在存储桶中,点击【上传文件】,将电脑上制作完成的 Windows 镜像文件上传至存储桶。 上传文件1
上传文件2
2.获取镜像文件 URL。 找到上传文件点击【详情】,进入详情页。 文件详情链接
进入详情页面找到【对象地址】。 对象属性
鼠标点击下载链接后的图标,将镜像文件下载链接复制到剪切板。 3.将 Windows 镜像导入腾讯云服务器。 进入腾讯云管理控制台,搜索 CVM 进入云服务器管理控制台,导航到【镜像】,再选择【自定义镜像】,然后点击【导入镜像】。导入镜像页面【您准备导入的镜像操作系统】选择【Windows】。 导入Windows镜像1
【镜像文件 URL】输入对应的 Windows 镜像链接。【镜像名称】填入“windowstest1”,【地域】选择广州,【系统架构】选择 64 位,【系统平台】选择”Windos Server 2012“,【系统版本】选择”-“。填写完成后,点击【开始导入】导入镜像文件,等待腾讯云系统完成导入过程。 导入Windows镜像2
结果图如下: 导入的Windows镜像3
任务 9 新建 Windows 服务器【任务目标】 根据已经导入的 Windows 镜像文件创建腾讯云服务器实例。镜像文件导入腾讯云,存在于云服务器的镜像列表,此时就可以根据这些自定义的镜像文件创建出符合自己需求的自定义的云服务器实例。 【任务步骤】 1.创建 Windows 系统实例。 进入腾讯云管理控制台,导航到【镜像】,找到已经导入的 Windows 镜像文件,找到并点击右侧的【创建实例】按钮。 创建Windows实例1
选择机型时选择【标准型 S5】。 机型选择
镜像选择【自定义镜像】,然后在下拉框选择上传完成的 Windows 镜像,系统盘选择【高性能云硬盘】,大小 60GB。 创建Windows实例2
【实例名称】设置为“windowstest1”,登录方式选择【设置密码】,密码中输入“Welcome2Tencent!”,其他配置项保持默认,直接点击【下一步:确认配置信息】 创建Windows实例3
其它项可以参照任务 5步骤 1 创建 Linux 实例进行配置。确认配置信息无误后点击【开通】。 进入【实例】列表,点击【广州】地域,找到刚才新建成功的服务器实例,点击【登录】选择其它方式(VNC)登录,进入服务器界面。 Windows实例
鼠标移动至左上角【发送远程命令】悬停,待下拉框出现后点击【Ctrl+Alt+Delete】,进入登录界面。在登录界面输入密码后登录 Windows。 登录Windows实例
5. 实验验证1.在腾讯云服务器管理控制台的镜像列表中,存在要导入的镜像文件,状态显示为正常,类型为”自定义镜像导入“。 镜像列表
2.可以通过实例列表的【登录】成功登录主机,界面显示正常。 Linux 系统 Linux界面
Windows 系统 Windows界面
6. FAQ1.为什么导入镜像文件失败? 答:导入镜像文件失败后,腾讯云会通过站内信的方式告知导入镜像失败的原因(需要在站内信管理页面消息订阅栏中订阅产品服务相关通知,以保证可以接收到包含失败原因的站内信、短信和邮件)。根据错误码可以排查导入失败的原因。 若导入 Linux 镜像的错误码为“InvalidFormatSize”,可能是因为在安装 Linux 系统时文件系统选择错误,腾讯云只支持 MBR 分区的 ext3 或 ext4 文件系统,使用其它文件系统会导致导入失败。 2.为什么在 CentOS 中 wget 命令无法使用? 答:最小化安装 CentOS 时,wget 没有被安装,需要手动安装。使用yum install wget即可解决,同样的,在使用 qemu-img 命令时也会出现这种情况,使用 yum 安装软件即可解决。另使用 yum 安装软件如果速度很慢,这可能是因为使用了系统默认的 yum 源,默认源国内访问速度较慢导致系统安装软件速度变慢,可以使用腾讯镜像源加快安装速度。 7. 注意事项如实验资源无需保留,请在实验结束后及时销毁,以免产生额外费用。
|