当前位置: 首页 > news >正文

centos7下用kvm启动Fedora36 Cloud镜像

环境

os:centos7
Arch: aarch64

安装qemu-kvm

yum install qemu-kvm kvm virt-install libvirt
systemctl start libvirtd.service

创建镜像

下载aarch64架构的Fedora36镜像

wget https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/36/Cloud/aarch64/images/Fedora-Cloud-Base-36-1.5.aarch64.qcow2 --no-check-certificate

制作一个新的镜像

qemu-img create -f qcow2 -b Fedora-Cloud-Base-36-1.5.aarch64.qcow2 my-fedora.qcow2 20G

创建一个名为meta-data的文件

cat > meta-data << EOF
instance-id: Cloud00
local-hostname: cloud-00
EOF

创建一个名为user-data的文件,内容如下(根据需要修改),这将默认用户设置为cloud密码为password并解锁帐户,以便可以在终端登录(无需 SSH)。也可以添加 SSH 密钥。

cat > user-data << EOF
#cloud-config
# Set the default user
system_info:default_user:name: cloudplain_text_passwd: 'password'groups: [wheel]# Unlock the default user
chpasswd:list: |cloud:passwordexpire: False# Other settings
ssh_pwauth: TrueEOF

Cloud init 在启动时挂载 CD-ROM,因此使用 genisoimage 从这些文件中创建 ISO 映像。

genisoimage -output my-seed.iso -volid cidata -joliet -rock user-data meta-data

virt-install安装启动vm

virt-install \--name fedora\--memory 4096 \--disk my-fedora.qcow2,device=disk,bus=virtio \--disk my-seed.iso,device=cdrom \--os-type linux \--os-variant fedora32 \--virt-type kvm \--graphics none \--network network=default \--import

出现Couldn't configure UEFI: Did not find any UEFI binary path for arch 'aarch64'问题,原因是kvm没有 UEFI,需要更新最新的 libvirt和uefi package

#在/etc/yum.repos.d/添加libvirt.repo文件
cat > libvirt.repo << EOF
[libvirt-latest]
baseurl = https://buildlogs.centos.org/centos/7/virt/aarch64/libvirt-latest/
enabled = 1
gpgcheck = 0
name = kvm common for CentOS7
EOFwget https://www.kraxel.org/repos/firmware.repo -O /etc/yum.repos.d/firmware.repoyum update libvirt
yum install edk2.git-aarch64#在/etc/libvirt/qemu.conf文件中添加
nvram = ["/usr/share/edk2.git/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2.git/aarch64/vars-template-pflash.raw"]#重启libvirtd.service
systemctl restart libvirtd.service#重新执行virt-install

启动后使用user-data中设置的账号密码登录。
安装好vm后可以通过sudo virsh edit fedora来修改虚拟机配置,如内存大小、cpu数量等,修改前需要关闭虚拟机virsh shutdown fedora,修改完成后virsh start fedora启动虚拟机,然后通过virsh console fedora登录(退出为ctrl+]),也可以通过ssh登录,例如ssh cloud@192.168.122.119

更换国内源(清华源)

参考https://mirrors.tuna.tsinghua.edu.cn/help/fedora/
备份文件

#备份文件
cd /etc/yum.repos.d/
sudo mkdir backup/
sudo cp *repo backup/

修改/etc/yum.repos.d/fedora.repo

[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$basearch/os/
metadata_expire=28d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

/etc/yum.repos.d/fedora-updates.repo

[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Everything/$basearch/
enabled=1
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

fedora-modular 仓库 (/etc/yum.repos.d/fedora-modular.repo)

[fedora-modular]
name=Fedora Modular $releasever - $basearch
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Modular/$basearch/os/
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

updates-modular 仓库 (/etc/yum.repos.d/fedora-updates-modular.repo)

[updates-modular]
name=Fedora Modular $releasever - $basearch - Updates
failovermethod=priority
baseurl=https://mirrors.tuna.tsinghua.edu.cn/fedora/updates/$releasever/Modular/$basearch/
enabled=1
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

更新本地缓存

sudo yum makecache
http://www.lryc.cn/news/14821.html

相关文章:

  • 修复 K8s SSL/TLS 漏洞(CVE-2016-2183)指南
  • uniapp 引入彩色symbol和 指令权限
  • 【C语言】初识结构体
  • 前端将base64图片转换成file文件
  • OAK相机跑各种yolo模型的检测帧率和深度帧率
  • 存储拆分后,如何解决唯一主键问题?
  • 仿射变换学习
  • 基于java的爬虫框架webmagic基本使用
  • Python每日一练(20230221)
  • 【Linux】vim拒绝服务安全漏洞修复
  • moveit 2源码编译
  • 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A模块(4)
  • 微服务保护之sentinel熔断器
  • 电动打气泵方案开发--鼎盛合PCBA方案
  • 第十三届蓝桥杯省赛 C++ A 组 F 题、Java A 组 G题、C组 H 题、Python C 组 I 题——青蛙过河(AC)
  • django项目实战四(django+bootstrap实现增删改查)进阶时间控件
  • Jetpack之ViewModel
  • 追梦之旅【数据结构篇】——详解C语言动态实现顺序表
  • xss基础
  • 移动WEB开发二、流式布局
  • 分享在线预约系统制作步骤_在线预约链接怎么做
  • 【每日一题Day125】LC1326灌溉花园的最少水龙头数目 | 动态规划 贪心
  • C# FFmpeg推流Vlc.DotNet拉流优化参数
  • pnpm v8版本升级变化关注点(前瞻速攻版)
  • Python基础-环境安装
  • 重载、重写、重构概念辨析
  • 第九章 - 多表查询(join,left join 等)与合并查询(union union all)
  • matplotlib学习笔记(持续更新中…)
  • STM32 SystemInit()函数学习总结
  • 【Spring Boot 原理分析】- 自动配置