我在 Windows 10 上使用 VirtualBox 6.0.6 在 Linux Mint 中工作。我使用带有编程环境的 USB 驱动器(Portacle)。它包含一个可执行文件(portacle.desktop)。我发现自己无法运行该文件。总是弹出一个窗口:
The application "portacle.desktop" has not been marked as trusted (executable).
单击“仍然启动”或“标记为受信任”没有任何效果。原来是文件选项“允许将文件作为程序执行”关闭了。然而,当我打开它时,它立即自行关闭。所有者是“mint”,更改它会导致“无法更改组。您没有更改“portacle.desktop”组所需的权限”,即使以 root 身份运行也是如此。很多人都曾有过类似问题并在这里询问,他们被告知更改属性/权限。更改权限并没有解决问题。更改所有者(即使是 root)会出现错误:
chown: changing ownership of 'portacle.desktop': Operation not permitted
尝试查看(或更改)文件属性会导致:
lsattr: Inappropriate ioctl for device while reading flags on portacle.desktop
搜索了一下,我发现一些 人们与同样的问题,但他们的解决方案是特定的解决方法,不适用于我的案例。我还尝试将文件从 USB 驱动器移动到主驱动器。除了奇怪的问题(例如文件夹突然被视为 140 TB 大小)之外,ioctl 问题并没有消失,一切都或多或少地沿着相同的路线进行。
文件的完整路径:/media/mint/3424-9F51/real-lisp/portacle-linux/portacle.desktop
输出mount | grep /dev
:
root@mint:/media/mint/3424-9F51/real-lisp/portacle-linux# mount | grep /dev
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1998648k,nr_inodes=499662,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sr0 on /cdrom type iso9660 (ro,noatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/loop0 on /rofs type squashfs (ro,noatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
/dev/sda1 on /media/mint/3424-9F51 type vfat (rw,nosuid,nodev,relatime,uid=999,gid=999,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
输出df
:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1998648 0 1998648 0% /dev
tmpfs 403956 1092 402864 1% /run
/dev/sr0 1927648 1927648 0 100% /cdrom
/dev/loop0 1845760 1845760 0 100% /rofs
/cow 2019772 49900 1969872 3% /
tmpfs 2019772 0 2019772 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2019772 0 2019772 0% /sys/fs/cgroup
tmpfs 2019772 4 2019768 1% /tmp
tmpfs 403952 28 403924 1% /run/user/999
输出free
:
total used free shared buff/cache available
Mem: 4039548 1201060 1581880 158384 1256608 2445112
Swap: 0 0 0
输出du -ks /media/mint/3424-9F51/real-lisp/portacle-linux
:
2496752 /media/mint/3424-9F51/real-lisp/portacle-linux
答案1
问题是 USB 驱动器上的可执行文件无法使用当前mount
选项(这些选项是您未自行设置的默认选项)执行。此外,虚拟机 (VM) 内的根/主文件系统没有足够的空间来复制文件并在那里执行它们。
因此,您的选择是:
- 重新安装您的 USB 驱动器以允许执行文件;和
- 增加硬盘空间以便能够复制程序及其文件
广告 1 -您的mount
命令显示 USB 驱动器已安装在,/media/mint/3424-9F51
并且它包含showexec
阻止执行的选项。在这种情况下命令
mount -o remount,exec /media/mint/3424-9F51
(以 root 身份运行,例如 prepend sudo
)应该会带来所需的结果。请注意,该文件系统仍然不是 Linux 文件系统,您可能会遇到其他问题,例如文件名区分大小写。
广告 2 -为了调整虚拟机中的磁盘大小,您需要
(a) 在虚拟机关闭时使用来自主机的适当命令调整模拟硬盘(通常是“qcow2”文件)的大小,例如
qemu-img resize /var/lib/libvirt/images/linux_mint.qcow2 +2GB
(再次以 root 身份运行,替换您的文件名)这将添加 2 GB 虚拟硬盘空间。您至少需要 2496752k-1969872k(略高于 514 MB)来复制文件,但这样硬盘就会满了;如果您想在将来使用该程序、保存文件并更新系统,请至少多使用 1 GB,甚至可能更多,如 10 GB。
(b) 再次从虚拟机外部调整模拟硬盘的系统分区大小。由于我不明白 VM 中不寻常的分区设置(/cow
显然是在模拟 DVD 上的覆盖文件系统),因此需要更多的工作来弄清楚。
(c) 调整我们刚刚调整大小的分区上的文件系统的大小 - 这同样取决于您的设置
(d) 将文件复制到新增加的 root/home 分区,例如
rsync -uav /media/mint/3424-9F51/real-lisp/portacle-linux /home/mint/
然后找到您的文件/home/mint/portacle-linux
并尝试从那里开始工作。
除了 2 (a) 到 (c) 之外,您还可以向虚拟机添加额外的磁盘并将其用作分区/home
,从而腾出空间来继续执行 (d)。这会更容易设置。如果您需要这方面的说明,请告诉我们。 (您需要复制/移动以前的所有文件,/home
除非可以“重新开始”。)
答案2
这可能会晚一天并且少一美元。但是,我在 Mint 19.3 上遇到了类似的问题(“允许将文件作为程序执行”已关闭。但是,当我打开它时,它立即自行关闭。)它在尝试运行 .jar 程序时发生我的USB。我解决这个问题的方法是将 .jar 程序从 USB 复制到我的 Documents 文件夹。当我点击它时它立即执行。希望这可以帮助。