pve 宿主机挂载虚拟机磁盘镜像

1. 背景 有的时候我们需要修改虚拟机的文件,但是此时虚拟机却因为某些原因无法启动了,比如说虚拟机黑苹果修改了 EFI 导致启动不了,这时我们有什么办法呢,有人说我们添加一个可以启动的 EFI 启动设备再来修改原来 ESP 分区 (即原 EFI 文件系统) 不就好了,诚然,这是一个办法,但我们今天要介绍的是另一个办法,直接在宿主机挂载虚拟机的磁盘分区,就拿黑苹果 EFI 分区为例。 2. Raw raw 格式的磁盘镜像文件可以使用 losetup 虚拟成一个块设备。再使用 kpartx 读取分区表英创建设备映射,从而可以从设备挂载到宿主机: 2.1 挂载 安装 kpartx apt install kpartx 下面以虚拟机编号为 108 的 disk1 为例子 虚拟块设备 losetup /dev/loop0 /dev/mapper/pve-vm--108--disk--1 读取设备的分区表并创建设备分区映射 kpartx -av /dev/loop0 查看分区映射 ➜ ~ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 1G 0 loop └─loop0p1 253:23 0 1024M 0 part sda 8:0 1 14.6G 0 disk ├─sda1 8:1 1 11....

2024-01-16 · 3 min · 579 words · Linkzz

pve 安装 Bliss OS - Android-x86 并配置显卡直通

1. 前言 我的 这篇文章 中介绍了在 pve 环境中安装 Android-x86 实现 x86 架构的云手机,可惜 Android-x86 的版本停留在了 Android 9.0 ,这个版本的 Android 无法实现音频的串流,scrcpy 的音频串流最低支持到 Android 10 ,无法听到音频的云手机是不完美的,今天我们就来试下另一个 Android-x86 的项目 - BlissOS ,看它是否可解决以上问题,成为真正可用的云手机。 2. 安装 2.1 ROM 选择 简单介绍一下 BlissOS ,它是基于 AOSP 优化定制,集成了很多专为 PC 优化的功能,比 如 Dock,Desktop 模式,兼容 arm 应用,也就是说他的 ROM 定制得更像一个平板系统,而不是原生 AOSP 那样,AOSP 如果作为远程使用,没有触摸屏的情况下还是有很多操作上的不便,但是它定制的版本则很好的解决了鼠标操作的问题,因为它目标就是专为Chromebook、桌面PC、平板等设备优化。 目前官方提供了两个稳定的分支,BlissOS 14 基于 安卓 11 ,另一个 BlissOS 15 基于 Android 12L ,我这里选择了 BlissOS 14。 BlissOS 14 提供了几个 ROM,我们下载带谷歌框架的这个版本: 2.2 显卡加速 Bliss OS 由开源技术构建,内核基于 Linux 所以支持大部分显卡加速,然而由于 Nvidia 专用驱动对很多开源软件的支持问题,BlissOS 仅支持极少的 Nvidia 显卡,我的上篇文章中使用了 VirtualGL 为 Android-x86 提供显卡加速,那个方案是可行的,而且性能也足够,但缺点时没有物理输出,今天我们换个方案,参照 这篇文章 中提取出的核显 vbios ,就能实现核显直通并具有物理输出,我们不仅可以用来当作云手机,甚至可以外接显示器作为 HDPC 使用。...

2023-12-15 · 3 min · 476 words · Linkzz

Tesla P4 - Nvidia 专业卡 vGPU 解决方案体验

1. 前言 之前体验过 intel 的 vGPU 解决方案 Intel GVT-g ,我的古早处理器 i5-10400 还是 intel 很老的gpu架构的 UHD630 分配到一个 Win10 虚拟机使用,哪怕是只分配一个 vm 的情况下性能依然不够看,使用 parsec 1080P H264 串流的情况下帧数无法保证60,这时视频播放就更不用说了,直接GPU占用100%,更不用谈 2k、4k 等高分辨率串流了。早就了解到 Nvidia 的 vGPU方案支持 kvm 平台,而且支持 Windows 和 Linux 客户操作系统,性能较 intel 核显好得多,于是我弄来了这块小小的 Tesla P4。 2. 硬件 这块 Tesla P4 是个单槽半高卡,刚好我的 pve 宿主机剩下一个 x16 的 PCIE 插槽,虽然只有 X4 的速度,但咋对性能没有极致的追求,所以损失一点性能还能接受(主要是穷换不起主板),而且这块显卡最高功耗仅为 75W 无需外接供电,实测无负载的时候功耗仅十几瓦,最惊讶的还是他的价格,仅仅只需300块,这简直就是“年轻人的第一台特斯拉”呀,哈哈。缺点就是其是为了数据中心设计的,没有主动散热,所以我们需要外接一个小小的风扇为其降温,就是图中这个,我多花了50从PDD购入。 拆机安装 内部紧凑的空间,一番折腾终于装上了,这台主机的配置可以在这篇文章中找到。 安装的过程中还有2的小插曲: 我的手在拆机的时候碰到散热器挂彩了(所以一定是要祭点什么吗)。 安装之后开机系统识别不了我的 2 块 PCIE 的 M.2 固态,还以为是这块主板的接口有屏蔽关系,最后发现是因为我打开了 GSM,需要关闭 GSM 才能正确识别 M.2 硬盘。 3....

2023-12-13 · 3 min · 566 words · Linkzz

pve安装Android-x86并配置显卡加速

先看下效果: 可以看到运行很流畅,由于gif压缩小了尺寸,Aida64的信息界面看不清,显卡是virtGL,支持OpenGL,3D加速由宿主机Intel UHD 630提供,最后的游戏演示可看出很流程。 1. 前言 1.1 为什么需要Android 我日常使用的是一个直通了RTX2060s(矿卡)的Win11虚拟机,众所周知,在虚拟机里使用模拟器性能巨差,我试过夜神模拟器,启动慢不说,游戏电竞帧数,连抖音都卡顿明显。所以一个能在Hypevision中运行的安卓系统就是一个很好的选择。 1.2 选择哪一种 现阶段能作为选择的有3种方案: ChromeOS: 首当其冲的就是基于Chromium OS的ChromeOS及其他发行版如国内的FydeOS,这系统号称老电影福音,具有完整的桌面环境并兼容Android应用,可惜对于显卡的兼容性不是很好,而虚拟机能使用3D加速的显卡,除了显卡直通外还有一种就是最近一两年积极维护的VirtualGL,所以ChromeOS在VirtualGL下运行是否可行还得画个问号,后面再折腾。 容器化方案 -Waydroid or Redroid: 第二种方案就是借助容器化cgroups,namespace 等内核技术的容器化方案,这种方案启动快速,可使用宿主机硬件资源,也能使用宿主机GPU进行3D加速, 但是对于Nvidia的显卡兼容性很差。运用pve创建一个lxc容器来运行docker redroid容器也能运行,后续折腾一下这个方案。 Android-x86: Android-x86 在AOSP的基础上增加x86平台的支持,可通过native-bridge转义arm指令从而运行arm应用,同样称为老电脑福音,GPU兼容性较好,兼容VirtualGL ,今天我们就来在pve中尝试一下这个系统有什么妙处。 2. 安装Android-x86 2.1 镜像下载 打开Android-x86 官网,官网提供了2个下载分流,按需选择,我这里选择SourceForge 共有一下版本: 最新版本Release 9.0 基于Android 9.0 Pie,也是下载次数最多的版本,我们选择此版本。 选择 64 位ISO版本 2.2 创建虚拟机 创建虚拟机 选择刚才下载的镜像 选择 q35 机型和 OVMF 安装,显卡选择VirGL GPU VirGL GPU 需要宿主机有有效的render节点设备,也就是说你的显卡需要正确的驱动了才能运行,通过ls /dev/dri 查看是否有 render* 字样。 存储给到32G即可,如果需要安装大型游戏可以给多一点。 安卓比较依赖CPU资源,如果运行的是arm应用更需要CPU的转译,所以这里给到 10 vCPU 。 内存给到 8G Android-x86做了虚拟机的兼容,所以这里网卡选择效能最高的 VirtIO 。 点击完成之后选择“硬件” -> “添加音频设备”, 后端驱动器选择 “无”...

2023-11-23 · 2 min · 300 words · Linkzz

pve环境10代i5-10400核显直通

1. 背景 3年前,怀着不折腾不舒服斯基的心情,我按当时最新的硬件(大概)组了一台All in One主机,这这台主机拥有当时最为先进的14nm+++工艺的CPU i7-10400和性能遥遥领先的UHD630核显,我当时的想法也很普通,就是集家庭透明网关、NAS、Linux开发机、Windows娱乐机、以及Linux Docker服务器于一身的超级家庭数据中心,下面看下我当时所选的硬件: 类别 项目 价格 CPU i5-10400 – 主板 华擎B-460M钢铁传奇 – 内存 酷兽8G * 4 = 32G – SSD 三星980 1TB – SSD 爱国者 128GB – HDD 希捷酷狼4TB * 2 – 机箱 先马趣造 – 散热 九州风神 – 当时我选配的时候正值挖矿潮,显卡是没想法的,只当一个服务器用,这其中Windows娱乐机的需求一开始没有显卡加速,使用起来确实无法胜任我的需求,我希望的是这台机器能24小时开机,能浏览网页,能流程播放h265视频。但很显然只依靠CPU模拟的显卡是无法完成以上工作的,于是就想到了直通核显到Windows客户机,然而当时针对10代的直通教程真是少之又少,爬了很多帖子之后只能做到直通安装Ubuntu并拥有hdmi输出,Windows则不是hdmi黑屏就是显卡驱动Code 43,后来矿难入了一张2060s之后直通用来打游戏,核显就只是用来为jellyfin提供硬件解码加速,直通核显这事就一直搁浅了。而今折腾之心渐起,而今itel也早已经更新到了14代酷睿,igpu性能也较10代大幅提升了,早先的10代直通恐怕也很多大佬已经研究透彻了,而且我平时用的一个Windows虚拟机主要使用微软的RDP远程桌面,没有GPU加速下看视频内容实在是难以忍受,于是开始了新的爬帖之旅。果然,10代直通的中文内容也多了起来,也有很多人做成了直通并显示hdmi接口内容,于是就有了今天的文章。 2. BIOS准备 这里参考pve官方Wiki内容,需要BIOS设置好直通所需的技术: 2.1 启用VT-d 启用CPU虚拟化,启用vt-d(直通必备) 2.2 启用CSM 启用CSM并将所有启动项设置为"仅传统" 待会创建的虚拟机将使用legacy启动模式直通,若不开启DP接口和hdmi接口将无法输出画面,而且如果你是先用pve的默认显示安装完Windows再安装核显驱动,然后再添加核显的pci设备,启动之后核显还是无法驱动的,会报错“代码43”,除非你有一个正确的igpu bios文件,有了这个文件的话核显可正常驱动,但是看不到pve的SeaBIOS界面,启动Windows核显驱动正常加载之后可以输出Windows画面,本文最后会介绍提取vbios的方法。 2.3 启用多图形适配器 有些主板BIOS设置的主GPU是PCIE通道的gpu且多图形适配器功能是关闭的,也就是说你的主板PCIE X16的插槽插上显卡之后核显会被屏蔽,需要开启多图形适配器功能(我的主板是这个设置项)并且将主图形适配器设置为“板载”。 3. 宿主机(pve)设置 我的pve环境如下: ➜ ~ pveversion --verbose proxmox-ve: 7.3-1 (running kernel: 5....

2023-11-17 · 3 min · 581 words · Linkzz