FAT USB sürücüsünden nasıl dosya yürütebilirim?


12

USB sürücüme hem Ubuntu hem de Windows (özellikle eToys adı verilen bir program) ile uyumlu olacak şekilde taşınabilir bir uygulama yüklemeye çalışıyorum. Destek zaten her iki işletim sistemi için uygulamada yerleşiktir - etoys.shUbuntu ve etoys.exeWindows için var. Her iki sistemden de okunabileceğinden FAT sürücüsüne kurulum yapmaya karar verdim. Bu Windows için iyi çalışıyor, ancak bir nedenle Ubuntu'da etoys.sh dosyasını çalıştıramıyorum.

Sorun dosyada değil - tüm klasör yerel sabit sürücüye kopyalandığında, uygulama Ubuntu'da harika çalışıyor. Ancak USB'den yürütmeye çalıştığımda, dosyayı bir metin düzenleyicisinde açar.

Daha sonra bir terminalden çalıştırmayı denedim, ancak İzin reddedildi mesajını aldım .

Diğer problemlerle de aynı problemi yaşadım.

USB bellekten bir şeyler yürütmenin kolay bir yolu var mı?


2
İlgili soru burada: askubuntu.com/questions/23108/…
luri

Yanıtlar:


20

FA32 dosya sisteminin sınırlamaları nedeniyle yapamazsınız.

Şimdi, hile yapabilirsiniz:

  1. sh etoys.shyerine çağrı yap./etoys.sh
  2. isterseniz, USB sürücünüzde komut dosyanızı çağıran başka bir komut dosyası bile oluşturabilirsiniz (örneğin, sabit sürücünüzde bulunur):

    #!/bin/bash
    sh /media/USB/etoys.sh
    

Çok teşekkürler! İkinci hile kesinlikle bir seçenektir ve bunu aklımda tutacağım. Alternatif olarak, hem Windows hem de Ubuntu ile çalışıp dosyaları yürütmeme izin verecek başka bir dosya sistemi var mı?
Derek Redfern

Ext2 veya ext3 kullanabilirsiniz, ancak çalışmasını sağlamak için Windows'ta küçük bir yardımcı program yüklemeniz gerekir.

Bu konuda bir soru daha - Ben sabit disk üzerinde bir komut dosyası oluşturma seçeneği ile gitmeye karar verdi ve harika çalışıyor. Ama aynı zamanda .sh dosyası olmayan programlar için komut dosyalarına sahip olmak istiyorum - örneğin, "yürütülebilir (uygulama / x-yürütülebilir)" türü olan Taşınabilir Chromium. Sh kullanımı işe yaramıyor ve ./Chromium hala izin verilmedi. Bunun için kullanılacak başka bir komut var mı?
Derek Redfern

Humm, sanırım hile yapabilirsin: kromu çalıştırmadan önce, çalıştırılabilir hale getirmek için chmod yapabilirsin. Chmod komutu her seferinde çağrılacağından, USB sürücüsünü bir sonraki

Unix izinlerini desteklemediğinden FAT konusunda hiç bir şey yapamayacağınızı düşündüm.
Derek Redfern

8

Cihazın montajı -o mode=<value>çalışmalıdır

mode=value

Tüm dosyaların modunu 0777, orijinal izinleri dikkate almayacak şekilde ayarlayın . Okuma izni olan dizinlere arama izni ekleyin. Değer sekizlik olarak verilir.


1
Bunu fstab içinde ayarlamam gerekir mi?
Derek Redfern

@Bonsi Scott Vfat mode=için seçenek yok , bkz. Mount (8) .
pevik

6

Aslında http://ubuntuforums.org/showthread.php?t=1665289 adresinde sorunu çözen harika bir çözüm buldum .

Temel olarak, komutu çalıştırmak diyor

sudo sed -i -e 's|showexec|\x00\x00\x00\x00\x00\x00\x00\x00|g' /usr/lib/udisks/udisks-daemon

ve bu da showexec seçeneği ile disklerin otomatik olarak takılmasını önleyecektir.

Kendi soruma cevap vermek istemiyorum, ama bu benim için çalıştı ve umarım diğer insanlara da yardımcı olur.

Ubuntu 18.04 için:

sudo sed -i -e 's|showexec|\x00\x00\x00\x00\x00\x00\x00\x00|g' /usr/lib/udisks2/udisksd

3

Sonuçta, mesele o gibi görünüyor udisksile dosya sistemi bağlar showexeciçinde bitmez herhangi bir dosyayı önlenmesi, opsiyon .exe, .batya .comçalıştırılmak üzere.

İlgili bir soru (udisklere özel bağlama seçenekleri nasıl verilir) burada bulunabilir: Verileri anında pendrive'a kaydetmek için nasıl yapılandırılır? udevBunu yapmak için yapılandırmayı kullanabileceğiniz ortaya çıkıyor.

Udiskler için varsayılan bağlama seçeneklerini ayarlamak gerçekten mümkün değil mi? dayalı başka bir çözüm önerir udisks-glue, ancak sonuçta güvendiği için daha az ikna edici görünür udisks, böylece seçenekler ekleyebileceğiniz, ancak bunları kaldıramayacağınız ve özellikle showexecde hala orada olduğu görülmektedir).

Her durumda, bunu ikili bir dosyayı yamalamayı tercih ederim.


2

Gösterilen çözümlerin hiçbiri FAT32 bölümümde çalıştırmak için bir Linux terminal programı olarak yazdığım bir programı almayı söyleyebildiğim kadar işe yaramadı, ancak programın dosya adını .exe uzantısını içerecek şekilde değiştirmek işe yaradı (ipucu için teşekkürler) , yaptığım tek şey, FAT32 bölümünde yürütmeye çalıştığım terminal programı için dosya adını filename.exe olarak yeniden adlandırmak ve daha sonra yeniden takmak, yeniden takmak ve yürütmeye izin vermek için disk izinlerini ayarlamak, sonra dosya adına gidin. exe ve izinlerini ayarlayın ve daha sonra onay işareti eksi geri dönmek yerine yapışacaktı ve ben yol ayarlamak ve terminal istemine ./filename.exe girdiğimde program olması gerektiği gibi koştu ve dosya adı dahil komut satırını gösterir .exe girildiyse de, Ubuntu dosya dizini dosyayı MSDOS / Windows olarak göstermesine rağmen Linux programı olarak çalışır.


1

Bu yüzden çok daha basit (ve daha güvenli bir çözüm) buldum.

USB FAT32'yi biçimlendirmek için gparted kullanın ve sonra aşağıdaki bayrakları ayarlamak için Partition => Bayrakları Yönetin: boot, lba



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.