Андроид не видит ext4

ext4 на внешней sd карте

Перешил свой телефон прошивкой с андроидом 4.x (не помню, лень смотреть, да и не суть). Понадобилось мне в один из каталогов залить 83 тысячи файлов. Но ФС обломала. Посмотрел форматирование sd карт — и основная и дополнительная расфрматированы как vfat.

Хотелось бы дополнительную форматнуть в ext4 что бы обойти ограничение по максимально допустимому количеству файлов в каталоге. Вот собственно и вопрос: сможет ли телефон с этим работать нормально?

Ну и в качестве дополнительной инфы. Рутовый доступ есть, ssh-сервер на телефоне поднят, midnight commander по ssh функционирует более-менее приемлемо (если не трогать NumPad).

Я пробовал, телефон-то работает нормально, sdcard видит, и даже монтирует как надо, но вот программы андроидовские не видят данные расположеные на ext4 sdcard. Допустим, я вот хотел установить apk, который лежал на ext4, у меня выдало ошибку. Может это потому что у меня старая версия — 2.3.7, но я чето сомневаюсь что на >4.0 ситуация лучше будет.

но вот программы андроидовские не видят данные расположеные на ext4 sdcard

пробовал искать причину?

а у меня тел вообще не видит карты в ext2/4

Менял права, толку нет.

Понадобилось мне в один из каталогов залить 83 тысячи файлов. Но ФС обломала.

размер кластера поменяй

Может, не так менял. Может, там еще acl какой-нибудь.

А как это поможет? Внешняя карта 32Gb, залить нужно 500 меров, свободного места валом.

Вероятно тебе придется использовать sdcardfs и монтировать карточку вручную, где-нибудь в init скриптах/конфигах. Вот тут я писал про костыль на для похожей темы: Android 4.4 Как поменять внутренний (/data/media) и внешний накопители? (комментарий)

Напиши потом, получилось ли чего и как.

у тебя ограничение не по свободному месту, а по количеству кластеров наступает, т.к. файлов слишком много (файл минимум один кластер занимает). сделай размер кластера поменьше. я уже не помню цифр по умолчанию, но кол-во кластеров точно можно в несколько раз увеличить. опция -s в mkfs.vfat

Напиши потом, получилось ли чего и как.

Честно говоря, стремно пока. Нет второй пустой sd-карты, если запорю, перепрошиться не получится.

Эмм, а журнал как вырубишь? ext4 в принципе понятная для андроида фс, но бубном наверное придется встряхнуть.

В общем — любопытство взяло верх 🙂 Убил вечер на разборки. Результат отрицательный.

Ну и подробности (у меня CyanogenMod 10.1.2):

* карту получилось разбивать и форматировать с помощью приложения AParted

* телефон видит карту если только первый раздел карты vfat, иначе нужно править монтирование в /data/local/userinit.sh

* swap раздел монтируется и работает нормально (но из автомонтирования я это убрал — говорят карта убивается достаточно быстро за счет множественного I/O, оставил «на всяк случай», на телефоне 512 оперативы)

* exFAT форматированием получить можно, использовать нельзя — с CyanogenMod 10.1.2 поддержки этой ФС нет

* перепробовал ext2,ext3,ext4 — форматируется и монтируется, но самое досадное — при копировании файлов > 85-200Mb выскакивают рандомные ошибки записи (где логи посмотреть. )

* вернулся к vfat (29Gb) + swap (3Gb) все работает нормально

Ну и еще вопрос тем, кто пробовал пользоваться — имеет ли смысл CM 11 пробовать, как там с ext2/3/4 и exfat?

Источник

Как подключить внешний диск ext4 на Android и сделать его доступным для всех приложений

Я написал следующую оболочку script:

После выполнения приведенных выше команд монтируйте отчеты:

Я работаю через ssh удаленно, используя корневой демон ssh/sftp, и во время входа в систему с правами пользователя root я могу перечислить файлы в /storage/emulated/sda1 .

Из того, что я понимаю, андроид не зависит от регистра в отношении файловых систем по дизайну, поэтому файловая система должна быть сплавлена.

Проблема в том, что я вижу пустой каталог в /data/media/sda1 . Еще страннее то, что если я перейду к /storage/emulated/sda1 с устройства с правами root с помощью bash оболочки X, я также вижу пустой каталог.

Я пробовал другие другие приложения, и я попытался использовать sdcard_rw вместо media_rw (с uid/gid 1015 вместо 1023), ничего не работает.

Как заставить ext4 работать для всех приложений на основе Minix NEO X8-H? Использование чего-либо, кроме ext4, не является опцией, накопитель 4TB уже содержит важные данные. Как примечание, sda1 — это всего лишь небольшой раздел размером 1 ГБ.

Я предполагаю, что ваше устройство уходит корнями из того, что вы сделали до сих пор, поэтому не пойдет на это. Хотя я не могу быть уверен, что это ваша проблема, я объясню, как я решил подобную проблему.

Читайте также:  Фейсбук для андроид моя страница

Современные версии android с целью улучшения безопасности устройств теперь используют (несколько наполовину аргументированную) функцию создания монтировок, выполняемых большинством процессов, не видимых для других процессов. Работа вокруг этого разочаровывает специфику устройства, однако, похоже, Minix NEO X8-H использует исходную сборку стиля «vanilla» для android. Поэтому у вас есть хороший шанс использовать StickMount, чтобы установить USB-накопитель, он должен включить глобальную установка USB-устройств с любой файловой системой, поддерживаемой вашим ROM (который должен включать ext4, если вы уже установили его раньше).

Я не тестировал это лично на своем устройстве, поэтому не могу гарантировать, что он будет работать, но имел успех с рядом других устройств Android, поэтому это, безусловно, стоит того, чтобы сделать снимок.

Источник

Android не работает с ext4

Всем здравствуйте! Имею в наличии планшет на Android (без прав суперпользователя), и карта памяти microSD с файловой системой ext4. В файле /proc/filesystems ФС ext4 упоминается: https://ibb.co/YWPQx2n

Но при попытке вставить туда карточку с ext4, она не читается: https://ibb.co/zGmmwd4

При этом на компьютере карточка читается, можно работать с файлами.

Выходит, это намеренное техническое ограничение, а не просто отсутствие драйвера?

P.S. В решении проблемы не нуждаюсь, всегда можно отформатировать microSD на vfat, и перебрасывать файлы. Да, есть ограничение в 4 гигабайта, но такие файлы на планшете мне пока не очень нужны («тяжёлое» кино там всё равно сильно тормозит так, что невозможно смотреть). Просто интересуюсь темой.

Ну выходит так наверное.

Форматируй в exfat/ntfs — не будь фанатиком, у тебя одна жизнь и ext4 того не стоит.

Я в ext4 её чисто для эксперимента отформатировал. Вообще, у меня на microSD в основном FAT, меньше проблем с другими компьютерами.

Вообще, одно дело, когда ext4 не читается в Windows – драйвера нет, но можно и установить, и будет читаться. Другое дело, что в Android, где техническая возможность работать с ext4, судя по всему, есть (только что набрал в терминале команду mount – там даже упоминаются примонтированные файловые системы ext4), но вставленная пользователем карта памяти с ext4 не монтируется. Из чего можно сделать вывод, что ext4 на пользовательских картах памяти там запрещена программно.

А без рута ты все равно не прочитаешь что там за файлы, смысл её монтировать? Вот если бы у ext4 была штатная фича отключения прав доступа, был бы смысл её использовать и поддерживать на флешках.

рутани и установи ядро с поддержкой ext4.
вендор злобная бяка, раз собрал ядро без оной

Ядро должно поддерживать ext4, вот и весь секрет. Для нормальных устройств есть и поддержка nfts и f2fs (включая ядра с xda), для разных Алкателей обычно глухо.

Производитель наверняка считает, что поддержка ext4 может навредить его бизнесу.

Ну сделал ты вывод и что дальше?

набрал в терминале команду mount – там даже упоминаются примонтированные файловые системы ext4

установи ядро с поддержкой ext4

набрал в терминале команду mount – там даже упоминаются примонтированные файловые системы ext4

Ядро должно поддерживать ext4, вот и весь секрет

это не отменяет того, что вендор — злобная бяка)

Интересуюсь, сталкивался ли кто ещё с такой проблемой. Могу понять производителей, не включающих поддержку ext4 в систему. Но включить «для нужд системы» и запретить пользователю — вот это я не могу понять зачем. Возможно, чтобы через SUID не рутовали — но можно ведь монтировать с опциями nosuid (а можно и с noexec). Или же чтобы поднять популярность проприетарных файловых систем, запретив свободные?

Это всем известный факт. Поздравляю что теперь и ты знаешь, что стоковый андроид поддерживает только FAT32. Другие драйвера нужно покупать.

Как минимум это сделано для ограничения размера файла, на карточке. Нужно больше места? — Покупай флагман с больным объёмом внутренней памяти.

ext4 на микросд автоматически не монтируется. гуглусы что-то прое-ли в автомонтировании флешки.
но полноценно работает если вручную через консоль смонтировать. пробовал под андроид 4.2 так что и в последующих думаю та же бодяга.
ставь консоль, бизибокс и монтируй.

А система по твоему на чем на фате стоит? 🙂

А не че что нужно будет купить драйвер?

Вот если бы у ext4 была штатная фича отключения прав доступа, был

+x простому пользователю «нах ненуно». так что 666 всем за глаза. тем более андроид не отработает запуск бинарного линуксового эльфика 🙂 нет в нем ентой функции.

Читайте также:  Кюар код для андроида

местные дурачки не сказали главного:

если монтирование не удается, что нужно смотреть почему конкретно, нужно сообщение об ошибке. возможно ядро записало dmesg (я бы туда посмотрел), возможно есть в logcat (вряд ли)

после сообщения об ошибке будет понятно в чем дело.

возможно ты форматировал в ext4 либо новейшей версии, либо до дефолту включились хитрые опции, но в андройде поддержка не такая полная.

попробуй выяснить почему и попробуй форматировать флешку еще раз.

если ты говоришь, что на устройстве есть примонтированные разделы ext4, то она, вероятно, поддерживается.

тебе нужно точно узнать, что не нравится драверу ext4 в телефоне, вполне возможно, что там мелкая проблема типа того, что ты форматировал по дефолту с metadata checksums, но в телефонной версии ext4 оно не поддерживается.

не пробовал с карты памяти но тот же «/bin/su» это что по-твоему АПКшка? Да и все бинари бизибокса.

местные дурачки не сказали главного:

То что ты написал даже для дурачков выглядит слишком глупо. Но для твоего диагноза норм. Валяй еще.

А зачем тебе ext4, а не f2fs, к примеру? Но я подозреваю, что и последняя не поддерживается твоим устройством.

Вдогонку по теме. Отсутствие поддержки ext4 в андроиде в кишках, это решение гугла а не вендора. Проблема в юзерспейсе. Установка бизибокса позволяет монтировать руками, но по умолчанию монтироваться не будет, чтобы все было зашибись, нужно патчить AOSP в куче мест. У меня телек (старый, не андроид и не смарт) монтирует ext3/ext4 прекрасно (видать недосмотр производителя), а свежайший андроид старательно сопротивляется. Причем в нем гораздо проще завести то, что использует fuse, чем штатные файлухи. Та же проблема с NFS, например. Короче для нехомячкового использования андроида необходим рут. А если тебе это все не надо, то зачем спрашиваешь?

стоковый андроид поддерживает только FAT32. Другие драйвера нужно покупать.

Это какая-то чушь. Я не большой специалист по андройду. Но вообще в разное время андройдом поддерживались yaffs, f2fs, ext4. ext4 корневая ФС на некоторых аппаратах.

стоковый андроид поддерживает только FAT32. Другие драйвера нужно покупать.

Нет, вендор не «покупает другие драйвера». Драйверы ФС — или идут в aosp, или под открытыми лицензиями или вендор вообще пишет драйвер ФС сам (как samsung), платит он как раз так за FAT. Т.е. ты всё перепутал.

ext4 на микросд автоматически не монтируется. гуглусы что-то прое-ли в автомонтировании флешки.

Я не очень разбираюсь в андройде и не пользуюсь им. Но вот у меня тут аппарат, который сам автоматически монтирует sd-карту форматированную в ext4. По крайней мере каждый раз, когда я его включаю, она подмонтирована и мне ничего не приходится для этого делать.

Т.е. видимо это зависит от модели телефона, т.е. от прошивки. В твоем устройстве не работает, в моем работает.

Слушай-ка, клоун. Вообще-то я единственный, кто в этом треде дал ОПу технически корректный, достоверный совет, куда посмотреть в чем может быть проблема и как попробовать это узнать. Кроме того, я дал ему ценную наводку. И это несмотря на то, что я в андройде разбираюсь слабо и не пользуюсь им практически.

Ты же на протяжении всего треда несешь откровенную чушь и просто засоряешь собой тред.

Раз уж ты так опозорился, то тебе, некомпетентному клоуну, стоит извиниться передо мной или просто молча уйти из треда, а лучше и с лора.

Попробуйте ради эксперимента на карте отключить metadata_csum и 64bit:

Не специалист по андройду, но не опнимаю, почему речь сразу про busybox.

Во-первых, на аппарате должен быть toybox или toolbox и наверняка mount является его частью. Я даже не исключаю, что андройдовский init от него зависит.

Во-вторых, busybox плохо дружит с android. Официально он не поддерживается (хотя какие-то сломанные defconfig под android у них были).

Реализция автомонтирования sd такая. Там принудительно fat32 в параметрах. Без root’а никак не исправить.

Я именно на это ОПу намекал выше, глянуть в dmesg и посмотреть что драйверу не нравится. Возможно он форматирует с ext4 metadata checksums.

А что за девайс? Сама система на какой фс установлена? Обычно большинство стоит на ext4.

во-первых в стандартной поставке андроида вполне естественно отсутствуют многие системные консольные команды, операционка рассчитана на пользовательское использование.
да и предлагаемые системные функций представлены через интерфейс виртуальной джава-машины, т.е. консольные команды в apk использовать нет необходимости. поэтому они инсталируются в систему через бизибокс.

во-вторых бизибоксу глубоко начхать на то что стоит андроид-оболочка вместо линуксовых иксов, она работает с апи линукс-ядра. а стандартные апи линукс-ядра вполне естественно гуглусами не корежились.

Читайте также:  Create your own android

попробуй из интерфейса андроида запустить какой нить бинарный исполняемый файл — нипалучитца, такой вариант запуска в граф.оболочке не поддерживается.

в ядре линукса в андроиде полноценная поддержка ext4. системные разделы как раз в ext4 и работают. не поддерживается автомонтирование флешки с ext*.

а можно рецептик как разблокировать ехт4 в автомонтировании флешки ??

в ядре линукса в андроиде полноценная поддержка ext4.

Да что ты споришь-то если не знаешь? Умничаешь просто?

Драйвер и возможности «ext4» меняются. Кроме того, ядро Linux != ядро Android. Оно, во-первых, модифицированное, во-вторых всегда отстаёт. У многих ФС есть версии и есть доп. возможности. Там либо урезанный, либо просто старый ext4 драйвер. И формат metadata checksums скорее всего одна из тех вещей с которой он работать не может. На что я сразу же намекнул, а потом Mike_RM высказал то же предположение.

системные функций представлены через интерфейс виртуальной джава-машины

Ты хочешь сказать, что toybox mount дергает джавовские системные сервисы? Вот это новости.

т.е. консольные команды в apk использовать нет необходимости. поэтому они инсталируются в систему через бизибокс.

Нде. Ты дурак что ли? ОП же русским язком сказал, что у него на устройстве есть mount .

Чего ты заладил со своим busybox ? Я тебе о том, что mount есть в toolbox / toybox , т.е. busybox ОПу для этого не нужен.

На андройде вообще с busybox проблемы.

dmesg нужный ОПу, чтобы попытаться понять, почему оно не монтируется — тоже часть toybox и наверняка он тоже есть.

Если у тебя есть реальные аргументы в пользу того, что уже имеющийся mount ОПу с данной проблемой не подойдет или он в чем-то плох — приведи их. Вдруг я ошибаюсь в чем-то. Я же говорю, я не специалист по андройду.

Короче, в этом треде собралось немало дебилов, которые вместо того, чтобы _отладить_ проблему пытаются умничать и несут чушь.

ядро Android = Linux, как бы они его не урезали и блобировали. Драйвер скорее всего не при чем и использование фат для карты определяется, тем что так было заведено с незапамятных времён и кому-то что-то менять с дефолта не хочется.

Android = Linux, как бы они его не урезали и блобировали.
Драйвер скорее всего не при чем

Еще один самоуверенный профан.

Включи adoptable storage, тогда она карта памяти будет в ext4 автоматически.

Я не большой специалист по андройду. Но вообще в разное время андройдом поддерживались

Ты перепутал чистый андроид и андроид патченый вендорами

Нет, вендор не «покупает другие драйвера».

Какие вендоры? Я говорил о конечном пользователе. Если у тебя в телефоне нет дров на ntfs, extfat, ты их можеш купить сам, чтобы не рутовать телефон. У парагона есть к примеру.

Клоун тут только ты. Который морозит дикий бред не имеющий отношения к теме, как бредогенератор, лиш бы слова к теме относились. Без рута у тс ничего не получится.

4.2. Опы спят или я нипонил?

Тебя можно было ты ткнуть мордой в твою некомпетентность если бы ты хоть что-то относящееся к теме в технической плоскости говорил. Но никаких твоих соображений я вообще не вижу.

Что ты можешь высказать или возразить моим доводам в моем исходном сообщении? Ты же даже никакой позиции по вопросу не имеешь, у тебя даже представления о вопросе нет. Против чего ты умничаешь?

Ты утверждаешь, что в природе якобы не бывает несовместимости ФС и драйвера? Или что драйвер не якобы пишет в dmesg когда отказывается монтировать? Или что на андройде якобы нет dmesg?

О чем ты что умничаешь вообще?

Ты постишь уже которое сообщение, с вопросом в техническом плане вообще не соотносящееся. В чем твой аргумент? Я понимаю, что у тебя уровня интеллекта не хватает чтобы его высказать, ну попытайся хоть прокукарекать его тогда.

Ты некомпетентный малограмотный клоун, твой удел — двор мести.

Сейчас ты можешь только извиниться передо мной и затем закрыть рот. Ты уже достаточно опозорился.

Кстати, раз уж тут речь про ФС на Андроидах, спрошу: как в Андроиде реализовано объединение внутренней флешки и sd-карты, так что система и приложухи видят их единым пространством?

Да мне на тебя насрать. Я писал для тех кто не в теме. Что бы не обращали на твой пост внимания. Можешь и дальше набивать скор этим бредом. А я тебя пожалуй закину в блек лист.

Источник

Оцените статью