• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

Файловая система OS Android. Введение.

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#1
Скажем так, проба пера.
И так что же из себя представляют особенности файловой системы OS Android?
Изначально, пользователь аппарата на OS Android видит привычные память аппарата и память карты памяти. Но, установив какой-нибудь из сторонних файловых менеджеров, да еще и с приобретением прав Root, пользователь может столкнуться с тем, что во, вроде бы, находящейся в памяти аппарата папке отоброжаются папки и файлы из карты памяти.
Почму это проиодит?
Очень рекомендую к прочтению Файловая система Ubuntu.
Дело в том, что в файловой системе OS Android нет привычного разделения на диски, как в OS Windows. Тут все находится в одной корневой папке. Все Ваши флеши, карты и т.д. монтируются/прописываются в указанную папку.
Если привести аналогию с OS Windows, то выклядит это примерно так. У Вас есть изначальный диск C выполняющий роль корневой папки. Все последующие подключаемые диски/флешки монтируются/отображаются в указанной папке, находящейся на диске C. Физически, у Вас получается несколько разных дисков, а в файловой системе у Вас только одна корневая папка, к которой в указанных местах подключены Ваши диски/флешки. Причем, монтироваться может как диск/флешка целиком, так и отдельная папка. Сразу скажу, что монтировать папку с немонтированного диска/флешки не получится, его (диска/флеши) просто еще нет в системе.
В OS Android реализовано автоматическое монтирование/подключение дисков/флешек, при этом во встоенных (и большинстве сторонних) файловых менеджерах они отображаются (для удобства пользователя) как отдельные диски/флешки, но, фактически, в файловой систаме они монтируются/прописываются в одну из папок, находящихся в корневой папке.
Теперь о самом монтировании.
В монтировании есть два основных пункта. Это точка монтирования и объект монтирования. Точка монтирования - это указанная папка, в которую монтируется объект монтирования. Объект монтирования - это то, что монтируется в точку монтирования.
Приведу пример, как бы это выглядело на OS Windows. На диске C у меня есть папки Program Files и Windows. В папке Windows я создаю папку Mount и в нее монтирую папку Program Files. Теперь, переходя в папку Windows/Mount/ мне отображается содержимое папки Program Files. При этом, содержимое папки Program Files мне доступно как из самой этой папки, так и из папки Windows/Mount/.
Надеюсь, я достаточно понятно изъяснил свои мысли.
Жду замечаний, комментариев и, конечно, критиков.
 

glax24

Разработчик
Сообщения
2,002
Симпатии
1,489
#2
Приведу пример, как бы это выглядело на OS Windows. На диске C у меня есть папки Program Files и Windows. В папке Windows я создаю папку Mount и в нее монтирую папку Program Files. Теперь, переходя в папку Windows/Mount/ мне отображается содержимое папки Program Files. При этом, содержимое папки Program Files мне доступно как из самой этой папки, так и из папки Windows/Mount/.
Данный пример больше похож на символьную ссылку, а не монтирование. Под монтирование я понимаю, подключение раздела или устройства.
Сами читали?
 

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#3
Под монтирование я понимаю, подключение раздела или устройства.
А в тут нет разделения на разделы/устройства/каталоги. Все они монтируются одинаково. Можно монтировать как физический диск, так и логический диск, так и каталог. В самой файловой системе нет разделения на диски. Есть только дерево каталогов.
Да. Правда давно это было. Пытался изложить наиболее понятным, для неподготовленного пользователя, языком.
 

glax24

Разработчик
Сообщения
2,002
Симпатии
1,489
#4
А в тут нет разделения на разделы/устройства/каталоги.
Можно монтировать как физический диск, так и логический диск, так и каталог.
Попробуйте на ubunte смонтировать в /mnt какой нибудь существующий каталог и сообщите о результатах.
А то что они просто отображаются каталогами это да.
 

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#5
glax24,
Я, конечно, извиняюсь, но я не собираюсь сейчас спорить о принципах монтирования в Linux. Тем более, что я в этом не достаточно подкован. Но, как я уже сказал:
Пытался изложить наиболее понятным, для неподготовленного пользователя, языком.
И как Вы уже сказали:
А то что они просто отображаются каталогами это да
Этого, на мой взгляд, достаточно, для того, чтобы иметь начальное представление об особенностях файловой системы OS Android.
Я просто не знаю, как обычному пользователю по другому объяснить, что тут просто нет никаких дисков/флешек. Физически они есть, а в файловой системе их нет. Т.е. они есть, но не как отдельные диски, а как часть, уже существующей, файловой системы.
Да, манера изъяснения совсем не точная. Но и указанную мной информацию я сам осознал не с первого прочтения. Поэтому и пытался отобразить все на пальцах.
Прошу оценивать данный материал, как вводную информацию. Скажим так, предисловие/подготовительная группа.
Не сочтите это за отказ от критики. Не отрицаю того, что я могу быть не прав. Просто, раз уж пошел разбор полетов, то хотелось бы узнать, что и как нужно изменить. Чтобы и суть сохранить, и в излишние подробности не удариться. Как-никак =введение=.
 

Кирилл

Команда форума
Администратор
Сообщения
13,054
Симпатии
5,659
#6
Ничего не могу сказать про linux и убунту,не пользовался.
Но насчет остального - я лично понял,было интересно.
По тексту - надо бы оформление красиво сделать и картинки залить.
 

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#7
По тексту - надо бы оформление красиво сделать и картинки залить.
Прав таких не имею :(
А какими картинками данный текст можно оформить? Пару скринов с файлового менеджера, да профиль самого робота? Что-то не вяжутся у меня картинки с данным текстом.
 

Theriollaria

Активный пользователь
Сообщения
722
Симпатии
1,018
#8
Прав таких не имею :(
А какими картинками данный текст можно оформить? Пару скринов с файлового менеджера, да профиль самого робота? Что-то не вяжутся у меня картинки с данным текстом.
Соглашусь с glax24. "Монтирование" -совсем не то слово, которое можно было бы употребить к файловой системе Android. Тем более, Вы ScriptMakeR, сами отметили, что монтирование - тоже штука достаточно широкая (физические, логические разделы можно монтировать). Потому просто замените слово "монтировать" другим применительно к Android и все будет хорошо.
 

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#9
Theriollaria,
Статью перерабатываю, вчера на сон грядущий делал. Замечания принимаю. Постараюсь учесть недочеты, но и оставить все простым языком.
 

Theriollaria

Активный пользователь
Сообщения
722
Симпатии
1,018
#10
Theriollaria,
Статью перерабатываю, вчера на сон грядущий делал. Замечания принимаю. Постараюсь учесть недочеты, но и оставить все простым языком.
Либо, если употребляете слово "примонтировать" то уточняйте, что что процесс отличается от классического для линуксоидов. Тогда тоже вопросов и докапываний не будет. Хотя это тоже странно т.к. Андроид, по сути, сам является надстройкой а не полноценной ОС.
 

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#11
Theriollaria,
Хочу еще раз обратить внимание на то, что данный материал нацелен на людей не подкованных в тонкостях и терминах не то что Linux систем, но и любых других ОС в принципе. Я сам не претендую на звание гуру линукса, мне и до уверенного пользователя далеко. Просто, когда человек, не знакомый с некоторыми особенностями данной ФС, вдруг обнаруживает, что содержимое его флешки отображается не только в привычно выделенной флешке, а еще и в трех местах памяти аппарата, возникает вопрос. Как так-то?
 

Theriollaria

Активный пользователь
Сообщения
722
Симпатии
1,018
#12
Theriollaria,
Хочу еще раз обратить внимание на то, что данный материал нацелен на людей не подкованных в тонкостях и терминах не то что Linux систем, но и любых других ОС в принципе. Я сам не претендую на звание гуру линукса, мне и до уверенного пользователя далеко. Просто, когда человек, не знакомый с некоторыми особенностями данной ФС, вдруг обнаруживает, что содержимое его флешки отображается не только в привычно выделенной флешке, а еще и в трех местах памяти аппарата, возникает вопрос. Как так-то?
Тогда, как вариант,:


Если привести аналогию с OS Windows, то выглядит это примерно так. У Вас есть изначальный диск C выполняющий роль корневой папки. Все последующие подключаемые диски/флешки отображаются в указанной папке, находящейся на диске C. При этом, физически, у Вас есть память Android отдельно и отдельно подключаемые устройства.

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

PS: У меня было 2 диска "С:\" и один я стер. Потому что зачем мне 2 одинаковых диска "С:\"?:Biggrin:
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,438
Симпатии
5,293
#13
Поддержу glax24 на счет символьных ссылок (точнее говоря, точек монтирования для каталога) и вставлю еще свои 5 копеек.
Сразу скажу, что монтировать папку с немонтированного диска/флешки не получится, его (диска/флеши) просто еще нет в системе.
Тавтология. Не понятно, что подразумевается. Может, что объекту монтирования еще не назначен идентификатор,
т.к. устройство не было инициализировано или не подключено.
Дело в том, что в файловой системе OS Android нет привычного разделения на диски, как в OS Windows. Тут все находится в одной корневой папке. Физически, у Вас получается несколько разных дисков, а в файловой системе у Вас только одна корневая папка, к которой в указанных местах подключены Ваши диски/флешки.
Все сказанное - очень и очень относительное различие, тем более что:
при этом во встоенных (и большинстве сторонних) файловых менеджерах они отображаются (для удобства пользователя) как отдельные диски/флешки...
Дело в том, что в Windows можно организовать абсолютно такую же иерархию
и даже работать с объектами монтирования напрямую, не подключая их к точке монтирования тома.
Рекомендую для чтения: команда mountvol. Но полный шик начинается с возможности загрузки ОС с виртуального диска VHD,
который можно создать средствами самой системы командами diskpart.
К сожалению, про Linux добавить мне нечего, так как мало знаком.
 

Сашка

Ветеран
Сообщения
4,610
Симпатии
2,348
#14

-SEM-

Активный пользователь
Сообщения
114
Симпатии
99
#15
По первой формулировке тоже как-то запутано, мне показалось. Я понял о чем речь...

А вот скажем, для меня, корневой каталог андроида(с точки зрения школьника) - это бельевая веревка с прищепками)). Можно привесить все что угодно, хоть модули, хоть диски. Причем можно подвесить одну папку как рукава у рубашки - один к веревке, а второй к другой прищепке, на которой уже что-то висит))
 
Последнее редактирование:

Phoenix

Активный пользователь
Сообщения
2,090
Симпатии
2,035
#16
Команды эмулятора терминала Android
один ньюанс
faq
PHP:
Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys  /mnt/sys
:~$ mount --help

Использование:
mount [-lhV]
mount -a [options]
mount [options] [--source] <source> | [--target] <directory>
mount [options] <source> <directory>
mount <operation> <mountpoint> [<target>]

Опции:
-a, --all mount all filesystems mentioned in fstab
-c, --no-canonicalize don't canonicalize paths
-f, --fake dry run; skip the mount(2) syscall
-F, --fork fork off for each device (use with -a)
-T, --fstab <path> alternative file to /etc/fstab
-h, --help display this help text and exit
-i, --internal-only don't call the mount.<type> helpers
-l, --show-labels lists all mounts with LABELs
-n, --no-mtab don't write to /etc/mtab
-o, --options <list> comma-separated list of mount options
-O, --test-opts <list> limit the set of filesystems (use with -a)
-r, --read-only mount the filesystem read-only (same as -o ro)
-t, --types <list> limit the set of filesystem types
--source <src> explicitly specifies source (path, label, uuid)
--target <target> explicitly specifies mountpoint
-v, --verbose say what is being done
-V, --version display version information and exit
-w, --rw, --read-write mount the filesystem read-write (default)

-h, --help display this help and exit
-V, --version output version information and exit

Source:
-L, --label <label> synonym for LABEL=<label>
-U, --uuid <uuid> synonym for UUID=<uuid>
LABEL=<label> specifies device by filesystem label
UUID=<uuid> specifies device by filesystem UUID
PARTLABEL=<label> specifies device by partition label
PARTUUID=<uuid> specifies device by partition UUID
<device> specifies device by path
<directory> mountpoint for bind mounts (see --bind/rbind)
<file> regular file for loopdev setup

Operations:
-B, --bind mount a subtree somewhere else (same as -o bind)
-M, --move move a subtree to some other place
-R, --rbind mount a subtree and all submounts somewhere else
--make-shared mark a subtree as shared
--make-slave mark a subtree as slave
--make-private mark a subtree as private
--make-unbindable mark a subtree as unbindable
--make-rshared recursively mark a whole subtree as shared
--make-rslave recursively mark a whole subtree as slave
--make-rprivate recursively mark a whole subtree as private
--make-runbindable recursively mark a whole subtree as unbindable

For more details see mount(8)
:~$ umount --help

Использование:
umount [-hV]
umount -a [options]
umount [options] <source> | <directory>

Опции:
-a, --all unmount all filesystems
-A, --all-targets unmount all mountpoints for the given device in the
current namespace
-c, --no-canonicalize don't canonicalize paths
-d, --detach-loop if mounted loop device, also free this loop device
--fake dry run; skip the umount(2) syscall
-f, --force force unmount (in case of an unreachable NFS system)
-i, --internal-only don't call the umount.<type> helpers
-n, --no-mtab don't write to /etc/mtab
-l, --lazy detach the filesystem now, clean up things later
-O, --test-opts <list> limit the set of filesystems (use with -a)
-R, --recursive recursively unmount a target with all its children
-r, --read-only in case unmounting fails, try to remount read-only
-t, --types <list> limit the set of filesystem types
-v, --verbose say what is being done

-h, --help display this help and exit
-V, --version output version information and exit

For more details see umount(8).
 

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#17
Что ж. Мысли в слух.
На досуге обратился к гуглу, для разъяснения вопроса. Информации много, но, как на зло, вся она раскидана по разным местам, да еще и на буржуйском языке.
Если хватит мозгов, то соберу все это в одну кучку и постараюсь изложить простым и понятным языком.
В самой файловой системе присутствует множество точек монтирования и симлинков. Плюс, еще не совсем мной осознанная файловая система в пользовательском пространстве (FUSE). Хотелось бы собрать наиболее полную информацию по сабжу, но не перегруженную тех. терминами и понятную простому обывателю.
 

Phoenix

Активный пользователь
Сообщения
2,090
Симпатии
2,035
#18
В моём примере загрузочные файлы монтируются в /mnt , производится настройка, потом отмонтируется обратно в /
Восстановление используя chroot:
Запустите систему с LiveCD/USB и откройте
терминал.
Для этого можно нажать Alt+F2 и ввести команду:

gnome-terminal
Далее необходимо узнать Вашу таблицу разделов. Используйте команду:

sudo fdisk -l
На экран должна быть выведена примерно такая таблица:

/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended

Теперь нужно примонтировать Ваш Linux раздел (здесь это sda1) и еще несколько важных директорий:
>sudo mount /dev/sda1 /mnt
>sudo mount --bind /dev /mnt/dev
>sudo mount --bind /proc /mnt/proc
>sudo mount --bind /sys /mnt/sys

Теперь перейдем в окружающую среду chroot:
>sudo chroot /mnt

Теперь необходимо установить GRUB, используя команду:
>grub-install /dev/sda

Если все прошло успешно, выходим из chroot командой:
>exit

Теперь необходимо отмонтировать разделы:
>sudo umount /mnt/dev
>sudo umount /mnt/proc
>sudo umount /mnt/sys
>sudo umount /mnt

Если Вы монтировали раздел /boot воспользуйтесь командой:
>sudo umount /mnt/boot

Затем перезагрузим Ваш компьютер командой:
>sudo reboot

При необходимости Вы можете обновить меню загрузчика командой:
>sudo update-grub
p.s. imho То есть это делается для разблокировки работающих файлов и устройств, так как иначе они будут не доступны на изменение.

mount --bind
Команда mount с ключом --bind или с коротким ключом -B применяется в системах на ядре Linux (начиная с 2.4.0) для создания синонима каталога в дереве файловой системы. К примеру, команда:

mount --bind /mnt/cdrom/Files /var/ftp/cdrom

позволит обращаться к файлам из /mnt/cdrom/Files через путь /var/ftp/cdrom, где /var/ftp/cdrom — некий уже существующий (возможно, пустой) каталог (его настоящее содержимое будет недоступно до момента размонтирования). Можно также вместо отдельной опции --bind написать -o bind, что будет иметь аналогичное действие. Также это позволяет добавить правило в файл /etc/fstab для монтирования при старте системы:
 
Последнее редактирование:

ScriptMakeR

Клуб переводчиков
Сообщения
1,445
Симпатии
515
#19
Phoenix,
Дело в том, что в Вашем примере идет речь про восстановление загрузчика Linux. К Android данная информация относится весьма относительно. Извиняюсь за тавтологию :)
Там все ох как интересно. Но, постепенно, в голове складывается более менее осознанная картинка. Мешает то, что его версий ужасно много. И так же, ну или почти так же, много вариаций монтирования основных разделов. Есть между ними много общего, но некоторые особенности могут кардинально отличаться. Каждый производитель изгаляется как хочет.