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 访问实例.

补充说明

和之前导入 Windows 系统的操作不同, 这里使用的命令是 aws ec2 import-snapshot 导入 Snapshot, 再将 Snapshot 封装成 AMI 启动实例. 如果用 aws ec2 import-image 导入时会出现卡在进度 27% 走不动的情况, 可能和安装的 Debian 最小系统环境有关, 后台在进行某些任务时出现了问题, 不过暂无法确认具体原因.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue】获取模块内的state数据

目标: 掌握模块中 state 的访问语法 尽管已经分模块了,但其实子模块的状态,还是会挂到根级别的 state 中,属性名就是模块名 使用模块中的数据 直接通过模块名访问 $store.state.模块名.xxx 通过 mapState 映射: 默认…

mac免费的ntfs软件哪个好 MAC读取NTFS硬盘格式

对于苹果用户来说,Mac电脑和移动硬盘已经成为日常工作中不可缺少的一部分,但有时我发现Mac打开移动硬盘只能读取无法写入,这是由于所连接的移动硬盘为NTFS格式。我们可以通过对硬盘格式化为Mac正常读写格式,或使用数据读写软件对N…

DNS协议 | NAT技术 | 代理服务器

目录 一、DNS协议 1、DNS背景 2、DNS协议 域名 域名解析 二、NAT技术 1、NAT技术 2、NAPT技术 3、NAT技术的缺陷 三、代理服务器 1、正向代理服务器 2、反向代理服务器 一、DNS协议 域名系统(Domain Name System,缩写:DNS&#…

Zabbix配置中文显示及乱码问题

页面配置为中文显示 在zabbix 5.0版本开始用户菜单更改为左侧栏显示,找到并点击 User Settings,Language 修改语言为 Chinese (zh_CN) 即可。 PS:一般在部署后初始配置时,未找到 Chinese (zh_CN) 这一项,修改如下&…

深度学习中embedding层的理解

Embedding层作用 在深度学习领域中,Embedding层扮演着至关重要的角色,尤其在处理文本数据或类别数据。Embedding层的功能有两个: 1. 将高维稀疏的输入数据(如单词、类别标签等)转换为低维稠密的向量表示,…

数 据 类 型

概述 Java 是强类型语言。 每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)。 Java 中一共有 8 种基本类型(primitive type),包括 4 种整型、2 种浮点型、1 种字符类型&#…

Vulnhub靶机之reven 1

一、信息收集 nmap扫描网段,靶机地址为192.168.145.129。 nmap -sP 192.168.145.* 扫一下端口,开放了22、80、111、50967。 nmap -sT -T4 -p1-65535 192.168.145.129 再看一下目录情况,发现一个疑似后台登录的地址。 dirsearch -u http://…

【C++修行之道】类和对象(六)再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元|匿名对象|拷贝时一些编译器优化

目录 一、再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1. 所有的成员,既可以在初始化列表初始化,也可以在函数体内初始化 2. 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次) 3. 类中包含以下成员,必须放在初始化列表位置进行初始化&…

N32G45XVL-STB之移植LVGL(lvgl-8.2.0)

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 ST7796-LCD 1.3 MCU IO与LCD PIN对应关系 2 认识LVGL 2.1 LVGL官网 2.2 LVGL库文件下载 3 移植LVGL 3.1 准备移植文件 3.2 添加lvgl库文件到项目 3.2.1 src下的文件 3.2.2 examples下的文件 3.2.3 配置文件路径 3.2…

VS2019专业版 C#和MFC安装

1. VS2019专业版下载地址 https://learn.microsoft.com/en-us/visualstudio/releases/2019/history 2.安装 C# 部分 MFC部分

【Linux】进程6——环境变量

1.什么是环境变量 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数 比如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功&…

通过 Python+Nacos实现微服务,细解微服务架构

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 背景 一直以来的想法比较多,然后就用Python编写各种代码脚本。很多…

这个国际档案日,大比武放榜、直播预约、课件下载,一样都不能少!

关注我们 - 数字罗塞塔计划 - 2024年6月9日第十七个国际档案日来临,数字罗塞塔计划放大招:第二届大比武活动榜单揭晓、ARCHE-2024上海智慧档案高峰论坛直播预约、2024上半年度课件大礼包下载。如此大礼,岂能错过? PART.01 榜单…

【LeetCode 第 401 场周赛】K秒后第 N 个元素的值

文章目录 1. K秒后第 N 个元素的值🆗 1. K秒后第 N 个元素的值🆗 题目链接🔗 🐧解题思路: 前缀和 小规律🍎 🍎 从上图观察可知,规律一目了然,arr[i] arr[i] 对上一…

2024-6-9

今日安排: 学校的课程作业windows SEH 机制简单入门windows 用户态 pwn / 内核态入门 计网实验报告 && 网安实验报告继续审计 nf_tables 源码,主要看 active 相关逻辑。复现 CVE-2022-32250 这个漏洞【 && iptables 相关学习】♥♥♥♥…

基于vue的音乐播放器的设计与实现(论文+源码)_kaic

摘 要 当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文…

【Qt秘籍】[010]-Qt常用控件

一、控件概述 在GUI(图形用户界面)开发领域,Qt无疑是众多开发者心中的首选框架之一。它不仅跨平台、功能强大,而且拥有丰富且灵活的控件库,使得开发者能够快速构建美观、高效的用户界面。对于初学者而言&#xff0…

GitLab代码导出 gitlab4j-api 实现

目录 GitLab简介 GitLab 的主要特点包括: GitLab代码导出 gitlab4j-api 添加 gitlab4j-api 依赖 使用 gitlab4j-api 获取特定命名空间下的所有项目 说明 注意事项 GitLab简介 GitLab 是一个开源的代码仓库和协作平台,主要用于版本控制和源代码管理…

深度剖析整型和浮点型数据在内存中的存储(C语言)

目录 整型在内存中的存储 为什么整型在内存中存储的是补码? 大小端字节序 为什么有大端小端? 浮点型家族 浮点数在内存中的存储 long long 整型在内存中的存储 整型在内存中有三种二进制表示形式:原码,反码,补码…

Github 2024-06-10开源项目周报 Top15

根据Github Trendings的统计,本周(2024-06-10统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目8Jupyter Notebook项目2Go项目2C++项目1Shell项目1Lua项目1JavaScript项目1MDX项目1C项目1HTML项目1Python - 100天从新手到大师 创建…