1. 安装msys2
github: https://github.com/msys2/msys2-installer
镜像地址: https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/
安装位置: D:\software\msys64
添加如下windows terminal配置:
|
|
tip: windows terminal如何展示选项卡的名字, 在.bashrc的末尾添加一行,
export PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
- 配置pacman镜像
pacman是arclinux中的软件管理工具,也是widows上msys2默认的软件管理工具。
镜像地址:https://mirrors.tuna.tsinghua.edu.cn/help/msys2/
启动msys2,并执行如下命令:
|
|
执行 pacman -Sy 刷新软件包数据
解决错误:clangarm64: 密钥 "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" 未知
问题:
- pacman常用命令
pacman -Sy: 从服务器下载新的软件包数据库(实际上就是下载远程仓库最新软件列表到本地)。
pacman -Syu: 升级系统及所有已经安装的软件。
pacman -S 软件名: 安装软件。也可以同时安装多个包,只需以空格分隔包名即可。
pacman -Rs 软件名: 删除软件,同时删除本机上只有该软件依赖的软件。
pacman -Ru 软件名: 删除软件,同时删除不再被任何软件所需要的依赖。
pacman -Ssq 关键字: 在仓库中搜索含关键字的软件包,并用简洁方式显示。
pacman -Qs 关键字: 搜索已安装的软件包。
pacman -Qi 软件名: 查看某个软件包信息,显示软件简介,构架,依赖,大小等详细信息。
pacman -Sg: 列出软件仓库上所有的软件包组。
pacman -Sg 软件包组: 查看某软件包组所包含的所有软件包。
pacman -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。
pacman -Scc:清理所有的缓存文件
qemu参数说明
-M -machine的缩写,指定计算机类型
-smp 定义smp系统处理器的个数
-numa 定义numa系统处理器的属性
smp系统:Symmetric Multi Processing对称多处理器结构,所有的CPU共享全部资源,如总线,内存和I/O系统等。多个CPU之间没有区别,平等地访问内存、外设、一个操作系统。操作系统管理着一个队列,每个处理器依次处理队列中的进程。如果两个处理器同时请求访问一个资源(例如同一段内存地址),由硬件、软件的锁机制去解决资源争用问题。所谓对称多处理器结构,是指服务器中多个 CPU 对称工作,无主次或从属关系。各 CPU 共享相同的物理内存,每个 CPU 访问内存中的任何地址所需时间是相同的,因此 SMP 也被称为一致存储器访问结构
numa系统:Non-Uniform Memory Access非一致存储访问结构,NUMA 服务器的基本特征是具有多个 CPU 模块,每个 CPU 模块由多个 CPU( 如 4 个 ) 组成,并且具有独立的本地内存、 I/O 槽口等。由于其节点之间可以通过互联模块 ( 如称为 Crossbar Switch) 进行连接和信息交互,因此每个 CPU 可以访问整个系统的内存 ( 这是 NUMA 系统与 MPP 系统的重要差别 ) 。显然,访问本地内存的速度将远远高于访问远地内存 ( 系统内其它节点的内存 ) 的速度,这也是非一致存储访问 NUMA 的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同 CPU 模块之间的信息交互。
调试选项:
-serial dev 将串口重定向到dev设备
-parallel dev 将并口重定向到dev设备
启动欧拉
镜像默认登录密码: openEuler12#$
qemu-system-x86_64.exe -m 9216 -smp 6 -M q35 -cpu qemu64 -net user,hostfwd=tcp:127.0.0.1:2222-:22 -net nic -hda openEuler-22.03-LTS-SP2-x86_64.qcow2
qemu-system-x86_64.exe -m 9216 -smp 6 -M q35 -cpu qemu64 -net user,hostfwd=tcp:127.0.0.1:2222-:22 -net nic -drive file=tianqing.raw,index=1,media=disk,format=raw -drive file=openEuler-22.03-LTS-SP2-x86_64.qcow2,index=0,media=disk,format=qcow2
对于aarch64类型的虚拟机,还需要执行这一步:
$ find / -type f -name 'edk2*'
/ucrt64/share/licenses/qemu/pc-bios/edk2-licenses.txt
/ucrt64/share/qemu/edk2-aarch64-code.fd
/ucrt64/share/qemu/edk2-arm-code.fd
/ucrt64/share/qemu/edk2-arm-vars.fd
/ucrt64/share/qemu/edk2-i386-code.fd
/ucrt64/share/qemu/edk2-i386-secure-code.fd
/ucrt64/share/qemu/edk2-i386-vars.fd
/ucrt64/share/qemu/edk2-licenses.txt
/ucrt64/share/qemu/edk2-x86_64-code.fd
/ucrt64/share/qemu/edk2-x86_64-secure-code.fd
# 将edk2-aarch64-code.fd文件复制到qcow2镜像文件所在的目录下
$ cp /ucrt64/share/qemu/edk2-aarch64-code.fd .
# 使用如下命令启动虚拟机:
$ qemu-system-aarch64.exe -m 9216 -smp 6 -M virt -cpu cortex-a72 -bios edk2-aarch64-code.fd -net user,hostfwd=tcp:127.0.0.1:222-:22 -net nic -drive file=openEuler-22.03-LTS-SP2-aarch64.qcow2,index=0,media=disk,format=qcow2
# aarch64类型的虚拟机,默认打开的是qemu的虚拟化窗口,需要按下Ctrl+Alt+2切换到串口控制台
修改qcow2镜像的root密码:
|
|
ARM架构的BIOS固件下载地址: https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd
|
|
麒麟v10 aarch64安装踩坑:
|
|
添加数据盘
|
|
提示:如果您需要在 Btrfs 文件系统上创建磁盘映像,可以使用 nocow=on 来减少 Btrfs 的写入时复制功能产生的性能开销 但是,如果您想使用写入时复制(例如,要使用此功能来创建快照或者在虚拟机之间共享快照),请在命令行中省略 nocow 选项
qcow2 是 QEMU 使用的主要磁盘映像格式。其大小可按需增长,仅当虚拟机确实需要磁盘空间时才分配磁盘空间。
qcow2 格式的文件以恒定大小的单元进行组织。这些单元称为簇。QEMU 默认为 64 kB 簇,可以使用cluster_size
选项来指定其他值。
qcow2 映像包含一组表,这些表划分为两个级别,分别称为 L1 表和 L2 表。每个磁盘映像只有一个 L1 表,而根据映像的大小,L2 表可能有很多。
要在虚拟磁盘中读取或写入数据,QEMU 需要读取其对应的 L2 表,以确定相关数据位置。由于为每个 I/O 操作读取该表会消耗系统资源,QEMU 会在内存中缓存 L2 表,以提高磁盘访问速度。
提高硬盘性能
优化器:
- tcg 默认值,QEMU虚拟化的思路是:提取Guest代码,翻译为TCG中间代码,而后翻译为Host代码。相当于实现了一个“中间人”的角色。
- 微型代码生成器(TCG)旨在消除依赖特定版本的GCC或编译器的缺点,并将编译合并到QEMU的运行时任务中。
- 因此,整个翻译阶段由两部分组成:目标代码块(TB)以TCG指令(一种机器无关的中间符号)重写 ,随后TCG为宿主机架构执行编译。
- whpx : Windows Hypervisor Platform,使用这个优化器时会启用hyper-v, -accel accel=whpx,kernel-irqchip=off
- kernel-irqchip=off选项用于解决injection failed问题
- kvm : linux平台专用
调整ext4根文件系统大小
|
|
其他命令
fstrim -a 解决频繁删除文件,底层存储没有释放的问题
LIBGUESTFS_BACKEND=direct virt-sparsify –in-place disk.qcow2
如果ls -lh 和 du -sh 的值不一致,还需要转一下: qemu-img convert -p -f qcow2 -O qcow2 disk.qcow2 disk_new.qcow2
本文发表于 0001-01-01,最后修改于 0001-01-01。
本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。