Burada ext4 biçimli bir SD kart oluşturmanın bazı belirtilerini görüyorum, ancak kılavuz yok. Bu yakından alakalı soru, bunu yapmanın bir yolu olmadığını gösteriyor, ancak sorumun telefonumun köklü olması farklı.
Kartımı ext4 (GUID bölümleme tablosu) olarak biçimlendirdim; Cyanogenmod telefonum onu monte etti /mnt/fuse/sdcard1
. Aşağıdaki komut dosyasını oluşturarak kartı takmak için buradaki talimatları /storage/sdcard1
uyguladım./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 &
Yeniden başlattım ve bir dosyayı (ES Dosya Gezgini'ni kullanarak) kopyalamaya ve başarısız olan üst dizinine yapıştırmaya çalışıyorum:
/storage/sdcard1/foo/bar.mp3: open failed: EACCES (Permission denied).
Aslında dosyayı gayet iyi oynatabiliyorum, bu yüzden açabiliyorum . FWIW, orijinal bağlama noktasından ( /mnt/fuse/sdcard1
) kopyalamayı denediğimde , biraz farklı bir hata alıyorum:
Failed to copy the file bar.mp3
Cyanogenmod 10.2.0-i9300 ile bir Samsung Galaxy S3 kullanıyorum.
== DÜZENLEME ==
su
ls -l /mnt/fuse
drwxrwxr-x media_rw media_rw 2014-03-04 22:08 sdcard1
Hepsi buydu. sdcard1_real
Bu dizinde yok , bu yüzden betiğin başarısız olduğunu varsayalım?
== EDIT2 ==
Sorun gidermek için komut dosyasını değiştirmeyi denedim. Komut dosyası iyi başlıyor, ancak mkdir "$REALMNT"
hatayla başarısız oluyor /data/local/userinit.sh[6]: : not found
.
== EDIT3 ==
Betiğin çalışmadığını biliyorum, bu yüzden düzeltmek sorumu çözebilir, ancak aşağıdakilerin ilginç olduğunu düşündüm. SD kartımı Linux bilgisayarımda biçimlendirdim ve bazı dosyaları ona aktardım. İşin garibi, izin hataları yalnızca oluşturduğum alt dizinlerde oluşuyor. Bölümün kökünde (üzerinden /storage/sdcard1
) zaten yazma iznim var.
su
kök almak için, terminal içinde. İlk kez yapıyorsanız, telefonda izin verdiğinizi onaylamanız gerekebilir.
echo Script executed > /mnt/fuse/sdcard1/test.log
, bazı hata ayıklama çıktıları eklemek ve çalışıp çalışmadığını kontrol etmek isteyebilirsiniz. Öyleyse, bir önceki son satırı yapın mount -t ext4 /dev/block/mmcblk1p1 "$REALMNT" 2> /mnt/fuse/sdcard1/test.log
ve hata mesajını kontrol edin. Veya görmek elle komut dosyasını çalıştırın: su /data/local/userinit.sh
.
touch
betiğin çalıştığını gösterir. Komut dosyasını el ile yürütmeyi denedim su /data/local/userinit.sh
, ancak bu başarısız oldu. Ben de denedim su echo foo
ve benzer bir hata alıyorum: Unknown id: echo
.
echo
her komutu çalıştırmadan önce çıktı almak için kullanarak daha fazla hata ayıklama bilgisi eklemenizi ve hata çıktısını 2>>
.
ls -l /mnt/fuse/
vels -l /mnt/fuse/sdcard1_real
. Ardından , sonuçları dahil etmek için sorunuzu düzenleyin . Benim tahminim "yanlış dosya izinleri" - ya mount için yafoo/
da karttaki dizin için. Unutmayın, ext4 tam * nix dosya izinlerini destekler. kullanıcı ve gruplar.