VM-Import 导入 Debian 12 系统

介绍

之前介绍过使用 VM-Import 导入 Windows 系统到 AWS 环境启动 EC2 实例, 本文将介绍如何导入 Debian 12 系统. 本地虚拟化使用 VMWare Workstation 创建虚拟机安装和准备 Debian 12 系统, 导出 OVA 文件后上传到 S3 存储桶中再使用 AWSCLI 执行 VM-Import 命令实现导入过程.

准备工作

  1. 创建或选择一个 S3 存储桶, 建议创建个新的, 专门用来存储要导入的本地 VM 磁盘文件
  2. 参考之前文档 本地VM导入至AWS EC2 创建IAM角色进行授权 部分内容创建名为 vmimport 的 IAM Role
  3. 安装 AWSCLI 工具并配置好 AK/SK 建议使用管理员权限的 IAM User 身份
    https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/install-cliv2.html
  4. 下载系统 ISO, 可以从清华镜像站下载, 速度快:
    https://mirrors.tuna.tsinghua.edu.cn/debian-cd/current-live/amd64/iso-hybrid/debian-live-12.5.0-amd64-standard.iso

本地 VM 准备

VMWare Workstation 中创建一台新的虚拟机, 使用下载好的 Debian 12 ISO 文件正常安装系统.
主要需要留意的就是创建磁盘时大小给 8GB 就行, 注意选择 将虚拟磁盘存储为单个文件
在这里插入图片描述
系统安装按照正常的流程配置即可, 为了保证导入的成功率, 建议磁盘分区时使用整个磁盘, 不用 LVM
在这里插入图片描述
单个分区
在这里插入图片描述
其余选项正常配置就行, 安装完成后进入等待登录界面
在这里插入图片描述
打开虚拟机设置, 删掉 CD/DVD 光驱设备
在这里插入图片描述
由于安装的是最基础的系统, 所以是不包含 SSH 服务的, 使用 root 账号登录系统后安装必要的软件包和配置系统:

# 安装包
apt install -y openssh-server amazon-ec2-utils amazon-ec2-net-utils cloud-init

# 配置 GRUB 支持 Serial Console
vi /etc/default/grub.d/50-cloudimg-settings.cfg

50-cloudimg-settings.cfg 粘贴以下内容后保存关闭.

GRUB_RECORDFAIL_TIMEOUT=0
GRUB_TIMEOUT=1
GRUB_TIMEOUT_STYLE=menu
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed 115200"
# GRUB 更新配置
update-grub

# 关机
init 0

上面修改 GRUB 配置是为了预防导入后如果出现问题还可以通过 Serial Console 方式访问实例

虚拟机关闭后点击菜单 > 文件 > 导出为 OVF
在这里插入图片描述
将导出后最大的的 .vmdk 虚拟机磁盘文件上传到 S3 桶
在这里插入图片描述
上传可以用浏览器访问 S3 控制台或者在本地执行 AWS CLI 命令:

aws s3 cp Debian12-disk1.vmdk s3://lpwm/vm/

在这里插入图片描述

VM Import 导入

等待 S3 上传完成后, 继续在本地创建导入任务的 json 配置文件:

{
    "Description": "Deibian 12 import",
    "Format": "vmdk",
    "UserBucket": {
        "S3Bucket": "lpwm",
        "S3Key": "vm/Debian12-disk1.vmdk"
    }
}

在这里插入图片描述

继续执行 AWS CLI 命令:

aws ec2 import-snapshot --description "Debian12" --disk-container "file://config.json"

在这里插入图片描述

复制命令输出中的 ImportTaskId 用于查看任务状态:

aws ec2 describe-import-snapshot-tasks --import-task-ids import-snap-098eb6a74f12cb0fb

在这里插入图片描述
观察 Status 变成 “completed” 导入完成, 大概耗时 3 分钟左右. 记录 SnapshotId.

启动测试实例

在 EC2 控制台 > Snapshots 搜索上面记录的 SnapshotId 找到对应资源 > Actions > Create image from snapshot
在这里插入图片描述
起个名字, 写上 Description, 其他配置保持默认 > Create image
在这里插入图片描述
打开创建好的 AMI > Launch instance from AMI
在这里插入图片描述
和普通启动实例过程一样完成向导配置, 启动后观察实例屏幕截图确认启动过程:
在这里插入图片描述
启动完成后进入等待登录界面:
在这里插入图片描述
此时从本地即可使用用户名密码方式 SSH 访问实例.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/683007.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式-抽象工厂(创建型)

创建型-抽象工厂 角色 抽象工厂: 声明创建一个族产品对象的方法,每个方法对应一中产品,抽象工厂可以是接口,也可以是抽象类;具体工厂: 实现抽象工厂接口,复杂创建具体的一族产品;抽…

[移动通讯]【无线感知-P2】[特征,算法,数据集】

前言: 这里面主要参考清华大学的杨峥教授,做一下无线感知的总结. 基本思想: 无线信号不仅可以传输数据,还可以感知环境信号发射机产生的无线电波 经由直射,反射,散射等多条路径传播,在信号接收机形成的多径叠加信号 携带反映环境特征…

Unreal项目修改名字

Unreal项目修改名字 前言修改Unreal Blueprints工程项目名字修改Unreal C工程项目名字 前言 Unreal项目修改名字还是比较麻烦的,针对纯蓝图工程和C工程有一些区别。 修改Unreal Blueprints工程项目名字 修改纯蓝图的Unreal项目还是比较简单的,只要两个…

hcia datacom学习(12):vlan间路由

不同vlan相当于不同网段,如果vlan间没有三层技术,那么它们就无法互相通信。 vlan间路由可以有3种方式: 1.直接使用路由器转发 *路由器本身不需要额外设置,只需配置端口ip作为网关即可。 *路由器不能处理带有vlan标签的数据帧&a…

vulnhub靶机实战_DC-4

下载 靶机下载链接汇总:https://download.vulnhub.com/使用搜索功能,搜索dc类型的靶机即可。本次实战使用的靶机是:DC-4系统:Debian下载链接:https://download.vulnhub.com/dc/DC-4.zip 启动 下载完成后,…

【PL理论】(5) F#:递归类型 | Immutability 特性(F#中值一旦定义就不会改变)

💭 写在前面:本文旨在探讨不可变数据结构在 F# 编程中的应用,特别是如何利用递归记录类型来表示和操作数值表达式。通过定义存储整数的二叉树和数值表达式的类型,我们将展示不可变性如何简化程序的理解和维护。文章将对比 F# 与命…

适合航天航空的国产FTP替代软件

在宇宙探索的旅程中,航空和航天领域总是站在科技的最前沿,对数据传输的要求特别高。随着信息量急剧增加和安全威胁的复杂化,传统的FTP软件已经不能满足这个高端领域的需要了。因此,找到一款适合航空和航天领域的FTP替代软件&#…

spring 解决循环依赖

在 spring 框架中,我们知道它是通过三级缓存来解决循环依赖的,那么它具体是怎么实现的,以及是否必须需要三级缓存才能解决循环依赖,本文来作相关介绍。 具体实现 先来看看它的三级缓存到底是什么,先看如下代码&#…

Nginx网站服务【☆☆☆】

市面上常用Linux的web服务器:apache、Nginx。 apache与nginx的区别? 最核心的区别在于NGINX采用异步非阻塞机制,多个连接可以对应一个进程;apache采用的是同步阻塞多进程/线程模型,一个连接对应一个进程。apache美国…

c++简略实现共享智能指针Shared_Ptr<T>

重点: 1.引用计数在堆上(原本应为原子变量) 2.引用计数增加减少需要加锁保证线程安全。 3.内部实现Release函数用于释放资源 4.未实现,增加自定义删除器可以将Release修改为模板函数,传入可调用参数。对于shared_p…

tomcat服务器之maxHttpHeaderSize

背景:在OA流程表单中,填写了200条数据,一提交,秒报400错误,且请求没有打到后端中(无报错日志),一开始以为是谷歌浏览器的问题,可百度上关于这个错误的解决方案都是清除缓…

docker实战流程:

Docker-compose是docker官方的开源项目,负责实现对docker容器的集群的快速编排(通过yaml文件docker-compose.yml管理写好容器之间的调用关系只需一个命令就能实现容器的通识开启或关闭)。 类比spring容器,spring管理的是bean而do…

vue3+uniapp

1.页面滚动 2.图片懒加载 3.安全区域 4.返回顶部,刷新页面 5.grid布局 place-self: center; 6.模糊效果 7.缩放 8.微信小程序联系客服 9.拨打电话 10.穿透 11.盒子宽度 12.一般文字以及盒子阴影 13.选中文字 14.顶部安全距离 15.onLoad周期函数在setup语法糖执行后…

PVE安装虚拟主机

本文记录PVE安装其他虚拟主机的步骤,以安装win-server为例。裸机安装PVE则不是本文主题。 准备文件 获取Windows系统镜像 win server镜像可以从官网获取普通Windows镜像可从MSDN获取此外,安装Windows系统还需要从PVE下载特殊驱动 获取Windows必要驱动 …

数据库(25)——多表关系介绍

在项目开发中,进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,各个表之间的结构基本上分为三种:一对多,多对多,一对一。 一对多 例如,一个学校可以有…

PromptPerfect:AI Prompt生成与优化专家

PromptPerfect:AI Prompt生成与优化专家 PromptPerfect是一款专业的AI Prompt生成与优化工具,旨在帮助用户解锁和最大化GPT-4、ChatGPT、Midjourney等先进AI模型的潜力。它通过智能生成和精细优化Prompt,帮助用户获得更精确、更相关、更高效…

Aws EC2,kubeadm方式安装kubernetes(k8s)

版本 docker版本:20.10.25 k8s版本(kubeadm,kubelet和kubectl):1.20.10-0 初始化 # 禁用 SELinux sudo setenforce 0 sudo sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config# 关闭防火墙 sudo …

题号:BC19 题目:反向输出一个四位数

题号:BC19 题目:反向输出一个四位数 废话不多说,上题目: 解题思路: 我们发现可以用%和/两个操作符就可以解决。 代码如下: int main() {int a 0;scanf("%d ",& a);while (a){printf("%d "…

【实物+仿真设计】基于单片机的物流皮带传输监控系统设计

《基于单片机的物流皮带传输监控系统设计 实物仿真》 整体功能: 本设计采用以单片机为核心控制器,以及传感器检测部分作为输入部分,以报警、显示、洒水、排烟、电机停止模块作为输出部分,构成整个物流皮带传输监控系统。 本设计…

Kolmogorov–Arnold Networks (KAN) 即将改变 AI 世界

目录 一、说明 二、KAN介绍 2.1 什么是 Kolmogorov-Arnold Networks (KAN): 2.2 KAN 的秘诀,Splines! 2.3 了解KAN工作的最简单方法 三、KAN的主要优点 四、KAN 的 Python 实现 (PyKAN) 4.1 …