FAT USB 드라이브에서 파일을 어떻게 실행합니까?


12

휴대용 드라이브를 USB 드라이브에 설치하여 Ubuntu 및 Windows (특히 eToys라는 프로그램)와 호환되도록하려고합니다. etoys.shUbuntu 및 etoys.exeWindows에 대한 지원은 이미 두 운영 체제 모두에 대해 앱에 내장되어 있습니다. 두 시스템에서 읽을 수있는 FAT 드라이브에 설치하기로 결정했습니다. 이것은 Windows에서는 잘 작동하지만 어떤 이유로 우분투에서 etoys.sh를 실행할 수 없습니다.

파일에 문제가 없습니다-전체 폴더가 로컬 하드 드라이브에 복사되면 응용 프로그램은 우분투에서 훌륭하게 작동합니다. 그러나 USB에서 실행하려고하면 텍스트 편집기에서 파일이 열립니다.

그런 다음 터미널에서 실행하려고 시도했지만 Permission denied 라는 메시지 가 나타납니다.

다른 실행 파일에서도 동일한 문제가 발생했습니다.

USB 스틱에서 물건을 쉽게 실행할 수있는 방법이 있습니까?


2
관련 질문 여기에 : askubuntu.com/questions/23108/…
luri

답변:


20

FA32 파일 시스템의 한계로 인해 할 수 없습니다.

이제 속임수를 쓸 수 있습니다 :

  1. sh etoys.sh대신에 전화./etoys.sh
  2. 원하는 경우 USB 드라이브에서 스크립트를 호출하는 다른 스크립트 (예 : 하드 드라이브에 있음)를 만들 수도 있습니다.

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

감사합니다! 두 번째 치트는 확실히 선택 사항이며,이를 염두에 두겠습니다. 또는 Windows와 Ubuntu에서 모두 작동하고 파일을 실행할 수있는 다른 파일 시스템이 있습니까?
데릭 레드 펀

ext2 또는 ext3을 사용할 수 있지만 Windows에 작은 유틸리티를 설치해야 작동합니다.

이것에 대한 또 다른 질문-하드 드라이브에 스크립트를 작성하는 옵션을 사용하기로 결정했으며 훌륭하게 작동합니다. 그러나 .sh 파일이 아닌 프로그램 (예 : "실행 가능 (응용 프로그램 / x 실행 가능)") 인 Portable Chromium과 같은 스크립트에 대한 스크립트도 갖고 싶습니다. sh를 사용하면 작동하지 않으며 ./Chromium은 여전히 ​​권한을 거부합니다. 이것에 사용할 다른 명령이 있습니까?
데릭 레드 펀

흠, 당신은 그냥 속일 수 있다고 생각합니다. 크롬을 실행하기 전에 chmod를 사용하여 실행 가능하게 만들 수 있습니다. chmod 명령은 매번 호출되므로 다음 번에 USB 드라이브를 삽입 할 때 권한이 부여되지 않는 것은 중요하지 않습니다.

나는 유닉스 권한을 지원하지 않기 때문에 FAT를 chmod 할 수 없다고 생각했다.
Derek Redfern

8

-o mode=<value>작동해야하는 장치 장착

mode=value

모든 파일의 모드를 0777원래 권한을 무시하고 무시하도록 설정하십시오 . 읽기 권한이있는 디렉토리에 검색 권한을 추가하십시오. 값은 8 진수로 표시됩니다.


1
이것을 fstab에서 설정해야합니까?
Derek Redfern

@Bonsi Scott mode=vfat에 대한 옵션 은 없습니다 (mount (8) 참조 ) .
pevik

6

실제로 http://ubuntuforums.org/showthread.php?t=1665289 에서 문제를 해결 한 훌륭한 솔루션을 찾았습니다 .

기본적으로 명령을 실행하라는 메시지가 나타납니다.

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

showexec 옵션을 사용하면 디스크가 자동 마운트되지 않습니다.

나는 내 자신의 질문에 대답하고 싶지 않지만 이것은 나를 위해 일했으며 다른 사람들에게도 도움이되기를 바랍니다.

우분투 18.04의 경우 :

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

3

궁극적으로,이 문제는 것으로 보인다 udisks와 파일 시스템 마운트 showexec에서 끝나지 않는 모든 파일 방지, 옵션 .exe, .bat또는 .com실행할 수 있습니다.

관련 질문 (udisk에 사용자 정의 마운트 옵션을 제공하는 방법)은 다음에서 찾을 수 있습니다. 데이터를 pendrive에 즉시 기록하도록 구성하는 방법은 무엇입니까? udev구성을 사용하여 그렇게 할 수 있음이 밝혀졌습니다 .

udisk에 대한 기본 마운트 옵션 설정이 실제로 가능하지 않습니까? 을 기반으로 한 다른 솔루션을 제안 udisks-glue하지만 궁극적으로에 의존하므로 설득력이 떨어지는 것처럼 보입니다 udisks. 따라서 옵션을 추가 할 수는 있지만 제거 할 수는 없으며 특히 showexec여전히 있습니다.

어쨌든 바이너리 파일을 패치하는 것을 선호합니다.


2

FAT32 파티션에서 실행하기 위해 Linux 터미널 프로그램으로 작성한 프로그램을 얻을 수있는 한 표시된 솔루션은 없었지만 .exe 확장자를 포함하도록 프로그램의 파일 이름을 변경하면 효과가 없었습니다 (팁 덕분) , FAT32 파티션에서 실행하려고하는 터미널 프로그램의 filename을 filename.exe로 이름을 바꾼 다음 마운트를 해제하고 다시 마운트하고 디스크 권한을 설정하여 실행을 허용 한 다음 파일 이름으로 이동하십시오. exe를 사용 권한을 설정 한 다음 확인 표시가 마이너스로 돌아 가지 않고 고정됩니다. 경로를 설정하고 터미널 프롬프트에서 ./filename.exe를 입력하면 프로그램이 정상적으로 실행되고 filename을 포함하는 명령 줄이 표시됩니다. Ubuntu 파일 디렉토리는 파일을 MSDOS / Windows로 표시하지만 Linux 프로그램으로 실행됩니다.


1

그래서 훨씬 간단하고 안전한 솔루션을 찾았습니다.

gparted를 사용하여 USB FAT32를 포맷 한 다음 us Partition => Manage Flags를 사용하여 다음 플래그를 설정하십시오 : boot, lba



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.