Перейти к содержимому

Как добавить диск в fstab

  • автор:

Автоматическое монтирование файловых систем: файл fstab

Вводя в Linux-систему новый раздел жесткого диска, пользователь, конечно, хотел бы, чтобы он автоматически монтировался при запуске и демонтировался при останове. В противном случае этот раздел придется при каждой загрузке и каждом останове системы монтировать и демонтировать явно. Для того чтобы ОС/ Linux автоматически монтировала файловую систему, существующую в новом разделе жесткого диска, нужно добавить ее имя в файл fstab . Это можно сделать вручную либо с помощью команды fstool . Файл fstab расположен в каталоге /etc . В нем перечислены файловые системы, которые монтируются командой mount с опцией -а . Эта команда находится в файле /etc/rc.d/rc.boot . Команды данного файла выполняют операции по инициализации системы. Они выполняются при каждой загрузке системы. При останове системы выполняется команда umount -а , которая демонтирует все файловые системы, перечисленные в файле fstab . Команда umount -а находится в файле /etc/rc.d/init/halt , который содержит команды, выполняемые при каждом останове системы. Таким образом, все файловые системы, которые вы указываете в файле /etc/fstab , автоматически монтируются при запуске системы и демонтируются при ее закрытии. В других системах, например Redhat, команда mount -а может находиться в файле /etc/rc.d/rc.sysinit .

Элемент файла fstab содержит несколько полей, разделенных пробелами или знаками табуляции. Первое поле — имя монтируемой файловой системы. Оно обычно начинается с /dev , например /dev/hda3 , — третий раздел жесткого диска. Следующее поле — каталог в файловой структуре, к которому вы хотите присоединить файловую систему, находящуюся на данном устройстве. Третье поле — тип монтируемой файловой системы. Опции команды mount перечислены в табл. 7.2, а перечень типов файловых систем дан в табл. 7.6. Тип раздела жесткого диска для стандартной файловой системы Linux — ext2 , В следующем примере показана строка файла fstab , соответствующая основному разделу жесткого диска для Linux. Он монтируется в корневом каталоге ( / ) и имеет тип ext2 .

/dev/hda3 / ext2 defaults 0 1

В поле, следующем после типа файловой системы, указываются различные опции монтирования. Имеется стандартный набор опций, устанавливаемых по умолчанию; все их можно задать вводом одной опции defaults/ Другие опции в списке разделяются запятыми (без пробелов). Опция deffaults обозначает устройство как устройство чтения/записи, асинхронное, блок-ориентированное, без возможности монтирования для обычных пользователей, с возможностью выполнения на нем программ. Для CD-ROM указываются всего две опции, го и noauto . Опция го показывает, что файлы, находящиеся на этом устройстве, предназначены только для чтения, noauto — что оно автоматически не монтируется. Опция noauto используется как для CD-ROM, так и для дискет, чтобы они не монтировались автоматически, поскольку вы не знаете, будут ли они установлены при запуске. В то же время в записях рассматриваемого файла, относящихся и к CD-ROM, и к дискетам, указывается, в каком каталоге они будут монтироваться при запуске, если вы все же решите монтировать их. Ниже приводится пример записей для CD-ROM и дискет. Тип файловой системы на CD-ROM, iso9660 , отличается от типа раздела жесткого диска. Для дисковода гибких дисков также предусмотрены все стандартные опции, используемые для разделов жесткого диска.

/dev/fd0 /mnt/floppy ext2 defaults,noauto 0 0 /dev/hdc /mnt/cdrom iso9660 ro,noauto 0 0

Последние два поля содержат целочисленные значения. Первое используется командой dump для определения периодичности резервного копирования файловой системы. Последнее используется командой fsck для определения необходимости проверки системы и порядка возможной проверки. Если значение поля — 1 , то это корневой раздел. Значение 0 говорит о том, что проверять файловую систему при загрузке не нужно.

Ниже приведена копия файла /etc/fstab . Первая его строка — комментарий. Все строки комментариев начинаются со знака # . Файловая система /ргос — это специальная файловая система, которую операционная система Linux использует для управления системными процессами. Никакому реальному устройству она не соответствует.

_____________________________________________________________________________________ | # device mountpoint filesystemtype options dumpm fsckorder| | /dev/hda3 / ext2 defaults 0 1 | | /dev/hdc /mnt/cdrom iso9660 ro,noauto 0 0 | | /dev/fd0 /mnt/floppy ext2 defaults,noauto 0 0 | | /proc /proc proc defaults | | /dev/hda2 /none swap sw | | /dev/hda1 /mnt/dos msdos defaults 0 0 | | /dev/hda4 /mnt/win vfat iocharset=koi8-r,codepage=866,rw,noexec 0 0 | |____________________________________________________________________________________|

Чтобы указать в файле /etc/fstab новую файловую систему, можно либо отредактировать его вручную, либо воспользоваться утилитой fstool , которая попросит вас ввести соответствующую информацию.

Как уже упоминалось выше, в файловой структуре Linux можно монти-ровать разделы, используемые операционной системой MS-DOS. Делается это так же, как при монтировании любой файловой системы Linux. Нужно только указать тип раздела — msdos . Вероятно, будет удобнее, если система будет автоматически монтировать разделы MS-DOS при запуске системы Linux. Для этого нужно ввести в файл /etc/fstab запись для каждого монтируемого раздела MS-DOS. Укажите имя устройства для раздела и имя каталога, в котором он должен монтироваться. Логичный выбор — каталог /mnt/dos (убедитесь, что каталог dos в /mnt уже создан). В качестве типа файловой системы введите msdos . В следующем примере показана стандартная строка файла /etc/fstab для раздела MS-DOS. Обратите внимание на то, что эта запись является последней в приведенном выше файле /etc/fstab .

/dev/hda1 /mnt/dos msdos defaults 0 0

Раздел, для которого в файле /etc/fstab есть запись, можно монтировать только в каталоге, указанном в этой записи. Имя файла устройства вводить не нужно. Программа mount найдет запись, соответствующую этому разделу, в файле fstab (по имени каталога) и таким образом определит имя устройства. Например, чтобы демонтировать DOS-раздел /dev/hda1 в предыдущем примере, команде mount нужно указать только каталог, в котором он смонтирован. В данном случае это /mnt/dos .

# umount /mnt/dos

Если файл /etc/fstab испорчен — скажем, вы случайно удалили или изменили строку — система загрузится в режиме сопровождения и предоставит вам доступ к разделам только для чтения. Чтобы получить доступ на чтение и запись и исправить файл fstab , необходимо перемонтировать основной раздел. Эту операцию выполняет следующая команда:

# mount -n -0 remount,ro /

Приведенный здесь в качестве примера файл /etc/fstab можно использовать как руководство по формированию записей. Особенно важны элементы, соответствующие разделам /ргос и swap .

Как добавлять записи в /etc/fstab. Как использовать /etc/fstab для хранения опций монтирования

При включении компьютера с Linux диски уже смонтированы в системе: главный диск смонтирован в / (корень), загрузочный диск смонтирован в /boot, дополнительные диски смонтированы в /mnt/*. Информация для этих монтирвоаний содержится в файле /etc/fstab. Система автоматически монтирует диски на основании записей, содержащихся в файле /etc/fstab.

Файл fstab содержит описательную информацию о файловых системах, которые может монтировать система. fstab только читается программами, но не записывается; системный администратор обязан правильно создать и поддерживать этот файл. Порядок записей в fstab важен, потому что утилиты fsck, mount и umount последовательно выполняют итерацию через fstab, делая своё дело.

Каждая файловая система описывается в отдельной строке. Поля в каждой строке разделены табуляцией или пробелами. Строки, начинающиеся с символа «#«, являются комментариями. Пустые строки игнорируются.

Ниже приведён типичный пример записи в fstab:

UUID=01e4d4f5-698f-4dc2-987b-270499457f48 / ext4 rw,relatime 0 1

Из чего состоят записи в /etc/fstab

Первое поле (fs_spec).

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

Для обычных монтирований он будет содержать (ссылку на) узел специального блочного устройства (созданный утилитой mknod) для монтируемого устройства, например, «/dev/cdrom» или «/dev/sdb7». Для монтирования NFS это поле — : , например, «knuth.aeb.nl:/». Для файловых систем без хранилища можно использовать любую строку, которая будет отображаться, например, в выводе df. Обычно для procfs используется «proc»; а для tmpfs используются «mem», «none» или «tmpfs». Другие специальные файловые системы, такие как udev и sysfs, обычно не указываются в fstab.

Вместо имени устройства можно указать LABEL= или UUID= . Это рекомендуемый метод, поскольку имена устройств часто совпадают с порядком обнаружения оборудования и могут измениться при добавлении или удалении других дисков. Например, «LABEL=Boot» или «UUID=3e6be9de-8139-11d1-9106-a43f08d823a6». (Используйте инструмент, специфичный для файловой системы, например e2label, xfs_admin или fatlabel, чтобы установить LABEL в файловых системах).

Также можно использовать ARTUUID= и PARTLABEL=. Эти идентификаторы разделов поддерживаются, например, для таблицы разделов GUID (GPT).

Чтобы узнать UUID всех дисков используйте любую из следующих команд:

findmnt --real -o TARGET,SOURCE,FSTYPE,UUID mount | grep "^/dev" blkid lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID

Чтобы узнать UUID определённого диска, используйте любую из следующих команд:

findmnt --real -o TARGET,SOURCE,FSTYPE,UUID /dev/ДИСК blkid /dev/ДИСК lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID /dev/ДИСК

Второе поле (fs_file).

Это поле описывает точку монтирования (цель) для файловой системы. Для разделов подкачки это поле должно быть указано как «none». Если имя точки монтирования содержит пробелы или табуляции, их можно использовать как «\040» и «\011» соответственно.

Третье поле (fs_vfstype).

Это поле описывает тип файловой системы. Linux поддерживает множество типов файловых систем: ext4, xfs, btrfs, f2fs, vfat, ntfs, hfsplus, tmpfs, sysfs, proc, iso9660, udf, squashfs, nfs, cifs и многие другие.

Запись подкачки в этом поле должна содержать «swap».

Запись «none» полезна для привязки или перемещения монтирований.

Можно указать несколько типов в списке, разделённом запятыми.

mount и umount поддерживают подтипы файловых систем. Подтип определяется суффиксом «.subtype». Например, «fuse.sshfs». Рекомендуется использовать нотацию подтипа, а не добавлять префикс в первое поле fstab (например, «sshfs#example.com» является устаревшим).

Четвёртое поле (fs_mntops).

В этом поле описаны параметры монтирования, связанные с файловой системой.

Поле отформатировано как список параметров, разделённых запятыми. Оно содержит как минимум тип монтирования (ro или rw), а также любые дополнительные параметры, соответствующие типу файловой системы (включая параметры настройки производительности).

Основные параметры, не зависящие от файловой системы:

defaults

использовать параметры по умолчанию: rw, suid, dev, exec, auto, nouser и async.

noauto

не монтировать при использовании команды «mount -a» (например, во время загрузки)

позволяет монтировать указанному пользователю

позволяет монтировать указанному владельцу устройства

или x- для использования программами поддержки fstab

nofail

не сообщает об ошибках для этого устройства, если оно не существует.

Пятое поле (fs_freq).

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

Шестое поле (fs_passno).

Это поле используется fsck для определения порядка, в котором выполняется проверка файловых систем во время загрузки. Корневая файловая система должна быть указана с fs_passno равным 1.

Для других файловых систем значение fs_passno должно быть равно 2. Файловые системы на диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный на оборудовании. По умолчанию нулевое значение (не использовать fsck), если оно отсутствует.

Пример файла /etc/fstab с объяснением значений записей

Рассмотрим пример реального файла /etc/fstab на моей системе:

#      # /dev/nvme0n1p2 UUID=01e4d4f5-698f-4dc2-987b-270499457f48 / ext4 rw,relatime 0 1 # /dev/nvme0n1p1 UUID=7327-B4E4 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2 /dev/sda /mnt/disk_d ext4 rw,relatime 0 0 #/swapfile none swap defaults 0 0

Этот файл отчасти создан автоматически, отчасти дописан вручную.

Автоматическая часть была создана командой в соответствии с «Инструкцией по установке Arch Linux»:

genfstab -U -p /mnt >> /mnt/etc/fstab

Самая первая строка является комментарием и просто напоминает значение полей.

Затем строка «# /dev/nvme0n1p2» также является комментарием, она содержит удобное для восприятия имя диска, чтобы было проще ориентироваться, к какому диску относится последующая запись.

Следующая строка начинается с «UUID=01e4d4f5-698f-4dc2-987b-270499457f48» — это уникальный идентификатор диска. Вторым полем идёт «/», это означает, что диск смонтирован в корень файловой системы. Затем «ext4» указывает на тип файловой системы. Затем идут опции монтирования «rw,relatime». Затем идёт «0», означающий, что не нужно выгружать файловые системы. Последней идёт «1», означающая, что в случае возникновения проблем этот диск должен быть проверен первым.

Следующая строка вновь является комментарием, показывающим нам, к какому диску она относится «# /dev/nvme0n1p1».

Затем идёт идентификатор диска «UUID=7327-B4E4», обратите внимание, что он намного короче предыдущего — видимо, зависит от файловой системы. Затем идёт точка монтирования «/boot», то есть это загрузочный раздел, который монтируется в указанную папку. Далее тип файловой системы «vfat». Затем опции монтирования «rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro» — все опции монтирования будут рассмотрены в конце данной статьи, поэтому не будем на них останавливаться. Затем идёт «0», означающий, что не нужно выгружать файловые системы, затем идёт «2», означающая, что диск должен быть проверен вторым.

На этом заканчивается автоматически сгенерированная часть и начинается часть дописанная мною вручную.

После установки системы, второй внутренний диск мной был отформатирован в файловую систему ext4, у этого диска название /dev/sda и он смонтирован в директорию /mnt/disk_d с опциями «rw,relatime». Вместо имени диска /dev/sda можно указать его UUID — но это не критично.

Далее идёт закомментированная строка, подключающая файл подкачки «#/swapfile none swap defaults 0 0». Поскольку строка закомментированна, это означает, что файл подкачки не используется.

Про создание и удаление файлов подкачки смотрите статьи:

  • Как в Kali Linux создать или увеличить файл подкачки (Swap)
  • Файл подкачки и раздел подкачки в Arch Linux: что выбрать и как добавить Swap
  • Как в Linux Mint и Ubuntu увеличить и раздел подкачки. Как в Linux создать файл подкачки Swap
  • Как создать раздел подкачки не на системном диске. Как переместить раздел подкачки на другой диск

Как управлять опциями монтирования с помощью /etc/fstab

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

К примеру, у меня есть внешний USB диск, который при подключении к компьютеру по умолчанию монтируется в «/run/media/mial/Новый том».

Мне такое название точки монтирования не нравится, я хочу, чтобы именно этот диск монтировался в /mnt/disk_e (как на моём старом компьютере это был диск E:\).

В этом случае мне нужно отмонтировать диск и заново его монтировать примерно следующей командой:

sudo mount -t ntfs -o rw,utf8 /dev/sdc1 /mnt/disk_e

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

sudo gedit /etc/fstab

Мне необходимо узнать UUID данного диска (поскольку при подключении он иногда получает имя /dev/sdc1, иногда /dev/sdd1 или другие, например, если к компьютеру уже подключены другие диски или флешки). UUID диска можно узнать например так:

blkid /dev/sdc1
dev/sdc1: LABEL="M-PM-^]M-PM->M-PM-2M-QM-^KM-PM-9 M-QM-^BM-PM->M-PM-

Теперь в файл /etc/fstab я добавляю следующие строки:

# /dev/sdc1 1.5 ТБ внешний USB UUID=26FC3023FC2FEC2D /mnt/disk_e ntfs nofail,rw,utf8 0 0

Первая из них — комментарий, который напомнит мне, к чему относится эта запись.

Затем идёт строка, с описанными выше полями. В первом поле я идентифицирую диск — я использую не его имя, а UUID, поскольку имя устройства может меняться. Затем указываю точку монтирвоания (/mnt/disk_e). Затем тип файловой системы (ntfs). Затем идут опции, обратите внимание, что ОБЯЗАТЕЛЬНО нужно добавить опцию nofail, иначе если этот диск не подключён к компьютеру во время загрузки, компьютер может вовсе не загрузиться из-за ошибки в файле /etc/fstab. Затем идут ещё две цифры необязательных полей (отмена выгрузки файловых систем и отмена проверки).

Теперь в любое время при подключении этого диска он будет автоматически смонтирован в /mnt/disk_e. Это можно проверить с помощью команды:

findmnt --real

Примечание: вы можете обратить внимание, что опции монтирования из файла /etc/fstab и опции монтирования на скриншоте не совпадают. Дело в том, что программа mount может использовать программы-помогатели, которые фактически и выполняют монтирования. При вызове программ-помогателей некоторые опции могут теряться или игнорироваться программой, которая в конечном счёте выполняет монтирование. По этой же причине, кстати, вместо файловой системы ntfs указана fuseblk — это означает, что работу по монтированию диска выполнила FUSE.

Ещё одним следствием описания монтирования в файле /etc/fstab является то, что для указанных там дисков можно использовать сокращённую команду монтирования — указывая только точку монтирования или только имя устройства, например:

sudo mount /mnt/disk_e

Эта команда сработает как надо, смонтировав диск /dev/sdc1 в /mnt/disk_e — недостающие сведения и опции монтирования будут взяты из /etc/fstab.

Смотрите также:

  • Опции монтирования для ntfs
  • Всё о монтировании: от системного администрирования до IT криминалистики

Монтирование и fstab

В самом начале, при описании установки, я рассказывал про механизм монтирования дисков в Linux и объяснял его основы. Если вы забыли, что такое монтирование и для чего оно нужно, прочитайте снова статью про организацию файловой системы в Ubuntu. Ниже я попробую заполнить некоторые оставшиеся белые пятна.

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

Монтирование и пункты меню "Переход"

Сначала немного общей теории. Она не очень лёгкая, но надеюсь вы уловите основную суть. Итак, я рассказывал, что все подключаемые устройства автоматически монтируются в подкаталоги папки /media . Возможно, вы даже не преминули проверить это и убедиться в том, что и на самом деле всё обстоит именно так.

А вот с разделами винчестера ситуация несколько иная. Я говорил вам указать точки монтирования для всех разделов при установке, но не объяснил, зачем это нужно и что будет, если вы так не сделаете. Теперь постараюсь ликвидировать это упущение, попутно разложив по полочкам весь механизм монтирования.

В Ubuntu существует специальный файл, /etc/fstab , в котором хранятся настройки монтирования различных разделов, включая корень и swap. Существенная информация из этого файла заключается в первую очередь в соответствии точек монтирования разделам. При каждой загрузке Ubuntu читает этот файл и монтирует все перечисленные в нём диски в указанные для них места. Больше нигде никакой информации и точках монтирования в системе не хранится. Соответственно при установке в /etc/fstab записывается вся указанная вами информация о монтировании ваших разделов.

Различные флешки, внешние диски, плееры и прочие устройства монтируются автоматически при подключении к вашему компьютеру. Точкой монтирования в этом случае служит один из подкаталогов /media , обычно - с именем, соответствующим метке устройства 1) . За выдлением точек монтирования, определением файловой системы и решением других проблем следит Ubuntu - вам ничего делать не надо. Кроме того, все внешние устройства автоматически попадают в меню «Переход» и на рабочий стол, так что вы всегда можете легко получить к ним доступ 2) .

Проблемы начинаются только тогда, когда какое-то устройство было присоединено к компьютеру до загрузки Ubuntu, но для него нету записи в /etc/fstab . В этом случае оно будет смонтировано только при вашем первом к нему обращении. Естественно, по всё тем же правилам подключения внешних источников, то есть в автоматически созданный подкаталог директории /media . В случае с флешками это некритично - в конце концов при первом вашем обращении к флешке вы всё равно сразу же получите доступ к её содержимому и вам вообще не нужно задумываться не то, что о всяких /etc/fstab , а даже просто о значении термина «монтирование». Но дело в том, что Ubuntu ровно так же будет обрабатывать и неуказанные в /etc/fstab разделы винчестера. И в чём же проблема, спросите вы?

Проблема в том, что зачастую получить доступ к содержимому винчестера нужно сразу после загрузки и до того, как вы вручную зайдёте на нужный диск. Это связано с тем, что многие программы работают с файлами без вашего непосредственного участия. Например, различные торрент-клиенты, плееры и прочие приложения, которые постоянно обращаются к файлам на винчестере, просто не смогут работать, пока вы не перейдёте на нужный диск. Кроме того, при автоматическом назначении точки монтирования в момент первого обращения есть ещё одна небольшая проблема: вообще говоря никто не может гарантировать, что каждый раз будет использоваться одна и та же точка монтирования. А это значит, что могут меняться полные пути до всех файлов, что вообще приведёт к невозможности работы с ними большого количества приложений, вроде тех же торрент-клиентов.

В общем, вы наверно уже поняли, что все нужные вам разделы должны присутствовать в /etc/fstab , чтобы Ubuntu их автоматически монтировала при запуске и у вас не было проблем при работе с ними.

Вопрос остаётся только один: а какие указывать точки монтирования для разделов? Если вы помните, при описании установки я говорил вам монтировать все дополнительные разделы в подкаталоги /media . Это и есть самый распространённый способ указания точек монтирования, однако далеко не единственный. Дело в том, что всё, смонтированное в подкаталоги /media , автоматически попадает в меню «Переход» и на рабочий стол. Но иногда хочется скрыть некоторые разделы и убрать их из всех списков и меню. Логичным решением было бы просто удалить запись о ненужном разделе из /etc/fstab . Однако это не приведёт к желаемому результату, поскольку точка монтирования для раздела, не указанного в /etc/fstab , автоматически всё равно будет назначаться в подкаталог /media , соответственно, диск всё равно будет доступен через меню «Переход». А скрыть диск на самом деле очень просто: нужно указать точку монтирования для раздела не в подкаталог /media , а в другую часть файлового дерева.

Будьте осторожны! Неаккуратное обращение с точками монтирования может привести к полной неработоспособности системы.

Например, в подкаталог /hidden/data 3) . При этом диск исчезнет из всех графических программ, но к его содержимому всё же будет доступ по полному пути относительно корня 4) .

На всякий случай хочу обратить внимание на две вещи: во-первых, указанный в качестве точки монтирования для любого диска каталог должен существовать в файловой системе. То есть если вы хотите смонтировать какое-то устройство в /hidden/data , то у вас должен существовать каталог /hidden/data . И при этом он должен быть пустой, т.к. его содержимым после монтирования будет являться содержимое подключаемого устройства. А во-вторых права на запись файлов на подключаемые устройства определяются правами на запись в точку монтирования. То есть если вы что-то монтируете в /media/data , то у вас должны быть нужным образом установлены владелец, группа и права доступа к каталогу /media/data .

Осталось только немного рассказать про системные директории, вроде /home , и про их отношение к процессу монтирования. Конкретно в /home хранятся домашние каталоги для всех пользователей компьютера. Помните, при рассказе про установку я говорил, что /home рекомендуется выделять отдельным разделом для того, чтобы хранить пользовательские настройки отдельно от системы? Это нужно для того, чтобы можно было, например, отформатировать системный раздел и поставить систему заново, при этом сохранив все пользовательские данные в целостности и сохранности. Так вот, если вы ещё этого не поняли, тут стоит обратить внимание на то, что не только дополнительные разделы с помощью механизма монтирования можно вставлять в текущее дерево каталогов, но и выносить на отдельные разделы любые системные каталоги 5) .

Вот так всё запутанно и с первого взгляда сложно. Если вы не уловили суть вопроса, то ничего страшного, просто запомните, что для всех разделов винчестера обязательно должны быть записи в /etc/fstab , а обо всём остальном за вас позаботится система, вот и вся соль.

Конфигурационный файл /etc/fstab

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

Итак, открыв /etc/fstab вы увидите достаточно небольшое содержимое, у меня этот файл выглядит так:

Каждому разделу винчестера отводится одна строка. Строчки, начинающиеся с символа решётки ( # ), являются комментариями и системой игнорируются. Формат каждой записи очень простой:

раздел_винчестера точка_монтирования файловая_система опции_монтирования два_вспомогательных_числа

Помните, в статье про разметку диска я рассказывал, что разделы винчестера в Linux именуются как sdaX (или sdbX , sdcX и т.д. если у вас несколько винчестеров). Так вот, в fstab используется несколько другой механизм идентификации винчестеров 6) . Для этой цели используются так называемые uuid , достаточно длинные строчки из произвольных букв латинского алфавита и цифр 7) . Для того, чтобы узнать uuid для нужного вам раздела выполните в терминале команду 8)

ls -l /dev/disk/by-uuid

Вот как выглядит результат выполнения у меня:

Я думаю, понятно, что к чему, uuid для каждого раздела выделен голубым цветом.

Итак, первое поле записи в fstab для разделов винчестера выглядит так:

UUID=ваш_uuid

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

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

Но как-то указать все эти параметры всё-таки надо. К счастью, тут можно схитрить 9) . Дело в том, что записи о всех смонтированных дисках попадают в специальный файл /etc/mtab , а формат записей этого файла ровно такой же, как и у /etc/fstab . Поэтому если вам надо добавить запись для какого-то раздела винчестера в fstab просто зайдите на него через меню «Переход», при этом он автоматически смонтируется в подкаталог /media и следовательно запись о нём появится в mtab . Теперь откройте mtab , найдите нужную строчку (тут уже диски именуются обычным способом) и скопируйте её в fstab , заменив имя диска на его uuid и точку монтирования на желаемую. Кроме того, если в качестве ФС в mtab записано fuseblk , то при копировании необходимо подставить вместо этого значения имя своей файловой системы. Если вы не знаете, как правильно должна называться ваша ФС в fstab , то поищите информацию на эту тему в интернете. И если вы не наделаете ошибок при замене, то при следующей загрузке диск смонтируется туда, куда вы указали.

На этом я заканчиваю краткое, хоть и достаточно запутанное, знакомство с файлом /etc/fstab и системой монтирования дисков в Ubuntu. Более того, на этом так же заканчивается вся информация, которую я хотел вам рассказать про Ubuntu. Ну и дабы не завершать руководство столь неочевидным рассказом про специфическую настройку системы, я завершу его статьей с красивым названием «Эпилог»:

Это не всегда так. Можно добавить запись для устройства во всё тот же /etc/fstab , тогда при подключении точка монтирования не будет назначена автоматически, а считается из этого файла. Так, например, сделано для дисководов. Так что /etc/fstab используется не только при загрузке. Кроме того, если имя уже занято, то к нему будет дописано нижнее подчёркивание при определении точки монтирования.

На самом деле на рабочий стол и в меню «Переход» попадает всё, что смонтировано в один из подкаталогов /media или же будет туда смонтировано при первом обращении.

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

Конечно есть возможность и полностью скрыть содержимое нежелательных разделов, для этого необходимо поставить на /hidden/data соответствующие права доступа, см. чуть ниже.

Только сразу хочу предупредить, в отличие от подключения дополнительных разделов в /media или в /hidden/data , системные каталоги выносить на отдельные разделы лучше только при установке, если вам вдруг понадобится это сделать после неё, то сначала разберитесь, что и куда надо скопировать и что и где изменить, простого добавления записи в /etc/fstab для этого недостаточно. Вкратце, для этого нужно загрузиться с LiveCD, потом скопировать текущее содержимое нужного каталога на новый диск, затем удалить данные со старого места, после чего добавить новую запись в /etc/fstab и напоследок проверить права доступа. Но поскольку выполняя эти операции вы рискуете потерять важные данные, то сначала подробно разберитесь в вопросе, и только потом приступайте к конкретным действиям.

Хотя можно использовать и классические имена.
Связано это с некоторыми техническими особенностями, но это несущественно.

Как вы может быть догадываетесь, узнать uuid можно далеко не единственным способом. Например, есть гораздо более информативная команда, требующая, однако, административных привилегий для запуска:

sudo blkid

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

И даже не одним способом. Например, для добавления ntfs-раздела в fstab можно воспользоваться утилитой ntfs-config , правда предварительно вам придётся её установить.

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

Обновлено

Обновлено: 09.02.2022 Опубликовано: 16.08.2016

Все настройки показаны на примере системы CentOS и пременимы к любому дистрибутиву Linux.

Монтирование по имени диска

Открываем на редактирование следующий файл:
vi /etc/fstab
и добавляем в него следующую строчку:
/dev/sda1 /db xfs defaults 0 0

  • /dev/sda1 — диск, который мы монтируем
  • /db — каталог, в который монтируем диск
  • xfs — файловая система
  • defaults — стандартные опции. Полный их перечень можно посмотреть на Википеции.
  • 0 0 — первый отключает создание резервных копий при помощи утилиты dump, второй отключает проверку диска.

Теперь создаем каталог, в который монтируем диск (в данном примере, /db):

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

Должен появиться новый диск. Это можно проверить следующей командой

Монтирование по идентификатору

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

И так, смотрим идентификатор диска командой:

Мы получим ответ на подобие:

/dev/sdb: UUID="3e53fc7e-a417-4fa5-b034-b227bea2474c" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sda1: UUID="358f032e-3efb-42ab-b3ba-05ddc82fedfd" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="0beca126-01"

* допустим, диск который мы хотим примонтировать — sda1. Его идентификатор 358f032e-3efb-42ab-b3ba-05ddc82fedfd.

Открываем на редактирование следующий файл:

и добавляем в него следующую строчку:

UUID=358f032e-3efb-42ab-b3ba-05ddc82fedfd /db xfs defaults 0 0

Монтирование можно проверить командой:

Пример монтирования сетевого диска

//192.168.0.1/network /mnt cifs user,rw,noauto,credentials=/root/.smbclient 0 0

* в данном примере выполняется монтировние общей папки network на сервере с IP-адресом 192.168.0.1 в каталог /mnt. В качестве сетевой файловой системы используется cifs (протокол SMB: сервер samba или общая папка Windows). Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, noauto: не монтировать автоматически при старте системы, credentials: файл, в котором написаны логин и пароль для подключения к общей папке.

Теперь создадим файл аутентификации (credentials):

и приведем его к следующему виду:

* username: имя пользоватля, password: пароль. Само собой, в вашем случае указываются свои данные.

Теперь вводим следующую команду:

Должна примонтироваться сетевая папка //192.168.0.1/network. Это можно проверить следующей командой:

Добавить комментарий

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