Подключение файловых систем. команда mount в linux

Монтирование файловой системы

Для подключения файловой системы к конкретному местоположению (точке монтирования) команда mount используется в следующей форме:

mount имя_устройства директория

После подключения точка монтирования становится корневой директорией смонтированной ФС. Например, смонтировать жесткий диск /dev/sdb1 в директорию /mnt/media можно следующим образом:

$ sudo mount /dev/sdb1 /mnt/media

Обычно при монтировании устройства с распространенной ФС, например, ext4 или xfs, команда mount автоматически определяет ее тип. Однако, некоторые ФС не распознаются. Их тип нужно указывать в явном виде. Для этого используется опция -t:

mount -t тип имя_устройства директория

Чтобы указать дополнительные опции монтирования, используется флаг -o:

mount -o опции_монтирования имя_устройства директория

Можно указать несколько опций, разделенных запятыми (после запятых не должно быть пробелов). Ниже предоставлены основные опции команды

-V — вывести версию утилиты;-h — вывести справку;-v — подробный режим;-a, —all — примонтировать все устройства, описанные в fstab;-F, —fork — создавать отдельный экземпляр mount для каждого отдельного раздела;-f, —fake — не выполнять никаких действий, а только посмотреть что собирается делать утилита;-n, —no-mtab — не записывать данные о монтировании в /etc/mtab;-l, —show-labels — добавить метку диска к точке монтирования;-c — использовать только абсолютные пути;-r, —read-only — монтировать раздел только для чтения;-w, —rw — монтировать для чтения и записи;-L, —label — монтировать раздел по метке;-U, —uuid — монтировать раздел по UUID;-T, —fstab — использовать альтернативный fstab;-B, —bind — монтировать локальную папку;-R, —rbind — перемонтировать локальную папку.

Полный список опций можно получить, выполнив команду man mount.

Монтирование разделов с помощью mount

Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:

sudo mount /dev/sdb6 /mnt/

В большинстве случаев вы будете вынуждены выполнять команду mount с правами суперпользователя, если обратное не указано в fstab (опция монтирования users). Вы можете посмотреть информацию о процессе монтирования добавив опцию -v:

sudo mount -v /dev/sdb6 /mnt/

Если нужно, вы можете указать файловую систему с помощью опции -t:

sudo mount -v -t ext4 /dev/sdb6 /mnt

Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:

sudo mount -t ext4 -r /dev/sdb6 /mnt$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt

Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:

sudo mount -t ext4 -o noexec /dev/sdb6 /mnt

Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT

Вы можете использовать не только имена устройств чтобы выполнить монтирование диска в linux. Для этого можно применять UUID или метки, например, монтирование с помощью UUID:

sudo mount –uuid=”b386d309-05c1-42c8-8364-8d37270b69e0″ /mnt

Посмотреть uuid для ваших разделов можно с помощью команды:

sudu blkid

Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:

sudo mount –label=”home” /mnt/

Вы можете примонтировать одну папку в другую, для этого используйте опцию –bind

sudo mount –bind /mnt/ /media/

Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:

sudo mount ~/file.iso /mnt

Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:

mount

Как смонтировать диск

Общая команда монтирования диска имеет вид:

mount ОПЦИИ УСТРОЙСТВО ДИРЕКТОРИЯ

В ней:

  • ОПЦИИ — опции утилиты mount или опции монтирования
  • УСТРОЙСТВО — блочное устройство или файл образа, который мы хотим подключить к файловой системе
  • ДИРЕКТОРИЯ — папка, где будут доступны файлы со смонтированного устройства

Среди ОПЦИЙ можно указать, например, тип файловой системы или режим только для чтения (по умолчанию монтирование выполняется для чтения и для записи). Существует большое количество опций, некоторые из которых применимы для всех файловых систем, а некоторые из которых специфичны только для определённых файловых систем. Программа mount имеет свои опции, которые относятся к поведению этой утилиты, а также имеются опции, которые относятся к файловым системам, такие опции указываются после -o.

Некоторые опции можно указать любым из этих способов, например, опцию -w, которая означает монтирование для чтения и записи (её псевдонимы —rw, —read-write), также можно указать как «-o rw».

Справочная информация по опциям будет приведена в конце данной статьи.

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

Поэтому обычно для монтирования используется команда вида:

sudo mount /dev/имя_раздела /точка/монтирования/

Допустим, я хочу, чтобы новый диск с именем /dev/sda был подключён (смонтирован) к папке /mnt/disk_d (название папки можно выбрать любое, а точка монтирования необязательно должна быть в директории /mnt/ — можно сделать в домашней папке или в любой другой).

Начинаем с создания директории, в которую будет смонтирован диск:

sudo mkdir /mnt/disk_d

Монтируем диск /dev/sda:

sudo mount /dev/sda /mnt/disk_d

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

sudo chmod 0777 /mnt/disk_d

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

Монтирование с помощью команды mount

Выполнение операции «ручного» монтирования произвольных устройств в произвольные каталоги с помощью команды mount по умолчанию запрещено пользователям, и доступно только администраторам с правами суперпользователя. При этом:

  • участие пользователей в специальных группах floppy, cdrom, disk запрет ручного монтирования не отменяет;

    Участие пользователей в специальных группах cdrom и disk  позволяет этим пользователям выполнять операции чтения/записи на устройствах /dev/srX (приводах оптических дисков) и /dev/fdX (приводах гибких дисков), однако право монтировать эти устройства не предоставляет. Специальная группа floppy используется в Astra Linux Special Edition для разрешения полуавтоматического монтирования.
  • в стандартной таблице монтирования (файл /etc/fstab):

    • присутствует запись, разрешающая пользователям монтировать компакт-диски в каталог /media/cdrom0:

      /dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
    • иные записи, определяющие порядок монтирования пользователями дисковых разделов, отсутствуют;

Команда mount обычно используется в варианте с двумя аргументами:

  1. Монтируемое устройство (источник) — устройство, подлежащее монтированию;
  2. Точка монтирования (цель) — каталог, в который осуществляется монтирование

Если в команде mount указан только один аргумент, то производится попытка найти такую запись в конфигурационном файле /etc/fstab и получить из этой записи второй аргумент. Поиск в файле /etc/fstab выполняется по точному соответствию.

Как узнать имя диска для монтирования

Чтобы смонтировать диск (или файл образа) достаточно указать имя устройства и папку, куда его смонтировать (где будут доступны файлы с этого диска). Как мы уже выяснили, не нужно даже указывать тип файловой системы.

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

Отсюда возникает вопрос, как узнать имя раздела для монтирования? Устройства в Linux имеют имена вида /dev/*. Большинство дисков и USB накопителей имеют имена вида /dev/sd*, где в качестве * (звёздочки) используются буквы от a и далее, то есть b, c, d… Номер буквы соответствует порядковому номеру диска в системе. Если диск разбит на разделы, то после буквы идёт цифра раздела, например, /dev/sda1, /dev/sda2 и так далее. Если диск не разбит на разделы, то его можно смонтировать по имени без цифры, например, /dev/sda. Если же диск разбит на разделы, то нужно указать его имя с цифрой раздела, например, /dev/sda3.

В зависимости от используемой технологии дисков, у них могут быть другие имена. Пример имени диска NVMe: /dev/nvme0n1. В этом случае нумерация разделов также не подчиняется описанным выше правилам, первый и второй разделы имеют имена /dev/nvme0n1p1 и /dev/nvme0n1p2 соответственно.

Итак, необходимо правильно определить имя диска (или имя раздела, если диск разбит на разделы).

Обзорную информацию о дисках в системе может дать команда:

smartctl --scan

Пример вывода:

/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d sat # /dev/sdb , ATA device
/dev/nvme0 -d nvme # /dev/nvme0, NVMe device

Эта команда показала, что в системе есть диски трёх типов: SCSI (внутренний жёсткий диск), , ATA (жёсткий диск, подключённый по USB переходнику к компьютеру), NVMe (внутренний твердотельный диск).

На самом деле, вывод команды неполный (пропущена USB флешка) и в нём полностью отсутствует информация о разделах. Тем не менее она может помочь вам сориентироваться в присутствующих на вашей системе дисках.

Хорошим вариантом является следующая программа:

fdisk -l

Она выводит информацию о каждом диске и каждом разделе. В информации присутствует модель диска, размер и тип разделов — основываясь на этих данных можно найти название нужного раздела.

Если вы всё равно не можете разобраться, то со съёмными носителями (внешними USB дисками и флешками), вы можете поступить так: выполнить команду fdisk -l до подключения диска, затем подключить диск/флешку, выполнить команду fdisk -l ещё раз и посмотреть, какой диск добавился.

Если диск монтируется автоматически, то его имя можно увидеть с помощью команда мониторинга:

findmnt -p

Ещё одна команда, показывающая обзорную информацию об именах дисках, их файловых системах, ярлык и занятое пространство (в процентах) и доступный объём свободного места (в гигабайтах):

lsblk -f

Возможно вы сможете найти полезную информацию в LABEL разделов, чтобы показать сразу все разделы, выполните:

blkid

Если вы уже почти определились с разделом и хотите подтвердить свою правоту, то информацию по конкретному разделу можно получить командой вида:

blkid /dev/РАЗДЕЛ

Пример вывода:

/dev/sdb4: BLOCK_SIZE="512" UUID="CA966DBC966DA9A1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="19fe120d-27b7-40a1-87a0-010d03a2f20e"

Команда file также может рассказать много интересного про раздел:

file -sL /dev/РАЗДЕЛ

Пример вывода:

/dev/sdb4: DOS/MBR boot sector, code offset 0x52+2, OEM-ID "NTFS    ", sectors/cluster 8, Media descriptor 0xf8, sectors/track 63, heads 255, hidden sectors 1323008, dos < 4.0 BootSector (0x80), FAT (1Y bit by descriptor); NTFS, sectors/track 63, sectors 248745983, $MFT start cluster 786432, $MFTMirror start cluster 2, bytes/RecordSegment 2^(-1*246), clusters/index block 1, serial number 0ca966dbc966da9a1; contains bootstrap BOOTMGR

Синтаксис команды mount

Чаще всего такую процедуру выполняют специальные сервисы, входящие в состав оболочки системы. Случаются ситуации, когда они просто-напросто недоступны. Здесь потребуется выполнить задачу ручным методом. Пользователь самостоятельно задает опции для монтирования, вводит различные параметры.

Процесс использования утилиты подразумевает обаятельное применение всевозможных опций, каждая из которых выполняет свою функцию. К примеру, опция «-t» является необязательной, но дает возможность без особого труда задать файловую систему, которая в последующем будет использоваться. Нередко это оказывается весьма полезным.

Специальная опция «-о» позволяет предварительно прописать параметры, которые будут распространяться на монтирование. В синтаксис обаятельно включен адрес файл, по которому расположено само устройство, а также папка назначения.

Перед тем, как приступить к полноценному использованию утилиты «mount», рекомендуется максимально подробно изучить список опций. На самом деле их огромное множество, но чаще всего применяются:

  • «-v». Отображение максимально подробного режима.
  • «-a». Монтируются все требуемые устройства, которые предварительно прописаны в fstab
  • «-F». Создается отдельный экземпляр утилиты для каждого из исследуемых разделов.
  • «-n». Исключается вероятность записи информации о выполняемом монтировании в /etc/mtab.
  • «-f». Исключается вероятность осуществления каких-либо действий. С помощью такой опции можно посмотреть перечень процедур, которые планирует выполнить утилита.
  • «-l». Добавляется специальная метка на диск, которая приравнивается к точке монтирования.
  • «-c». При выполнении команды не использовать относительные пути, а руководствоваться только абсолютными путями (пример – /etc/exim4) .
  • «-r». Создаваемый раздел будет доступен лишь для чтения.
  • «-w». Создаваемый раздел будет доступен как для чтения, так и для записи.
  • «-L». Монтируется раздел с использованием метки.
  • «-U». Монтируется раздел с использованием UUID.
  • «-T». Появляется возможность применения альтернативного fstab
  • «-B». Монтируется раздел в локальную папку
  • «-R». Перемонтируется сама локальная папка.
  • «-h». Вывести справочную информацию.
  • «-V». Параметр покажет текущею версию утилиты.

Представленный выше список опций является неполным. Такие функции основные, чаще всего могут потребоваться пользователю операционной системы «Линукс» во время работы с утилитой «mount».

Включаем автомонтирование, редактируем файл fstab

Прежде чем приступать к редактированию указанного файла, нужно определить точку монтирования раздела. Естественно, для этого раздел или диск сначала нужно будет открыть. Для определения точки монтирования, к примеру, разделов sdc, в терминале выполняем команду mount | grep /dev/sdc и записываем пути сразу после «on».

Вместо этого можно открыть том в приложении «Диски» и посмотреть, куда он примонтирован.

После этого отмонтируйте диски тут же в приложении «Диски» или кликом по иконке монтирования в разделе «Другие места». Впрочем, можно обойтись и без размонтирования.

Теперь в терминале открываем командой sudo nano /etc/fstab конфигурационный файл fstab.

В примере мы использовали команду sudo su -, позволяющую работать с правами суперпользователя без подтверждения выполнения операций. В открывшемся окне текстового редактора nano уже имеются данные монтирования загрузочного тома и свопа, а также комментарии

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

В этот файл нам нужно добавить наши блочные устройства — разделы разного типа, которых для примера мы взяли три: дополнительно созданный на диске sdc своп (sdc1), том Ext4 (sdc2) и том NTFS (sdc5).

Каждый том представлен новой строкой, в которой один за другим следуют:

  1. Блочное устройство <filesystem>.
  2. Точка монтирования <mount point>.
  3. Тип файловой системы <type>.
  4. Параметры монтирования, которых может быть несколько <options>.
  5. Резервное копирование <dump>.
  6. Проверка файловой системы на ошибки <pass>.

Начнем с раздела свопа. Вот так выглядит его строка:

/dev/sdc1           none      swap     sw          0             0

Первая часть строки — это блочное устройство — своп, а так как доступ к свопу не нужен, во второй части прописывается none. Далее указывается тип файловой системы — swap и параметр монтирования (для свопа это sw). Создавать его резервные копии не нужно, в проверке тоже нет необходимости, поэтому в качестве значений dump и pass выставляем . Для отделения параметров можно использовать как пробел, так и табуляцию.

Второй раздел отформатирован в Ext4, его строка выглядит так:

/dev/sdc2           /media/kompik/98a36276-c8d2-47ed-9d70-62e45bbdd71d        auto      noatine                0             2

Вот здесь уже мы указываем точку монтирования, представленную в данном примере этим длинным путем. По идее, следующим пунктом нужно было указать ext4, но мы предпочли auto, поскольку Ubuntu умеет автоматически распознавать тип файловой системы. Что касается параметров options, их много, из которых мы выбрали noatime, тем более, что он лучше всего подходит для SSD-дисков. Резервная копия раздела нам не нужна, поэтому для значения dump выставляем , а вот проверить Ext4 на ошибки следует. Для параметра pass выставляем значение 2, означающее, что раздел будет проверен вторым после корневого, для которого всегда указывается значение 1, за исключением файловой системы BTRFS. Для BTRFS всегда выставляется .

Примечание: значение проверки 2 выставляется для всех прочих устройств, независимо от того, какими по счету они являются.

Наконец, строка раздела с файловой системой NTFS выглядит следующим образом:

/dev/sdc5           /media/kompik/23B7C6C119D80309      auto      default  0             0

Здесь почти всё то же самое, кроме опции default (по умолчанию) и для параметра pass. Pass выполняет проверку файловой системы линуксовой утилитой fsck, использование которой в NTFS не имеет смысла. Поэтому проверку тоже отключаем. Итого получаем следующую картину:

Чтобы сохранить отредактированный файл, жмем Ctrl + X, подтверждаем действие вводом Y и нажатием Enter.

Осталось только проверить, работает ли монтирование.

Возьмем к примеру, раздел sdc5. Для этого тут же в терминале выполняем команду mount /dev/sdc5 без указания точки монтирования.

Хотя мы и не указали точку монтирования, команда была выполнена без ошибки, взяв нужные данные из отредактированного файла fstab. Если бы точка монтирования для устройства /dev/sdc5 была не указана, мы бы получили такую ошибку.

А на этом пока всё.

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

Разделы жесткого диска

Раздел — часть долговременной памяти жёсткого диска или флеш-накопителя, выделенная для удобства работы, и состоящая из смежных блоков. На одном устройстве хранения может быть несколько разделов.

Создание разделов на различных видах современных накопителей почти всегда предусмотрено (хотя, к примеру, на, ныне уже не используемых, флоппи-дисках было невозможно создать несколько разделов). Однако в Windows, с флешки с несколькими разделами будет доступен только первый из них (в Windows принято считать флешки аналогом флоппи-диска, а не жесткого диска).

Преимущества использования нескольких разделов

Выделение на одном жёстком диске нескольких разделов даёт следующие преимущества:

  • на одном физическом жёстком диске можно хранить информацию в разных файловых системах, или в одинаковых файловых системах, но с разным размером кластера (например, выгодно хранить файлы большого размера — например, видео — отдельно от маленьких, и задавать больший размер кластера для хранилища больших файлов);
  • можно отделить информацию пользователя от файлов операционной системы;
  • на одном жёстком диске можно установить несколько операционных систем;
  • манипуляции с одной файловой системой не сказываются на других файловых системах.

Структура диска, разбитого на разделы (MBR)

  • Информация о размещении разделов на жёстком диске хранится в таблице разделов, которая является частью главной загрузочной записи (MBR).
  • Раздел может быть либо первичным, либо расширенным.
  • В первом секторе каждого первичного раздела находится загрузочный сектор, отвечающий за загрузку операционной системы с этого раздела. Информация о том, какой раздел будет использован для загрузки операционной системы, тоже записана в главной загрузочной записи.
  • В MBR под таблицу разделов выделено 64 байта. Каждая запись занимает 16 байт. Таким образом, всего на жестком диске может быть создано не более 4 разделов. Когда разрабатывалась структура MBR, это считалось достаточным. Однако, позднее был введён расширенный раздел, в котором можно прописать несколько логических разделов.
  • По правилам расширенный раздел может быть только один. Таким образом, в максимальной конфигурации на жёстком диске может быть сформировано три первичных и один расширенный раздел, содержащий несколько логических.

Первичный (основной) раздел

Первичный раздел обязательно должен быть на физическом диске. Этот раздел всегда содержит либо одну файловую систему, либо другие логические разделы. На физическом диске может быть до четырёх первичных разделов.
Некоторые старые операционные системы — например, MS-DOS и Windows — могли быть установлены только на первичный раздел.

Расширенный и Логические разделы

Таблица разделов может содержать не более 4 первичных разделов, поэтому были изобретёны расширенный разделы. В расширенном разделе можно создать несколько логических разделов. Логические разделы выстраиваются в цепочку где информация о первом логическом разделе храниться в MBR, а информация о последующем хранится в первом секторе логического раздела. Такая цепочка позволяет (в теории) создавать неограниченное количество разделов, но (на практике) число логических разделов ограничивается утилитами и, обычно, больше 10 логических разделов не создать.

Важно отметить что некоторые версии Windows не могут загрузиться с логического раздела (нужен обязательно первичный раздел), тогда как для Linux никакой разницы в виде разделов — нет, Linux загружается и работает с разделами совершенно независимо от их вида (первичный или логический).

Регистрация учтенных носителей

На компьютерах, работающих с учтенными носителями, использование нештатных сценариев обработки событий, происходящих с устройствами (событий udev) допустимо только в рамках действующих правил безопасности.

Регистрация учтенных носителей выполняется:

  • для локального компьютера — с помощью инструмента fly-admin-smc («Пуск» — «Панель управления» — «Безопасность» — «Политика безопасности» — «Устройства и правила» — «Устройства»);
  • для доменных компьютеров в доменах ALD — с помощью инструмента «Доменная политика безопасности» («Пуск» — «Панель управления» — «Сеть» — «Доменная политика безопасности» — «Устройства и правила» — «Устройства»);
  • для доменных компьютеров в доменах FreeIPA — с помощью web-интерфейса FreeIPA («Политики» — «Политика Parsec» — «Учтенные устройства», подробнее см. Регистрация отчуждаемых носителей при работе с FreeIPA).

Далее рассматривается процедура регистрации учтенного носителя для локального компьютера. Процедура регистрации для доменов ALD в целом аналогична процедуре для локального компьютера.

Для регистрации учтенного носителя:

  1. Запустить инструмент fly-admin-smc:
  2. Перейти в «Устройства и правила» — «Устройства»:
  3. Если регистрируемый носитель уже подключен к компьютеру, то отключить носитель;
  4. Выбрать добавление устройства (иконка с символом «+» в строке иконок или горячая клавиша Ctrl+N):
  5. Подключить носитель к компьютеру:
  6. Выбрать регистрируемое устройство или регистрируемый дисковый раздел. Отображение списка дисковых разделов зависит от того, как отформатирован носитель. Для использованного при написании статьи носителя список дисковых разделов не отображается:
  7. После выбора носителя нажать кнопку «Да», после чего будет отображена форма данных о носителе:
  8. В форме данных:
    1. Закладка «Общие»:
      1. Выбрать наименование носителя (произвольное имя для удобства идентификации);
      2. Выбрать пользователя и группу, для которых регистрируется носитель;
      3. Установить права доступа для пользователя, группы и всех остальных пользователей;
      4. Задать правила идентификации носителя. По умолчанию предлагается идентификация по серийному номеру (параметр окружения (ENV) ID_SERIAL). Серийный номер определяется автоматически;
    2. Перейти в закладку «МРД» и установить параметры конфиденциальности для регистрируемого устройства.:
    3. Перейти в закладку «Аудит» и установить параметры аудита для регистрируемого устройства:
    4. Перейти в закладку «Правила» и указать дополнительные правила, применяемые для устройства (описание работы с правилами см. ниже);
    5. Завершить регистрацию, сохранив введенные данные. Носитель можно отключить от компьютера.
Каждый учтенный носитель должен иметь только одно правило учета. Если для устройства создано несколько записей регистрации, то результаты обработки таких правил не определены.
Созданные правила учета носителей начинают действовать после входа пользователя, для которого учтен носитель, в сессию.

Как узнать имена дисков, как просмотреть все диски в системе

Начать нужно с того, чтобы узнать имя диска, который мы будем изменять. В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows.

Чтобы посмотреть доступные диски, выполните команду:

sudo fdisk -l

Как видно из скриншота, имеется диск /dev/nvme0n1. Затем перечислены два устройства /dev/nvme0n1p1 и /dev/nvme0n1p2. По совпадающему части названия nvme0n1 можно понять, что это разделы, на которые разделён диск /dev/nvme0n1.

Также имеется диск /dev/sda, который не разделён ни на какие разделы — именно его я и буду подключать.

Способ 2: монтирование через имена устройств

Дополнительная информация

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

rw (read-write, чтение-запись) — файловая система будет подключена с возможностью записи на неё пользователями.

Если вы хотите предотвратить любую запись на файловую систему вообще, указание одной только опции ro (read-only, только чтение) вас не спасёт — такие действия, как восстановление целостности системы по записям из журнала, будут проведены при подключении систем, поддерживающих журналирование. При необходимости предотвратить любую запись на файловую систему пользуйтесь другими средствами для монтирования, либо внимательно читайте документацию на утилиту монтирования для соответствующей файловой системы, если она допускает принудительное отключение подобных действий.

  • exec — все файлы на подключемой системе будут считаться исполнимыми, если система не поддерживает других механизмов указания исполнимости файла. Альтернативно, noexec запрещает исполнение любых бинарных файлов вообще.
  • codepage=866 — указывает, какую кодировку использовать для трансляции имён файлов на файловой системе. Кириллическая русская кодовая страница для файловой системы FAT — 866. Длинные имена на файловой системе (VFAT) сохраняются в уникоде, реально эта настройка нужна только для дисков, записанных на отличных от Windows системах, не поддерживающих соглашения VFAT.
  • nls=utf8 — указывает модулю файловой системы, какую кодировку использовать при передаче данных системе (и пользователю). Старое название этой опции — iocharset использовать запрещено — она будет удалена в следующих версиях программы.

Схематично взаимодействие этих двух опций можно представить как:

FS <=charset=> OS <=nls=> Applications <=> Operator

uid (gid) — указывает, какой пользователь (группа) будет владеть точкой подключения (и файлами на ней, если нет других способов определить владельца). gid=plugdev указывает, что все пользователи в группе 46(plugdev) могут обращаться к этому устройству

Локальные пользователи в Ubuntu обычно входят в эту группу.

nofail — если указанный том недоступен в момент загрузки, это не создаст ошибок и загрузка нормально продолжится.
Внимание: настольная (desktop) версия Ubuntu всё равно выдаст предупреждение и будет ждать ввода пользователя.

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

Более подробно о монтировании разделов диска и опций к нему можно узнать из статьи про fstab, а также в статье разделы_и_файловые_системы_linux.

Донастройка системы

Теперь диски стали подключаться автоматически, но так как это делается от имени root, у нас пропала возможность на подключенных дисках давать права на общий доступ, чтобы восстановить эту возможность добавим настройку в Samba:

sudo gedit /etc/samba/smb.conf

добавим в секцию :

usershare owner only = false

Монтирование android-устройств

А здесь нам умудрились, как бы это помягче выразиться, подпортить
погоду. Цитирую причину:

Бинарный блоб, да ещё от Microsoft, есть безусловное зло. Но сегодня не об
этом. Давайте решим проблему установкой jmtpfs.

Коротко об установке. В случае с gentoo нужная утилита на момент написания поста
располагается в стороннем оверлее :

После инсталляции оной следует удостовериться, что пользователь добавлен в группу
и расскомментировать одну строку в :

Отлично. Теперь приступим к монтированию. Создадим каталог для монтирования,
смонтируем и размонтируем устройство, введя соответствующие команды:

Что же, теперь брат меньший (android-устройство) может взаимодействовать с
братом большим (linux).

Не путайте точки монтирования с путями

Внимательные пользователи Windows наверняка заметили, что на прилагаемом скриншоте файловая система NTFS примонтирована в папку /mnt, отсюда может возникнуть предположение, что полный путь к диску с NTFS будет выглядеть как /mnt/dev/sdb. Ничего подобного. В Linux все сущности являются файлами, даже физические устройства, которые хранятся в виде файлов в каталоге /dev. Так, обращаясь к физическому диску с установленной системой, мы обращаемся к файлу диска (блочному устройству) sda в папке /dev; обращаясь ко второму накопителю, работаем уже с файлом sdb. Если же вы видите файл sdb1 или sdb2, то такой файл является уже файлом раздела диска sdb.

Папка же монтирования служит точкой, через которую мы получаем доступ к содержимому устройства. Поэтому в строгом смысле слова в Linux нет понятия дисков и томов, по крайней мере в том смысле, в котором они употребляются в Windows. Вы где-нибудь видели в Windows файл диска С или D? Но что такое файл sda в Linux, может быть это контейнер, содержащий системные файлы? Нет, это просто символьное обозначение диска, некий аналог буквы, как С или D в Windows, только представленное отдельным файлом.

Примечание: начало имени диска sd говорит о том, что мы имеем дело с твердотельным диском, если бы диск был обычным, то вместо sda было бы hda — Hard Drive. Имена файлов дисководов в Linux начинаются с sr (CD-RROM), а новых твердотельных накопителей NVM Express — с nvme.

Автоматическое монтирование диска при загрузке Linux

Диски для монтирования при запуске Linux прописаны в файле /etc/fstab.

Допустим, я хочу при загрузке монтировать диск /dev/sda в директорию /mnt/disk_d/. При этом я хочу чтобы диск был доступен для чтения и записи пользователем. Тогда я создаю каталог — точку монтирования:

sudo mkdir /mnt/disk_d

Открываю файл /etc/fstab:

sudo gedit /etc/fstab

и дописываю туда следующую строчку:

/dev/sda   /mnt/disk_d  ext4    rw,relatime 0   0

В этой строке вам нужно заменить

  • /dev/sda — на диск, который вы желаете смонтировать
  • /mnt/disk_d — на вашу точку монтирования, которую вы выбрали для своего диска.
  • ext4 — на файловую систему вашего диска

Если вы не уверены в файловой системе или её обозначении, то выполните команду:

lsblk -f

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

Чтобы ваш пользователь имел доступ к этой папке без необходимости повышать свои привилегии, выполните команду:

sudo chown -R $USER /mnt/disk_d

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

Обратите внимание, что если вы что-то неправильно сделали в файле /etc/fsta, то система не сможет загрузиться в графический интерфейс и вам придётся всё исправлять из консоли. Ссылка на дополнительную инструкцию в конце этой статьи.. Для проверки записей в файле /etc/fstab используйте команду

Для проверки записей в файле /etc/fstab используйте команду

findmnt --verify

На скриншоте можно увидеть, что диск с UUID равным 26FC3023FC2FEC2D является недоступным (unreachable). Это может означать, что запись в файле /etc/fstab имеет ошибку. Но в данном случае диск с UUID=26FC3023FC2FEC2D — это съёмный диск, для его монтирования указана опция nofail (не вызывать фатальную ошибку, даже если диск отсутствует), поэтому предупреждение можно проигнорировать.

Для вывода более подробной информации добавьте опцию —verbose:

findmnt --verify --verbose

Все пункты успешно прошли проверку, рассмотрим более подробно записи проблемного диска:

/mnt/disk_e
    target exists
    VFS options: rw
    FS options: utf8
    userspace options: noauto,nofail
    unreachable: UUID=26FC3023FC2FEC2D

Они означают:

  • /mnt/disk_e — точка монтирования
  • target exists — целевая папка (точка монтирования), существуют, то есть директория /mnt/disk_e имеется в системе
  • VFS options: rw — найдена такая опция монтирования как rw, то есть диск монтируется для чтения и для записи. VFS — это опции ядра, системных вызовов. Эти опции одинаковы для всех файловых систем.
  • FS options: utf8 — найдена опция, специфичная для данной файловой системы. Этой опцией является utf8, то есть для преобразования имён файлов будет использоваться кодировка UTF-8.
  • userspace options: noauto,nofail — здесь перечислены опции пользовательского пространства. Опция noauto означает не монтировать автоматически, а опция nofail означает не сообщает об ошибках для этого устройства, если оно не существует — эта опция важна для съёмных носителей и сетевых дисков, которые могут отсутствовать во время загрузки компьютера.
Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: