可以在虚拟盒中的 64 位主机上使用 32 位客户 Ubuntu 虚拟机吗?

可以在虚拟盒中的 64 位主机上使用 32 位客户 Ubuntu 虚拟机吗?

我可以在虚拟机中的 64 位主机 Windows 机器上使用 32 位客户 Ubuntu 虚拟机吗?我可以在 64 位客户 Ubuntu 虚拟机中使用为 32 位 Ubuntu 编译的二进制文件吗?我正在尝试在 VB 中使用 64 位主机 Windows 在 64 位客户 Ubuntu VM 中执行 32 位二进制文​​件,但每次都会收到错误,no such file or directory found即使二进制文件与我所在的目录相同,也会显示错误。这是因为我在 64 位客户 VM 中使用 32 位二进制文​​件,还是因为其他原因?二进制文件所在的文件夹是我与主机 Windows 机器共享的文件夹。那么共享文件夹有什么问题吗?我真的不知道问题是什么?请帮忙,我执行了 ls -l,得到了以下信息:-

raunak@raunak-VirtualBox:/media/base$ ls -l simg*

-rwxrwxrwx 1 root root     278374 Sep 14 15:56 simg2img
-rwxrwxrwx 1 root root       1947 Sep 15 17:39 simg2img.c
-rwxrwxrwx 1 root root       2634 Sep 15 17:39 simg2simg.c
-rwxrwxrwx 1 root root       5212 Sep 15 17:39 simg_dump.py

我还执行了更多 /proc/mounts 操作并得到以下结果:-

    raunak@raunak-VirtualBox:/media/base$ more /proc/mounts

sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0

proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0

udev /dev devtmpfs rw,nosuid,relatime,size=310192k,nr_inodes=77548,mode=755 0 0

devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0

tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=65892k,mode=755 0 0

/dev/sda1 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0

tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0

tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0

tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0

cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,relea
se_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0

pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0

cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,ne
t_cls,net_prio 0 0

cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_eve
nt 0 0

cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0

cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0

cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpu
acct 0 0

cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0

cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0

cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0

cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0

cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0

systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=25,pgrp=1,timeout=0,min
proto=5,maxproto=5,direct 0 0

debugfs /sys/kernel/debug debugfs rw,relatime 0 0

mqueue /dev/mqueue mqueue rw,relatime 0 0

hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0

fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0

tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=65892k,mode=700,uid=100
0,gid=1000 0 0

gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=
1000,group_id=1000 0 0

/dev/sr0 /media/raunak/VBOXADDITIONS_5.1.6_110634 iso9660 ro,nosuid,nodev,relati
me,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 0 0

/media/base /media/base vboxsf rw,nodev,relatime 0 0



    raunak@raunak-VirtualBox:/media/base$ file simg2img
simg2img: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.8, not stripped

答案1

可以在虚拟盒中的 64 位主机上使用 32 位客户 Ubuntu 虚拟机吗?

  • 是的。
  • 反过来也行得通,但是你需要一个 64 位处理器。
  • 如果不安装支持,则无法在 64 位系统上执行 32 位文件(反之亦然)。这称为多架构。

我每次都会收到一个错误,告诉我没有找到这样的文件或目录,即使二进制文件与我所在的目录相同

一般来说,这意味着该文件不是可执行文件。

  • 检查ls -l该文件的设置。

那么文件夹共享有问题吗?

挂载分区时会设置从 Microsoft 文件系统执行。所以是的,这可能是原因。

  • 使用 检查分区的挂载选项more /proc/mounts

如果您需要更多信息,请至少使用上述检查的结果来编辑您的问题,以便我们可以扩展这个问答。

答案2

是的,您可以在 64 位操作系统中使用 32 位客户操作系统。但请记住,要在 32 位操作系统中使用 64 位客户操作系统,您需要支持 64 位架构的硬件。另外,不要忘记将虚拟化 BIOS 设置更改为是。

相关内容