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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
manual:fstab-2 [2010/12/20 22:15]
удалено
— (текущий)
Строка 1: Строка 1:
-====== Монтирование и fstab ====== 
  
-В самом начале,​ при описании установки,​ я рассказывал про механизм монтирования дисков в Linux и объяснял его основы. Если вы забыли,​ что такое монтирование и для чего оно нужно, прочитайте снова [[[[файловая_система|статью]] про организацию файловой системы в Ubuntu. Ниже я попробую заполнить некоторые оставшиеся белые пятна. 
- 
-Если вы с нетерпением ждали шаманств с терминалом и правки конфигурационных файлов,​ поздравляю,​ вы дождались! Вообще мне кажется,​ что скоро терминалом и конфигами впору будет пугать маленьких детей - столь отталкивающее мнение об этих инструментах присутствует у некоторых в принципе далёких от понимания упомянутых терминов людей. На самом деле обычно всё, конечно,​ очень просто,​ элегантно и логично. И у вас сейчас будет возможность в этом убедиться. 
- 
-===== Монтирование и пункты меню "​Переход"​ ===== 
- 
-Сначала немного общей теории. Она не очень лёгкая,​ но надеюсь вы уловите основную суть. Итак, я рассказывал,​ что все подключаемые устройства автоматически монтируются в подкаталоги папки ''/​media''​. Возможно,​ вы даже не преминули проверить это и убедиться в том, что и на самом деле всё обстоит именно так. 
- 
-А вот с разделами винчестера ситуация несколько иная. Я говорил вам указать точки монтирования для всех разделов при установке,​ но не объяснил,​ зачем это нужно и что будет, если вы так не сделаете. Теперь постараюсь ликвидировать это упущение,​ попутно разложив по полочкам весь механизм монтирования. 
- 
-В Ubuntu существует специальный файл, ''/​etc/​fstab'',​ в котором хранятся настройки монтирования различных разделов,​ включая корень и swap. Существенная информация из этого файла заключается в первую очередь в соответствии точек монтирования разделам. При каждой загрузке Ubuntu читает этот файл и монтирует все перечисленные в нём диски в указанные для них места. Больше нигде никакой информации и точках монтирования в системе не храниться. Соответственно при установке в ''/​etc/​fstab''​ записывается вся указанная вами информация о монтировании ваших разделов. 
- 
-Различные флешки,​ внешние диски, плееры и прочие устройства монтируются автоматически при подключении к вашему компьютеру. Точкой монтирования в этом случае служит один из подкаталогов ''/​media'',​ обычно - с именем,​ соответствующим метке устройства((Это не всегда так. Можно добавить запись для устройства во всё тот же ''/​etc/​fstab'',​ тогда при подключении точка монтирования не будет назначена автоматически,​ а считается из этого файла. Так, например,​ сделано для дисководов. Так что ''/​etc/​fstab''​ используется не только при загрузке. Кроме того, если имя уже занято,​ то к нему будет дописано нижнее подчёркивание при определении точки монтирования.)). За выдлением точек монтирования,​ определением файловой системы и решением других проблем следит Ubuntu - вам ничего делать не надо. Кроме того, все внешние устройства автоматически попадают в меню "​Переход"​ и на рабочий стол, так что вы всегда можете легко получить к ним доступ((На самом деле на рабочий стол и в меню "​Переход"​ попадает всё, что смонтировано в один из  подкаталогов ''/​media''​ или же будет туда смонтировано при первом обращении.)). 
- 
-Проблемы начинаются только тогда, когда какое-то устройство было присоединено к компьютеру до загрузки Ubuntu, но для него нету записи в ''/​etc/​fstab''​. В этом случае оно будет смонтировано только при вашем первом к нему обращении. Естественно,​ по всё тем же правилам подключения внешних источников,​ то есть в автоматически созданный подкаталог директории ''/​media''​. В случае с флешками это некритично - в конце концов при первом вашем обращении к флешке вы всё равно сразу же получите доступ к её содержимому и вам вообще не нужно задумываться не то, что о всяких ''/​etc/​fstab'',​ а даже просто о значении термина "​монтирование"​. Но дело в том, что Ubuntu ровно так же будет обрабатывать и неуказанные в ''/​etc/​fstab''​ разделы винчестера. И в чём же проблема,​ спросите вы? 
- 
-Проблема в том, что зачастую получить доступ к содержимому винчестера нужно сразу после загрузки и до того, как вы вручную зайдёте на нужный диск. Это связано с тем, что многие программы работают с файлами без вашего непосредственного участия. Например,​ различные торрент-клиенты,​ плееры и прочие приложения,​ которые постоянно обращаются к файлам на винчестере,​ просто не смогут работать,​ пока вы не перейдёте на нужный диск. Кроме того, при автоматическом назначении точки монтирования в момент первого обращения есть ещё одна небольшая проблема:​ вообще говоря никто не может гарантировать,​ что каждый раз будет использоваться одна и та же точка монтирования. А это значит,​ что могут меняться полные пути до всех файлов,​ что вообще приведёт к невозможности работы с ними большого количества приложений,​ вроде тех же торрент-клиентов. 
- 
-В общем, вы наверно уже поняли,​ что все нужные вам разделы должны присутствовать в ''/​etc/​fstab'',​ чтобы Ubuntu их автоматически монтировала при запуске и у вас не было проблем при работе с ними. 
- 
-Вопрос остаётся только один: а какие указывать точки монтирования для разделов?​ Если вы помните,​ при описании установки я говорил вам монтировать все дополнительные разделы в подкаталоги ''/​media''​. Это и есть самый распространённый способ указания точек монтирования,​ однако далеко не единственный. Дело в том, что всё, смонтированное в подкаталоги ''/​media'',​ автоматически попадает в меню "​Переход"​ и на рабочий стол. Но иногда хочется скрыть некоторые разделы и убрать их из всех списков и меню. Логичным решением было бы просто удалить запись о ненужном разделе из ''/​etc/​fstab''​. Однако это не приведёт к желаемому результату,​ поскольку точка монтирования для раздела,​ не указанного в ''/​etc/​fstab'',​ автоматически всё равно будет назначаться в подкаталог ''/​media'',​ соответственно,​ диск всё равно будет доступен через меню "​Переход"​. А скрыть диск на самом деле очень просто:​ нужно указать точку монтирования для раздела не в подкаталог ''/​media'',​ а в другую часть файлового дерева. 
- 
-<note warning> 
-Будьте осторожны! Неаккуратное обращение с точками монтирования может привести к полной неработоспособности системы. 
-</​note>​ 
- 
-Например,​ в подкаталог ''/​hidden/​data''​((Да,​ вы можете создавать новые каталоги непосредственно в корне файловой системы. Не стоит этим увлекаться,​ но и запрещать вам никто ничего не будет.)). При этом диск исчезнет из всех графических программ,​ но к его содержимому всё же будет доступ по полному пути относительно корня((Конечно есть возможность и полностью скрыть содержимое нежелательных разделов,​ для этого необходимо поставить на ''/​hidden/​data''​ соответствующие права доступа,​ см. чуть ниже.)). 
- 
-На всякий случай хочу обратить внимание на две вещи: во-первых,​ указанный в качестве точки монтирования для любого диска каталог должен существовать в файловой системе. То есть если вы хотите смонтировать какое-то устройство в ''/​hidden/​data'',​ то у вас должен существовать каталог ''/​hidden/​data''​. И при этом он должен быть пустой,​ т.к. его содержимым после монтирования будет являться содержимое подключаемого устройства. А во-вторых права на запись файлов на подключаемые устройства определяются правами на запись в точку монтирования. То есть если вы что-то монтируете в ''/​media/​data'',​ то у вас должны быть нужным образом установлены владелец,​ группа и права доступа к каталогу ''/​media/​data''​. 
- 
-Осталось только немного рассказать про системные директории,​ вроде ''/​home'',​ и про их отношение к процессу монтирования. Конкретно в ''/​home''​ хранятся домашние каталоги для всех пользователей компьютера. Помните,​ при рассказе про установку я говорил,​ что ''/​home''​ рекомендуется выделять отдельным разделом для того, чтобы хранить пользовательские настройки отдельно от системы?​ Это нужно для того, чтобы можно было, например,​ отформатировать системный раздел и поставить систему заново,​ при этом сохранив все пользовательские данные в целостности и сохранности. Так вот, если вы ещё этого не поняли,​ тут стоит обратить внимание на то, что не только дополнительные разделы с помощью механизма монтирования можно вставлять в текущее дерево каталогов,​ но и выносить на отдельные разделы любые системные каталоги((Только сразу хочу предупредить,​ в отличие от подключения дополнительных разделов в ''/​media''​ или в ''/​hidden/​data'',​ системные каталоги выносить на отдельные разделы лучше только при установке,​ если вам вдруг понадобится это сделать после неё, то сначала разберитесь,​ что и куда надо скопировать и что и где изменить,​ простого добавления записи в ''/​etc/​fstab''​ для этого недостаточно. Вкратце,​ для этого нужно загрузиться с LiveCD, потом скопировать текущее содержимое нужного каталога на новый диск, затем удалить данные со старого места, после чего добавить новую запись в ''/​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. Ну и дабы не завершать руководство столь неочевидным рассказом про специфическую настройку системы,​ я завершу его статьей с красивым названием "​Эпилог":​ 
- 
-  * [[эпилог|Эпилог]]