为了上班qemubuilder
,我使用guestmount
将图像(base-i386.qemu
)挂载到临时目录(/run/shm/qemu.3430
)上,而不需要root权限。
我正在运行 Ubuntu Precise 32 位。
磁盘映像和空的临时文件夹已经存在:
user@host:/scratch/qemubuilder$ file base-i386.qemu
base-i386.qemu: Linux rev 1.0 ext3 filesystem data, UUID=6d00c1e4-8b63-4bed-89d9-1a28b1dfd9ed (large files)
下列的例子,我尝试运行:
user@host:/scratch/qemubuilder$ guestmount -a base-i386.qemu -i /run/shm/qemu.3430/
warning: Unable to get device geometry for /var/tmp/guestfs.4SXaJV/root
febootstrap-supermin-helper: ext2: parent directory not found: /lib: File not found by ext2_lookup
libguestfs: error: external command failed, see earlier error messages
如果我手动创建图像,我会收到同样的错误:
user@host:/scratch/qemubuilder$ dd if=/dev/null bs=1M seek=1024 of=testimg
[...]
user@host:/scratch/qemubuilder$ mkfs.ext4 testimg
[...]
user@host:/scratch/qemubuilder$ file testimg
testimg: Linux rev 1.0 ext4 filesystem data, UUID=47872462-214b-43ce-8a03-69c4c1572990 (extents) (large files) (huge files)
user@host:/scratch/qemubuilder$ guestmount -a testimg -i /run/shm/qemu.3430/
warning: Unable to get device geometry for /var/tmp/guestfs.R1UkyW/root
febootstrap-supermin-helper: ext2: parent directory not found: /lib: File not found by ext2_lookup
libguestfs: error: external command failed, see earlier error messages
datbite@shadow:/scratch/qemubuilder
我懂了出现相同症状的 bug,但我拥有的版本已将其标记为已修复。
我怎样才能挂载我的图像?
答案1
febootstrap-supermin-helper: ext2: parent directory not found: /lib: File not found by ext2_lookup
有两个地方可以打印此信息:
当 supermin 用尽 /tmp 或 /var/tmp 上的磁盘空间时。
或者当您需要更新设备(仅限于 Debian/Ubuntu)时,您可以这样做:
sudo update-guestfs-appliance
是的,这是一个不明显的内部错误,我们正计划改进该消息:
https://bugzilla.redhat.com/show_bug.cgi?id=965524
并从 Debian 包装中消除了这个陷阱。