由於權限/所有權問題,無法在 Linux Mint 上執行文件
我在 Windows 10 上使用 VirtualBox 6.0.6 在 Linux Mint 中工作。我使用帶有程式環境的 USB 驅動器(Portacle)。它包含一個執行檔 (portacle.desktop)。我發現自己無法執行該文件。總是彈出一個視窗:
The application "portacle.desktop" has not been marked as trusted (executable).
點擊“仍然啟動”或“標記為受信任”沒有任何效果。原來,文件選項“允許將文件作為程序執行”已關閉。但是,當我打開它時,它立即自行關閉。所有者是“薄荷”,更改它會導致“無法更改組。您沒有更改 ‘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
問題是您的 USB 驅動器上的執行檔無法使用目前
mount
選項(這是您自己沒有設置的預設選項)執行。此外,虛擬機 (VM) 中的根/主文件系統沒有足夠的空間來複製文件並在那裡執行它們。因此,您的選擇是:
- 重新掛載您的 USB 驅動器以允許執行文件;和
- 增加您的硬碟空間,以便能夠複製程序及其文件
**ad 1 -**您的
mount
命令顯示 USB 驅動器已安裝在,/media/mint/3424-9F51
並且它包含showexec
阻止執行的選項。在這種情況下,命令mount -o remount,exec /media/mint/3424-9F51
(以 root 身份執行,例如 prepend
sudo
)應該會帶來預期的結果。請注意,文件系統仍然不是 Linux 文件系統,您可能會遇到其他問題,例如文件名區分大小寫。**ad 2 -**為了調整虛擬機中的磁碟大小,您需要
(a) 在 VM 關閉時,使用來自主機的適當命令調整模擬硬碟(通常是“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) 將文件複製到新增加的根/主分區,例如
rsync -uav /media/mint/3424-9F51/real-lisp/portacle-linux /home/mint/
然後在其中找到您的文件
/home/mint/portacle-linux
並嘗試從那裡開始工作。作為 2 (a) 到 (c) 的替代方法,您可以向虛擬機添加一個額外的磁碟並將其用作
/home
分區,從而為 (d) 提供可用空間。這將更容易設置。如果您需要相關說明,請告訴我們。/home
(除非可以“重新開始”,否則您需要複製/移動以前的所有文件。)