manual:fstab-2 Сравнение версий

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
manual:fstab-2 [2010/05/31 01:05]
— (текущий)
Строка 1: Строка 1:
-====== Монтирование и fstab ====== 
  
-В самом начале,​ при описании установки,​ я рассказывал про механизм монтирования дисков в Linux и объяснял его основы. Если вы забыли,​ что такое монтирование и для чего оно нужно, прочитайте снова [[[[файловая_система|статью]] про организацию файловой системы в Ubuntu. Ниже я попробую заполнить некоторые оставшиеся белые пятна. 
- 
-Если вы с нетерпением ждали шаманств с терминалом и правки конфигурационных файлов,​ поздравляю,​ вы дождались! Вообще мне кажется,​ что скоро терминалом и конфигами впору будет пугать маленьких детей - столь отталкивающее мнение об этих инструментах присутствует у некоторых в принципе далёких от понимания упомянутых терминов людей. На самом деле обычно всё, конечно,​ очень просто,​ элегантно и логично. И у вас сейчас будет возможность в этом убедиться. 
- 
-===== Монтирование и пункты меню "​Переход"​ ===== 
- 
-Сначала немного общей теории. Она не очень проста,​ но надеюсь вы уловите основную суть. Итак, я рассказывал,​ что все подключаемые устройства автоматически монтируются в подкаталоги папки ''/​media''​. Возможно,​ вы даже не преминули проверить это и убедиться в том, что и на самом деле всё обстоит именно так. 
- 
-А вот с разделами винчестера ситуация несколько иная. Я говорил вам указать точки монтирования для всех разделов при установке,​ но не объяснил,​ зачем это нужно и что будет, если вы так не сделаете. Теперь постараюсь ликвидировать это упущение,​ попутно разложив по полочкам весь механизм монтирования. 
- 
-В Ubuntu существует специальный файл, ''/​etc/​fstab'',​ в котором хранятся настройки монтирования различных разделов,​ включая корень и swap. Существенная информация из этого файла заключается в первую очередь в соответствии точек монтирования разделам. При каждой загрузке Ubuntu читает этот файл и монтирует все перечисленные в нём диски в указанные для них места. Больше нигде никакой информации и точках монтирования в системе не храниться. Соответственно при установке в ''/​etc/​fstab''​ записывается вся указанная вами информация о монтировании ваших разделов. 
- 
-Различные флешки,​ внешние диски, плееры и прочие устройства монтируются автоматически при подключении к вашему компьютеру. Точкой монтирования в этом случае служит один и подкаталогов ''/​media'',​ обычно - с именем,​ соответствующим метке устройства((Это не всегда так. Можно добавить запись для устройства во всё тот же ''/​etc/​fstab'',​ тогда при подключении точка монтирования не будет назначена автоматически,​ а считается из этого файла. Так, например,​ сделано для дисководов. Так что ''/​etc/​fstab''​ используется не только при загрузке. Кроме того, если имя уже занято,​ то к нему будет дописано нижнее подчёркивание при определении точки монтирования.)). За выдлением точек монтирования,​ определением файловой системы и решением других проблем следит Ubuntu - вам ничего делать не надо. 
- 
-Проблемы начинаются только тогда, когда какое-то устройство было присоединено к компьютеру до загрузки Ubuntu, но для него нету записи в ''/​etc/​fstab''​. В этом случае оно будет смонтировано только при вашем первом к нему обращении. Естественно,​ по всё тем же правилам подключения внешних источников,​ то есть в автоматически созданный подкаталог директории ''/​media''​. В случае с флешками это некритично - в конце концов при первом вашем обращении к флешке вы всё равно сразу же получите доступ к её содержимому и вам вообще не нужно задумываться не то, что о всяких ''/​etc/​fstab'',​ а даже просто о значении термина "​монтирование"​. Но дело в том, что Ubuntu ровно так же будет обрабатывать и неуказанные в ''/​etc/​fstab''​ разделы винчестера. И в чём же проблема,​ спросите вы? FIXME 
- 
------ 
- 
- ​Вся указанная при установке информация о точках монтирования попадает в этот файл. А все источники файлов,​ включая различные подключаемые устройства и даже разделы винчестера,​ про которые нет информации в этом файле, считаются внешними. Это приводит к тому, что они автоматически попадают в меню "​Переход"​ и на рабочий стол, а при первом обращении автоматически монтируются в подкаталоги ''/​media''​((Тут надо сказать,​ что флешки и другие внешние устройства монтируются в момент подключения к компьютеру,​ поскольку как только Ubuntu видит новое устройство,​ она сразу же пытается определить тип его содержимого. А для этого необходимо таки к нему обратиться,​ и, соответственно,​ смонтировать.)). Если по простому,​ то всё это означает,​ что Ubuntu при загрузке монтирует в указанные места только то, про что она знает, а всё остальное считается подключаемыми устройствами и обрабатывается соответственно. 
- 
-Что же в этом плохого?​ Ведь даже если вы не указали точку монтирования для раздела,​ то она автоматически назначится при первом обращении. Но к счастью,​ разделы винчестера - это не внешние устройства,​ и поэтому Ubuntu требует административных привилегий для управления ими((По понятным причинам. Было бы весьма неприятно,​ если бы обычный пользователь мог бы поломать что-то в системе управления разделами винчестера.)). Выливается это всё в то, что при первом обращении к разделу,​ про который нет информации в ''/​etc/​fstab'',​ Ubuntu попросит у вас пароль. Одно это уже жутко неудобно. Но это ещё не всё. Многие приложения,​ например,​ torrent-клиенты,​ в фоновом режиме обращаются к определённым файлам на вашем винчестере,​ и пока вы не откроете вручную нужный раздел,​ они будут считать,​ что его и файлов на нём не существует,​ соответственно,​ будет очень много ошибок. Ну и кроме того вы не застрахованы от того, что Ubuntu будет назначать различные точки монтирования одному и тому же разделу при перезагрузках компьютера. А это означает,​ что будут изменяться полные пути до файлов,​ что тоже часто достаточно критично. 
- 
-В общем, вы наверно уже поняли,​ что все нужные вам разделы должны присутствовать в ''/​etc/​fstab'',​ чтобы Ubuntu их автоматически монтировала при запуске и у вас не было проблем при работе с ними. 
- 
-Вопрос остаётся только один: а какие указывать точки монтирования для разделов?​ Если вы помните,​ при описании установки я говорил вам монтировать все дополнительные разделы в подкаталоги ''/​media''​. Это и есть самый распространённый способ указания точек монтирования,​ однако далеко не единственный. Дело в том, что всё, смонтированное в подкаталоги ''/​media'',​ автоматически попадает в меню "​Переход"​ и на рабочий стол. Но иногда хочется скрыть некоторые разделы и убрать их из всех списков и меню. Логичным решением было бы просто удалить запись о ненужном разделе из ''/​etc/​fstab'',​ однако,​ как вы уже знаете,​ это не приведёт к желаемому результату. На самом деле всё просто:​ нужно указать точку монтирования для раздела не в подкаталог ''/​media'',​ а в другую часть файлового дерева. 
- 
-<note warning> 
-Будьте осторожны! Неаккуратное обращение с точками монтирования может привести к полной неработоспособности системы. 
-</​note>​ 
- 
-Например,​ в подкаталог ''/​usr/​data''​. При этом диск исчезнет из всех графических программ,​ но к его содержимому всё же будет доступ по полному пути относительно корня((Конечно есть возможность и полностью скрыть содержимое нежелательных разделов,​ для этого необходимо поставить на ''/​usr/​data''​ соответствующие права доступа,​ см. чуть ниже.)). 
- 
-На всякий случай хочу обратить внимание на две вещи: во-первых,​ указанный в качестве точки монтирования для любого диска каталог должен существовать в файловой системе. То есть если вы хотите смонтировать какое-то устройство в ''/​hidden/​data'',​ то у вас должен существовать каталог ''/​hidden/​data''​. И при этом он должен быть пустой,​ т.к. его содержимым после монтирования будет являться содержимое подключаемого устройства. А во-вторых права на запись файлов на подключаемые устройства определяются правами на запись в точку монтирования. То есть если вы что-то монтируете в ''/​media/​data'',​ то у вас должны быть нужным образом установлены владелец,​ группа и права доступа к каталогу ''/​media/​data''​. 
- 
-Осталось только немного рассказать про системные директории,​ вроде ''/​home'',​ и про их отношение к процессу монтирования. Конкретно в ''/​home''​ хранятся домашние каталоги для всех пользователей компьютера. Помните,​ при рассказе про установку я говорил,​ что ''/​home''​ рекомендуется выделять отдельным разделом для того, чтобы хранить пользовательские настройки отдельно от системы,​ чтобы можно было, например,​ отформатировать системный раздел и поставить систему заново,​ при этом сохранив все пользовательские данные в целостности и сохранности. Так вот, если вы ещё это не поняли,​ тут стоит обратить внимание на то, что не только дополнительные разделы с помощью механизма монтирования можно вставлять в текущее дерево каталогов,​ но и выносить на отдельные разделы любые системные каталоги((Только сразу хочу предупредить,​ в отличие от подключения дополнительных разделов в ''/​media''​ или в ''/​hidden/​data'',​ системные каталоги выносить на отдельные разделы лучше только при установке,​ если вам вдруг понадобится это сделать после неё, то сначала разберитесь,​ что и куда надо скопировать и что и где изменить,​ простого добавления записи в ''/​etc/​fstab''​ для этого недостаточно. Вкратце,​ для этого нужно загрузиться с LiveCD, потом скопировать текущее содержимое нужного каталога на новый диск, затем удалить данные со старого места, после чего добавить новую запись в ''/​etc/​fstab''​ и напоследок проверить права доступа. Но поскольку выполняя эти операции вы рискуете потерять важные данные,​ то сначала подробно разберитесь в вопросе,​ и только потом приступайте к конкретным действиям.)). 
- 
-Вот так всё запутанно и с первого взгляда сложно. если вы всё ещё не осознали,​ что к чему, то возможно перечисление основных моментов вышеизложенного вам поможет:​ 
- 
-  - Всё, прописанное в ''/​etc/​fstab'',​ монтируется автоматически при загрузке Ubuntu. 
-  - Всё, для чего записей в ''/​etc/​fstab''​ нет, монтируется только при первом обращении. 
-  - Кроме того всё, для чего записей в ''/​etc/​fstab''​ нет, отображается в меню "​Переход"​ и на рабочем столе. 
-  - Всё, смонтированное в подкаталоги ''/​media'',​ так же отображается на рабочем столе и в меню "​Переход"​. 
-  - Для нормальной работы с разделом винчестера для него должна быть запись в ''/​etc/​fstab''​. 
- 
-Если вы всё ещё не уловили суть вопроса,​ то ничего страшного,​ просто запомните,​ что для всех разделов винчестера обязательно должны быть записи в ''/​etc/​fstab'',​ вот и вся соль. 
- 
-===== Конфигурационный файл /etc/fstab ===== 
- 
-А теперь собственно к практике. Осталось только рассказать,​ как же устроен файл ''/​etc/​fstab''​ и что в него надо писать. Начну с того, что этот файл является системным,​ поэтому для его редактирования нужны права ''​root''​. Если вы забыли,​ как редактировать конфигурационные файлы системы,​ прочитайте снова [[пользователи_и_группы|статью]] про права доступа. 
- 
-Итак, открыв ''/​etc/​fstab''​ вы увидите достаточно небольшое содержимое,​ у меня этот файл выглядит так: 
- 
-{{ .:​монтирование_и_fstab:​fstab.png }} 
- 
-Каждому разделу винчестера отводится одна строка. Строчки,​ начинающиеся с символа решётки (''#''​),​ являются комментариями и системой игнорируются. Формат каждой записи очень простой:​ 
- 
-<​file>​раздел_винчестера точка_монтирования файловая_система опции_монтирования два_вспомогательных_числа</​file>​ 
- 
-Помните,​ в [[разметка_диска|статье]] про разметку диска я рассказывал,​ что разделы винчестера в Linux именуются как ''​sdaX''​ (или ''​sdbX'',​ ''​sdcX''​ и т.д. если у вас несколько винчестеров). Так вот, в ''​fstab''​ используется несколько другой механизм идентификации винчестеров((Хотя можно использовать и классические имена.)). Для этой цели используются так называемые ''​uuid'',​ достаточно длинные строчки из произвольных букв латинского алфавита и цифр((Связано это с некоторыми техническими особенностями,​ но это несущественно.)). Для того, чтобы узнать ''​uuid''​ для нужного вам раздела выполните в термина команду((Как вы может быть догадываетесь,​ узнать ''​uuid''​ можно далеко не единственным способом. Например,​ есть гораздо более информативная команда,​ требующая,​ однако,​ административных привилегий для запуска:​ 
-<​code>​sudo blkid</​code>​ 
-Если вас не напряжёт лишний раз ввести пароль,​ то она вам скорее всего будет более симпатична,​ чем вариант с ''​ls''​.)) 
- 
-  ls -l /​dev/​disk/​by-uuid 
- 
-Вот как выглядит результат выполнения у меня: 
- 
-{{ .:​монтирование_и_fstab:​disks-by-uuid.png }} 
- 
-Я думаю, понятно,​ что к чему, ''​uuid''​ для каждого раздела выделен голубым цветом. 
- 
-Итак, первое поле записи в ''​fstab''​ для разделов винчестера выглядит так: 
- 
-<​file>​uuid=ваш_uuid</​file>​ 
- 
-Второе поле - это точка монтирования,​ тут всё просто,​ собственно вам всего лишь надо указать желаемую директорию. Однако учтите,​ что во-первых,​ указываемый каталог должен существовать,​ а во-вторых,​ в записи его имени не должно быть спецсимволов и пробелов. 
- 
-А вот дальше начинаются хитрости и сложности,​ описывать которые я не буду. С файловой системой всё просто,​ а вот опции монтирования - это целая эпопея,​ требующая не одной отдельной статьи. А уж назначение двух цифирей в конце вообще покрыто мраком и мало кого интересует. 
- 
-Но как-то указать все эти параметры всё-таки надо. К счастью,​ тут можно схитрить((И даже не одним способом. Например,​ для добавления ntfs-раздела в ''​fstab''​ можно воспользоваться утилитой ''​ntfs-config'',​ правда предварительно вам придётся её установить.)). Дело в том, что записи о всех смонтированных дисках попадают в специальный файл ''/​etc/​mtab'',​ а формат записей этого файла ровно такой же, как и у ''/​etc/​fstab''​. Поэтому если вам надо добавить запись для какого-то раздела винчестера в ''​fstab''​ просто зайдите на него через меню "​Переход",​ при этом он автоматически смонтируется в подкаталог ''/​media''​ и следовательно запись о нём появится в ''​mtab''​. Теперь откройте ''​mtab'',​ найдите нужную строчку (тут уже диски именуются обычным способом) и скопируйте её в ''​fstab'',​ заменив имя диска на его ''​uuid''​ и точку монтирования на желаемую. Вот и всё, при следующей загрузке диск смонтируется туда, куда вы указали. 
- 
-На этом я заканчиваю краткое,​ хоть и достаточно запутанное,​ знакомство с файлом ''/​etc/​fstab''​ и системой монтирования дисков в Ubuntu. Более того, на этом так же заканчивается вся информация,​ которую я хотел вам рассказать про Ubuntu. Ну и дабы не завершать руководство столь неочевидным рассказом про специфическую настройку системы,​ я завершу его статьей с красивым названием "​Эпилог":​ 
- 
-  * [[эпилог|Эпилог]]