Руководство по Ubuntu для новичков

Это старая версия документа.


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

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

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

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

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

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

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

Что же в этом плохого? Ведь даже если вы не указали точку монтирования для раздела, то она автоматически назначится при первом обращении. Но к счастью, разделы винчестера - это не внешние устройства, и поэтому Ubuntu требует административных привилегий для управления ими1). Выливается это всё в то, что при первом обращении к разделу, про который нет информации в /etc/fstab, Ubuntu попросит у вас пароль. Одно это уже жутко неудобно. Но это ещё не всё. Многие приложения, например, torrent-клиенты, в фоновом режиме обращаются к определённым файлам на вашем винчестере, и пока вы не обратитесь вручную к нужному разделу они будут считать, что его и файлов на нём не существует, соответственно, будет очень много ошибок. Ну и кроме того вы не застрахованы от того, что Ubuntu будет назначать различные точки монтирования одному и тому же разделу при перезагрузках компьютера. А это означает, что будут изменяться полные пути до файлов, что тоже часто достаточно критично.

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

Но при установке я так же сказал вам, чтобы вы указали точки монтирования даже тем разделам, к которым вы не хотите иметь доступа из Ubuntu, правда, в подкаталоги /var/data. Возможно, вы уже догадались, зачем это нужно делать. Я говорил, что все источники файлов, не прописанные в /etc/fstab считаются внешними устройствами и автоматически попадают в меню «Переход» и на рабочий стол. То есть если вы не укажете точку монтирования раздела, думая, что в следствие этого он не будет вам мешаться в Ubuntu, то добъётесь ровно противоположного эффекта. Почему же нужно монтировать ненужные разделы именно в подкаталоги /var/data? Тут тоже всё просто. Всё смонтированное в подкаталоги /media автоматически попадает в меню «Переход» и на рабочий стол, именно поэтому я говорил вам указывать точки монтирования для нужных вам разделов именно в этот каталог. А вот всё, что смонтировано в другие места, в графической оболочке GNOME никак не отображается и поэтому не мешается2).

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

Вот так всё запутанно и с первого взгляда сложно. если вы всё ещё не осознали, что к чему, то возможно перечисление основных моментов вышеизложенного вам поможет:

  1. Всё, прописанное в /etc/fstab, монтируется автоматически при загрузке Ubuntu.
  2. Всё, для чего записей в /etc/fstab нет, монтируется только при первом обращении.
  3. Кроме того всё, для чего записей в /etc/fstab нет, отображается в меню «Переход» и на рабочем столе.
  4. Всё, смонтированное в подкаталоги /media, так же отображается на рабочем столе и в меню «Переход».
  5. Для нормальной работы с разделом винчестера для него должна быть запись в /etc/fstab.

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

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

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

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

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

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

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

ls -l /dev/disk/by-uuid

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

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

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

uuid=ваш_uuid

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

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

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

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

1)
По понятным причинам. Было бы весьма неприятно, если бы обычный пользователь мог бы поломать что-то в системе управления разделами винчестера.
2)
Строго говоря, смонтированное в /var/data так же будет доступно из системы, но только при прямом переходе из файлового менеджера. Однако есть возможность полностью скрыть содержимое нежелательных разделов, поставив на /var/data соответствующие права доступа.
3)
Только сразу хочу предупредить, в отличие от подключения дополнительных разделов в /media или в /var/data, системные каталоги выносить на отдельные разделы лучше только при установке, если вам вдруг понадобится это сделать после неё, то сначала разберитесь, что и куда надо скопировать и что и где изменить, простого добавления записи в /etc/fstab для этого недостаточно. В кратце, для этого нужно загрузиться с LiveCD, потом скопировать текущее содержимое нужного каталога на новый диск, затем удалить данные со старого места, после чего добавить новую запись в /etc/fstab и напоследок проверить права доступа. Но поскольку выполняя эти операции вы рискуете потерять важные данные, то сначала подробно разберитесь в вопросе, и только потом приступайте к конкретным действиям.
4)
Хотя можно использовать и классические имена.
5)
Связано это с некоторыми техническими особенностями, но это несущественно.
6)
Как вы может быть догадываетесь, узнать uuid можно далеко не единственным способом. Например, есть гораздо более информативная команда, требующая, однако, административных привилегий для запуска:
sudo blkid
Если вас не напряжёт лишний раз ввести пароль, то она вам скорее всего будет более симпатична, чем вариант с ls.
7)
И даже не одним способом. Например, для добавления ntfs-раздела в fstab можно воспользоваться утилитой ntfs-config, правда предварительно вам придётся её установить.