여기에 ext4 형식의 SD 카드를 만드는 것에 대한 언급이 있지만 안내서는 없습니다. 이 밀접하게 관련된 질문은 그것을 할 수있는 방법이 없다는 것을 암시하지만 내 질문은 내 전화가 구체적으로 뿌리를두고 있다는 점에서 다릅니다.
내 카드를 ext4 (GUID 파티션 테이블)로 포맷했습니다. 내 Cyanogenmod 전화가에 설치되었습니다 /mnt/fuse/sdcard1
. 여기 에 /storage/sdcard1
다음 스크립트를 작성하여 카드를 마운트하는 지침을 따르 십시오 ./data/local/userinit.sh
#!/system/bin/sh
REALMNT=/mnt/fuse/sdcard1_real
if ! [ -d "$REALMNT" ]; then
mkdir "$REALMNT" || exit 1
fi
mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT"
sdcard "$REALMNT" /storage/sdcard1 1023 1023 &
ES 파일 탐색기를 사용하여 파일을 다시 시작하고 복사하려고 시도하여 실패한 상위 디렉토리에 붙여 넣었습니다.
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
실제로 파일을 잘 재생할 수 있으므로 열 수 있습니다. FWIW, 원래 마운트 지점 ( /mnt/fuse/sdcard1
) 에서 복사하려고 하면 약간 다른 오류가 발생합니다.
Failed to copy the file bar.mp3
Cyanogenmod 10.2.0-i9300과 함께 Samsung Galaxy S3를 사용하고 있습니다.
== 편집 ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
그게 전부였다. 더 없다 sdcard1_real
내가 스크립트가 실패 가정하므로,이 디렉토리에?
== 편집 2 ==
문제를 해결하기 위해 스크립트를 수정하려고했습니다. 스크립트는 정상적으로 시작되지만 mkdir "$REALMNT"
오류가 발생하면서 실패합니다 /data/local/userinit.sh[6]: : not found
.
== 편집 3 ==
스크립트가 작동하지 않는다는 것을 알고 있으므로 문제를 해결하면 다음과 같은 내용이 흥미 로웠다고 생각합니다. Linux 컴퓨터에서 SD 카드를 포맷하고 일부 파일을 전송했습니다. 이상하게도 권한 오류는 내가 만든 하위 디렉토리에서만 발생합니다. 를 통해 파티션의 루트에서 /storage/sdcard1
이미 쓰기 권한이 있습니다.
su
루트를 얻으려면 터미널을 입력하십시오 . 처음으로 전화를하는 경우 전화에 대한 권한 부여를 확인해야 할 수 있습니다.
echo Script executed > /mnt/fuse/sdcard1/test.log
, 디버그 출력을 추가하고 실행 중인지 확인할 수 있습니다. 그렇다면 이전-마지막 줄을 mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
만들고 오류 메시지를 확인하십시오. 또는 스크립트를 수동으로 실행하여 다음을 확인하십시오 su /data/local/userinit.sh
..
touch
는 스크립트가 실행 중임을 나타냅니다. 로 스크립트를 수동으로 실행하려고 시도 su /data/local/userinit.sh
했지만 실패했습니다. 또한 시도했지만 su echo foo
비슷한 오류가 발생했습니다 Unknown id: echo
.
echo
명령을 실행하기 전에 각 명령을 출력하고 오류 출력을 2>>
.
ls -l /mnt/fuse/
및을 실행하십시오ls -l /mnt/fuse/sdcard1_real
. 그런 다음 결과를 포함하도록 질문을 편집 하십시오. 내 생각 엔 마운트 나foo/
카드 의 디렉토리에 대한 "잘못된 파일 권한" 입니다. ext4는 모든 * nix 파일 권한을 지원합니다. 사용자 및 그룹.