我有一些虚拟机 . 我想编写一个自动执行以下过程的脚本......
-
它将虚拟机(以linux作为操作系统)安装到某个位置,例如/ mnt / image
-
它修改/ etc / passwd(或等效文件)以更改用户的密码
-
卸载虚拟机
因为,我正在使用libvirt,我有一些虚拟机的qcow2图像 . 要将图像挂载到我的ubuntu上,我使用的是nbd模块 . 以下是我正在尝试的命令:
modprobe nbd max_part=63
qemu-nbd -c /dev/nbd0 image.qcow2
mount /dev/nbd0p1 /mnt/image
它给了我错误:
mount: special device /dev/nbd0p1 does not exist
当我用nbdo替换nbd0p1时,我收到以下错误(虽然我不确定我想要做什么)
mount: you must specify the filesystem type
任何建议,以便可能是什么问题......?
4 回答
检查
/sys/modules/nbd/parameters/max_part
是否具有预期值 . 如果它为0或太低,则内核将无法使用分区/dev/nbd0p1
等 . 如果在运行modprobe
时已经加载了nbd
内核模块(使用不同的max_part
参数),则会发生这种情况 .你可以通过卸载模块并再次修改它来解决这个问题 .
[不是问题的直接答案,而是替代方案]
您可以尝试将qcow2图像转换为raw,然后安装原始图像 .
兑换:
安装:
可能是分区不在MBR的第一个插槽中,还是正在使用扩展分区?检查是否正在创建任何其他
nbdXpY
设备节点,或者在其上运行fdisk
并且p
rint分区表 .我偶然发现同样的问题和相同的错误,但在vdi上
对我来说,解决方案很简单,我刚刚将
nbd0
更改为nbd1
然后:
工作 .
如果这对您有用,请留下评论以及图像类型 .