Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用qemu-img从原始映像生成VMDK映像时设置UUID。

使用qemu-img从原始映像生成VMDK映像时设置UUID。
EN

Unix & Linux用户
提问于 2020-06-23 05:35:13
回答 1查看 1.1K关注 0票数 1

可以使用这样的qemu-img将原始映像转换为VMDK映像:

代码语言:javascript
运行
AI代码解释
复制
qemu-img convert -O vmdk "$_raw" "$_vmdk"

我知道可以用以下方式设置生成的VMDK映像的UUID:

代码语言:javascript
运行
AI代码解释
复制
VBoxManage internalcommands sethduuid "$_vmdk" "$_uuid"

在用qemu-img转换磁盘时,是否有一种方法可以设置它的UUID (如果该解决方案在FreeBSD上工作的话)?

EN

回答 1

Unix & Linux用户

发布于 2020-06-24 06:29:24

这个答案是从我的头顶,没有测试。如果您测试它,请随时更新答案。

不幸的是,这个问题没有什么背景来解释我们为什么要这样做。从表面上看,我们只需参考undefined并给出答案:不。

但那会很无聊的。相反,让我们做一些疯狂的假设,然后继续做下去。

您所描述的解决方案可以在FreeBSD上使用来自模拟器/qemu-utilsqemu-img和来自仿真器/虚拟盒-ose的vboxmanage。也许这就是你要做的?但是您没有说明为什么这是一个问题(也许只想少使用一个工具?)。

有趣的是,这仅仅意味着:您正在磁盘上使用GUID划分表(GPT)qemu-img并不真正关心磁盘上的内容,而vboxmanage足够好,可以有一个助手函数。

作为磁盘

因此,如果您有/dev/ada0的完整原始副本为ada0.dd (或者仅仅是在Qemu中生成的原始文件),那么您可以将该映像用作虚拟内存磁盘:

代码语言:javascript
运行
AI代码解释
复制
# mdconfig -a -t vnode -u 0 -f /home/johndoe/ada0.dd

这将给我们/dev/md0,这应该是您的完整磁盘。

然后你可以检查一切看起来都很好。

代码语言:javascript
运行
AI代码解释
复制
# fdisk /dev/md0

这张应该和你的旧磁盘一模一样。

代码语言:javascript
运行
AI代码解释
复制
# glabel status

在使用GPT时,您可能更喜欢使用gpart

代码语言:javascript
运行
AI代码解释
复制
# gpart create -s gpt /dev/md0

UUID是使用此命令自动创建的。我不知道它是否真的触及了分区表中的条目。在这种情况下,首先进行备份。也许毁了完整的表格-创建然后恢复?您需要在这里做一些测试。但关键是你现在可以完全访问驱动器。

您也可以使用这种方法挂载文件系统。

作为文件

当我们检查来自维基百科的GUID分区表示意图时,我们被告知,我们在分区表标头中的偏移量56处发现了混合endian中的磁盘GUID。

因此,与其挂载磁盘映像,我们可以简单地将它们视为一组字节。我假设您使用的是512字节扇区,但可能需要对4K扇区进行调整。标头位于LBA 1,我们对偏移量56感兴趣,因此512 + 56 = 568。

代码语言:javascript
运行
AI代码解释
复制
$ hexdump -v -s 568 -n 16 -e '1/1 "%.2x\n"' /home/johndoe/ada0.dd

然后,我们可以简单地更改所需的字节。对于这一点,Hexdump是不够的,您应该看看xxd,它是编辑/vim附带的。乌伊琴可以帮助您生成一个正确的GUID。

如果你沿着这条路走,请注意:

  • 在编写任何东西之前,通过检查签名"EFI部件“使您的脚本重新生效。
  • 请记住,您有标头的第二份副本,也需要更正(通过偏移量32找到它)。

这将是一个有趣的小脚本编写。

我有一个偷偷摸摸的怀疑,你真正想要的是保持原始的原始形象,并在飞行中做事情。我们在一定程度上是因为xxd同时支持stdinstdout,这样我们就可以通过管道输送。不幸的是,qemu-img似乎不支持stdin

那么我们必须在磁盘上有一个文件。实用的解决方案是将原始文件作为备份,并使用新的副本进行修改。这只会增加磁盘空间的成本。

但是当您在FreeBSD上时,您有一种快速的方法来保存磁盘空间,避免复制。您可以将ZFS用于您的优势。只需创建一个新的数据集,就可以放置原始图像文件并执行快照。然后,您可以直接修改文件,但它只会影响已更改的字节(或者更确切地说,影响已更改的扇区)。完成后,可以通过回滚快照来快速恢复这些扇区。

因为我们不想快照所有的东西,所以我们创建了一个特定的数据集

代码语言:javascript
运行
AI代码解释
复制
# zfs create zroot/rawfiles

我们将需要的任何数据放置到/rawfiles中,并为干净的状态创建快照。

代码语言:javascript
运行
AI代码解释
复制
# zfs snapshot zroot/rawfiles@cleanstate

然后,我们可以在潜在的大图像文件中修改几个字节。当我们想回到干净的状态时,我们就会后退。

代码语言:javascript
运行
AI代码解释
复制
# zfs rollback zroot/rawfiles@cleanstate

如果你有空间限制,那么这是一个快速可行的选择。如果你做了这样的事情,那么如果你继续后退的话,要小心比赛条件。

如果将其作为备份“以防万一”,则可以跳过创建单独的数据集,只需执行zfs snapshot zroot@hailmary。如果一切都破裂了,那就只有cp /.zfs/snapshot/hailmary/......

手动

如果你有影响的形象创作过程,我们有一些有趣的选择,以及。

我们可以使用qemu-img创建一个新映像,挂载它并创建GPT (使用一个新GUID)。

代码语言:javascript
运行
AI代码解释
复制
# qemu-img create -f raw VM10G.raw 10G
# mdconfig -a -t vnode -u 0 -f VM10G.raw
# gpart create -s gpt /dev/md0

但是,由于它只是一个文件,所以我们不需要qemu-img

代码语言:javascript
运行
AI代码解释
复制
# truncate -s 10g VM10G.raw
# mdconfig -a -t vnode -u 0 -f VM10G.raw
# gpart create -s gpt /dev/md0

请参阅从头构建可引导的UFS映像

我为什么要展示这个?好吧,也许你在做些什么。然后,我们在FreeBSD:mkimg(1)上有了一个非常巧妙的技巧。

这样您就可以在FreeBSD上创建磁盘映像,它支持QCOW、QCOW2、动态VHD、固定VHD、VMDK和RAW。这意味着您可以直接访问VMDK。

代码语言:javascript
运行
AI代码解释
复制
mkimg -f vmdk -s gpt -b /boot/pmbr -p freebsd-boot:=/boot/gptboot -p freebsd-ufs:=root-file-system.ufs -p freebsd-swap::1G -o gpt.vmdk

示例以FreeBSD为中心,但它使用的是原始分区。因此,如果您将源从原始的完整磁盘映像更改为仅分区映像,则应该有一个可行的路径。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/594587

复制
相关文章
【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样
- 文中的“控件”一词是广义上的说法,泛指包括ToolStripItem、MenuItem在内单个界面元素,并不特指继承自Control类的狭义控件
AhDung
2018/09/13
1.7K0
【C#】使用IExtenderProvider为控件添加扩展属性,像ToolTip那样
[Flutter Widget]Tooltip
在前面的文章中我们讲到了Wrap的用法,介绍了Flutter中的流式布局,在文章的最后让大家实现如下效果:
flyou
2018/10/16
3.2K0
bootstrap tooltip
<!doctype html> <html> <head> <meta charset="utf-8"> <title>联想控股</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.css" rel="stylesheet" type="text/css"> <script src="http://code.jquery.com/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <script> ('[data-toggle="tooltip"]').tooltip() }) </script> </head> <body> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top"> Tooltip on top </button> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right"> Tooltip on right </button> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom"> Tooltip on bottom </button> <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left"> Tooltip on left </button> </body> </html>
用户5760343
2019/07/07
1.4K0
jQuery Tooltip
jQuery Tooltip 插件取代了原生的工具提示框,让它们可自定义,您只需要调整它们的内容、位置和外观即可。
陈不成i
2021/07/23
1.2K0
前端实现tooltip
鼠标悬浮在问号图标上, 下方展示提示文本..tooltip { margin: 8px; padding: 8px; border: 1px solid #CCCCCC; background-color: #F6DBB3; position: absolute; z-index: 2;}.arrow-div { position: absolute; z-index: 3; display: inline-block; border-top: 1
code-x
2022/11/17
1.1K0
ElementUI中动态修改tooltip内容
在博客开发过程中,遇到这样一个需求:随着用户发布文章数量增多,每一类文章的数量在动态变化,需要在tooltip中动态修改文章数量,像下面这张图:
Marigold
2022/06/17
3.7K0
ElementUI中动态修改tooltip内容
扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip
infragistics是全球领先的UI工具和用户体验的专家,Infragistics开发了一系列的炫目的Windows、Web、WPF和Silverlight控件,相信很多人在使用它们。我们现在的项目就在使用Infragistics的Windows Form控件集。虽然这些控件功能强大,也不可能满足你所有的需求,尤其是那些比较苛刻的最终用户的需求。比如,我们最近就接收到这样一个变态的需求:让所以菜单项、工具栏按钮、网格单元的ToolTip以气球式的样式显示。最终,我不得不通过对现有控件的扩展实现这个要求。
蒋金楠
2018/01/16
1.3K0
扩展ToolBarManager、ListView和Grid控件以实现气球式的ToolTip
Angular 自定义指令 Tooltip
Yeah,关注我的读者应该知道,上一篇文章了解 Angular 开发的内容,我们已经概览了 Angular 的相关内容。在自定义指令的部分,我们已经能够实现编写,但是,在实际场景中,我们还需要标准化的管理。
Jimmy_is_jimmy
2022/04/15
1.5K0
Angular 自定义指令 Tooltip
BOOtstrap源码分析之 tooltip、popover
一、tooltip(提示框) 源码文件: Tooltip.js Tooltip.scss 实现原理: 1、获取当前要显示tooltip的元素的定位信息(top、left、bottom、right、width、height等) 2、计算tooltip的位置,是top、left、bottom、right其中一个 3、然后根据计算的位置值,运算出坐标值 4、给tooltip应用坐标值 源码分析: 1、ownerDocument:文档;包含两个对象:<DocType>、documentElement(根节点) 2
sam dragon
2018/01/17
2K0
BOOtstrap源码分析之 tooltip、popover
tooltip(title美化)教程——jquery的特效
浏览器自带的alt和title提示太丑了,所以我们需要美化一下,百度有许多,不过对我们这些小白来说很难。 首先复制下面代码到网站底部: var sweetTitles = { x: 10, y: 20, tipElements: "a,span,img,div ", noTitle: false, init: function() { var b = this.noTitle; $(this.tipElements).each(function() { $(this).m
Youngxj
2018/06/06
5.5K0
CListCtrl实现tooltip信息提示
EnableToolTips(TRUE); m_tooltip.Create(this); m_tooltip.SetMaxTipWidth(500); m_tooltip.Activate(TRUE);
全栈程序员站长
2022/09/09
1.3K0
Bootstrap3 修改tooltip默认的颜色
.tooltip-inner { background-color: #f7df4b; color: black; } .tooltip.top .tooltip-arrow { border-top-color: #f7df4b; } .tooltip.bottom .tooltip-arrow { border
kirin
2021/01/20
1K0
echarts tooltip trigger: 'axis'没有作用
今天在使用echarts3柱形图时遇到一个问题,鼠标略过横轴时没有如期出现提示信息,相关设置如下:
johnhuster的分享
2022/03/28
2.1K0
Flutter基础widgets教程-Tooltip篇
1 Tooltip 一个文本提示工具,帮助解释一个按钮或其他用户界面,当widget长时间按下时(当用户采取其他适当操作时)显示一个提示标签 2 构造函数 Tooltip({ Key key, @required this.message, this.height, this.padding, this.margin, this.verticalOffset, this.preferBelow, this.excludeFromSemantic
青年码农
2020/10/10
9050
Flutter基础widgets教程-Tooltip篇
flask popper对tooltip做美化(flask 38)
<small data-toggle="tooltip" data-placement="top" data-timestamp="{{ message.timestamp.strftime('%Y-%m-%dT%H:%M:%SZ') }}" data-delay="500"> {{ moment(message.timestamp).fromNow(refresh=True) }} </small> <script type="text/javascript" src="{{ url_for('static', filename='js/popper.min.js') }}"></script>
用户5760343
2019/08/13
7840
【Flutter 组件集录】Tooltip 与 Overlay
今天是八月更文的最后一天,带大家看一下 Tooltip 组件的实现,从而引出 Overlay 组件的使用方式。 Tooltip 组件主要的作用是在鼠标悬浮或长按手势下触发消息提示。它继承自 StatefulWidget ,其中必须传入 String 类型的 message ,还有很多其他的参数用于配置。
张风捷特烈
2022/03/18
1.8K0
【Flutter 组件集录】Tooltip 与 Overlay
tooltip.css-2.0文档
只需在页面中引入"tooltip.css"或“tooltip.min.css”文件即可。
用户6167509
2019/09/04
7770
C#-ToolTIp和Popup简单使用
很多时候我们需要做一个提示框,来给用户说明这个元素的作用,比如鼠标移动到哪个元素上面,显示一个弹出框并显示这个元素的相关介绍,想到提示内容,我们很容易想到toolip和Popup,接下来就来分别是用一下这两个控件。
kdyonly
2023/03/03
1.2K0
基于bootstrap3响应式Tooltip提示插件
ggtooltip.js是一款非常实用的基于bootstrap 3.X的jQuery tooltip提示插件。该bootstrap jQuery tooltip插件实用简单,支持在4个方向上像素tooltip信息,支持修改tooltip的背景色、前景色和边框颜色。 该jQuery tooltip插件实用简单,支持在4个方向上像素tooltip信息,支持修改tooltip的背景色、前景色和边框颜色。它的特点有:
小狐狸说事
2022/12/01
1.1K0
基于 HTML5 Canvas 的拓扑组件 ToolTip 应用
ToolTip 效果是网页制作中常见的使用特效。当用户将鼠标悬浮在某个控件上时,ToolTip 显示并向用户展示相应的提示信息;当鼠标离开时,ToolTip 隐藏。一般情况下,我们使用 ToolTip 只是显示一句话或几个字,其实我们还可以展示很多信息。而今天的重点则是通过 Hightopo 的 HT for Web 产品来制作多种样式的 ToolTip。
HT for Web
2020/03/26
1.3K0

相似问题

仅使用XAML切换Button控件的ToolTip

22

控件WPF上的ToolTip

31

C# ToolTip问题

12

ToolTip与Popup (WPF控件)

20

正确更新控件上的ToolTip

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档