Saya mencoba untuk menginstal aplikasi portabel ke drive USB saya sehingga kompatibel dengan Ubuntu dan Windows (khususnya, program yang disebut eToys). Dukungan sudah dibangun ke dalam aplikasi untuk kedua sistem operasi - ada etoys.sh
untuk Ubuntu dan etoys.exe
untuk Windows. Saya memutuskan untuk menginstal ke drive FAT karena itu dapat dibaca dari kedua sistem. Ini berfungsi baik untuk Windows, tetapi untuk beberapa alasan saya tidak dapat menjalankan etoys.sh di Ubuntu.
Masalahnya bukan pada file - ketika seluruh folder disalin ke hard drive lokal, aplikasi berfungsi dengan baik di Ubuntu. Tetapi ketika saya mencoba menjalankannya dari USB, itu membuka file dalam editor teks.
Saya kemudian mencoba menjalankannya dari terminal, tetapi saya mendapat pesan Permission ditolak.
Saya memiliki masalah yang sama dengan executable lainnya juga.
Apakah ada cara mudah untuk menjalankan sesuatu dari stik USB?
sumber
Jawaban:
Karena keterbatasan sistem file FA32, Anda tidak bisa.
Sekarang, Anda dapat menipu:
sh etoys.sh
bukan./etoys.sh
jika Anda mau, Anda bahkan dapat membuat skrip lain (yang terletak di hard drive Anda, misalnya) yang cukup memanggil skrip Anda di USB drive:
sumber
Pemasangan perangkat dengan
-o mode=<value>
harus bekerjaTetapkan mode semua file untuk menghargai &
0777
mengabaikan izin asli. Tambahkan izin pencarian ke direktori yang memiliki izin baca. Nilai diberikan dalam oktal.sumber
mode=
opsi untuk vfat, lihat mount (8) .Saya benar-benar menemukan solusi hebat di http://ubuntuforums.org/showthread.php?t=1665289 yang memperbaiki masalah.
Pada dasarnya, dikatakan untuk menjalankan perintah
dan itu akan mencegah disk dari pemasangan otomatis dengan opsi showexec.
Saya tidak suka menjawab pertanyaan saya sendiri, tetapi ini berhasil untuk saya dan saya harap itu membantu orang lain juga.
untuk ubuntu 18.04:
sumber
Pada akhirnya, masalah ini tampaknya bahwa
udisks
gunung filesystem denganshowexec
pilihan, mencegah file yang tidak berakhir di.exe
,.bat
, atau.com
untuk dijalankan.Pertanyaan terkait (bagaimana cara memberikan opsi pemasangan khusus ke udisk) dapat ditemukan di sini: Bagaimana cara mengonfigurasi untuk merekam data agar langsung di-flash? Ternyata Anda dapat menggunakan
udev
konfigurasi untuk melakukan itu.Apakah pengaturan opsi pemasangan standar untuk udisk benar-benar tidak mungkin? mengusulkan solusi lain berdasarkan
udisks-glue
, tetapi tampaknya kurang meyakinkan, karena pada akhirnya bergantungudisks
, sehingga tampaknya Anda dapat menambahkan opsi, tetapi tidak menghapusnya, dan khususnyashowexec
masih ada).Bagaimanapun, saya cenderung lebih suka untuk menambal file biner.
sumber
Tidak ada solusi yang ditampilkan yang berfungsi sejauh yang saya tahu untuk mendapatkan program yang saya tulis sebagai program terminal Linux untuk dijalankan di partisi FAT32 saya, tetapi mengubah nama file program untuk menyertakan ekstensi .exe berhasil (terima kasih atas tipnya) , yang saya lakukan adalah mengganti nama file menjadi filename.exe untuk program terminal yang saya coba jalankan pada partisi FAT32, dan kemudian un-mount, pasang kembali dan atur disk drive untuk mengizinkan eksekusi, kemudian pergi ke nama file. exe dan atur izinnya dan kemudian tanda centang akan tetap daripada kembali ke minus, dan ketika saya mengatur path dan memasukkan ./filename.exe di terminal prompt program berjalan sebagaimana mestinya dan menunjukkan baris perintah termasuk nama file .exe seperti yang dimasukkan, meskipun direktori file Ubuntu menunjukkan file sebagai MSDOS / Windows itu berjalan sebagai program Linux.
sumber
Jadi saya menemukan solusi yang lebih sederhana (dan lebih aman).
Gunakan gparted untuk memformat USB FAT32 dan kemudian kita Partition => Kelola Flags untuk mengatur flag berikut: boot, lba
sumber
Anda dapat menggunakan
umask=000
mode:Sumber: wiki.linuxquestions.org , bagian "Mount options for fat" di mount (8) .
sumber
Jika sintaksnya bash ...
sumber