Монтирование и fstab Сравнение версий

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
manual:fstab [2009/12/02 00:28]
manual:fstab [2010/09/01 19:35] (текущий)
Строка 1: Строка 1:
 ====== Монтирование и fstab ====== ====== Монтирование и fstab ======
  
-В самом начале,​ при описании установки,​ я рассказывал про механизм монтирования дисков в Linux и объяснял его основы. Если вы забыли,​ что такое монтирование и для чего оно нужно, прочитайте снова [[[[файловая_система|статью]] про организацию файловой системы в Ubuntu. ​В этой ​же статье я попробую заполнить некоторые оставшиеся белые пятна.+В самом начале,​ при описании установки,​ я рассказывал про механизм монтирования дисков в Linux и объяснял его основы. Если вы забыли,​ что такое монтирование и для чего оно нужно, прочитайте снова [[[[файловая_система|статью]] про организацию файловой системы в Ubuntu. ​Ниже я попробую заполнить некоторые оставшиеся белые пятна.
  
-Если вы по ходу прочтения данного руководства всё ​ждали, когда же наконец я буду рассказывать про что-нибудь, что требует ручной правки конфигурационных файлов ​и шаманств с терминалом, то вы наконец-то дождались этого. В этой статье я действительно расскажу ​про один из важнейших конфигурационных файлов Linux, отвечающий за монтирование разделов винчестера. На самом деле ​даже в столь пугающей с первого взгляда теме ​нет ровным ​счётом ничего сложно, к счастьювремена, когда для ​нормальной ​работы в Linux нужно было быть как ​минимум квалифицированным программистомдавно прошли.+Если вы с нетерпением ждали ​шаманств с терминалом и правки конфигурационных файлов, поздравляю, вы дождались! Вообще ​мне кажется, что скоро ​терминалом ​и конфигами впору будет пугать маленьких детей ​столь отталкивающее мнение ​об этих инструментах присутствует у некоторых в принципе далёких от понимания упомянутых терминов ​людей. На самом деле обычно всё, конечноочень простоэлегантно и логично. И у вас сейчас будет возможность в этом ​убедиться.
  
 ===== Монтирование и пункты меню "​Переход"​ ===== ===== Монтирование и пункты меню "​Переход"​ =====
  
-Итак, я рассказывал,​ что все подключаемые устройства автоматически монтируются в подкаталоги папки ''/​media''​, возможно,​ вы даже не преминули проверить это и убедиться в том, что ​всё ​на самом деле обстоит ​в точности ​так, как и было описано.+Сначала немного общей теории. Она не очень лёгкая,​ но надеюсь вы уловите основную суть. ​Итак, я рассказывал,​ что все подключаемые устройства автоматически монтируются в подкаталоги папки ''/​media''​. Возможно,​ вы даже не преминули проверить это и убедиться в том, что ​и на самом деле ​всё ​обстоит ​именно так.
  
-А вот с разделами винчестера ситуация несколько иная. Я говорил вам указать точки монтирования для всех разделов при установке,​ но не объяснил,​ зачем это нужно и что будет, если вы так не сделаете. ​Начну ​пожалуй ​со второго пункта.+А вот с разделами винчестера ситуация несколько иная. Я говорил вам указать точки монтирования для всех разделов при установке,​ но не объяснил,​ зачем это нужно и что будет, если вы так не сделаете. ​Теперь ​постараюсь ликвидировать это упущение,​ попутно разложив по полочкам весь механизм монтирования.
  
-В Ubuntu существует специальный файл, ''/​etc/​fstab'',​ в котором хранятся настройки монтирования различных разделов,​ включая корень и swap. Вся ​указанная ​при установке ​информация ​о точках монтирования попадает ​в этот файл. А все источники файлов, включая различные подключаемые устройства и даже ​разделы винчестера, про которые нет информации в этом файлесчитаются внешними. Это приводит к тому, что они автоматически попадают в меню "Переход" и на рабочий стол, а при первом обращении автоматически монтируются ​в подкаталоги ''/​media''​. Если по простому, то всё это означает, что Ubuntu ​при ​загрузке монтирует в указанные места только то, про что она знает, а всё ​остальное считается подключаемыми устройствами и обрабатывается соответственно.+В Ubuntu существует специальный файл, ''/​etc/​fstab'',​ в котором хранятся настройки монтирования различных разделов,​ включая корень и swap. Существенная информация ​из этого файла заключается в первую очередь в соответствии ​точек монтирования разделам. При каждой загрузке Ubuntu читает этот файл ​и монтирует все перечисленные в нём диски в указанные для них места. Больше нигде никакой информации и точках монтирования в системе не хранится. Соответственно при установке в ''/​etc/​fstab''​ записывается вся указанная вами информация о монтировании ваших ​разделов.
  
-Что же в этом плохого? Ведь даже если вы не указали точку монтирования для раздела, то она автоматически ​назначится при ​первом обращении. Но к счастью, разделы винчестера - это не внешние устройства, и поэтому Ubuntu ​требует ​административных привилегий для управления ими. Выливается это всё в то, что при первом обращении ​к разделупро который нет информации в ''/​etc/​fstab''​, Ubuntu попросит у вас пароль. Одно это уже жутко неудобноНо это ещё не всё. Многие приложениянапример, torrent-клиенты, в фоновом режиме обращаются ​к определённым файлам на вашем винчестере, и пока вы не обратитесь вручную к нужному разделу они будут считать, что его ​и файлов на нём ​не существует, соответственнобудет очень много ошибок. Ну и кроме того вы не застрахованы от того, ​что Ubuntu будет назначать различные ​точки монтирования одному и тому же разделу при перезагрузках компьютера. А это означает, что ​будут изменяться полные пути до файлов,​ что ​тоже часто достаточно критично.+Различные флешки,​ внешние диски, плееры и прочие устройства монтируются автоматически ​при подключении к вашему компьютеру. Точкой монтирования в этом случае служит один из подкаталогов ''/​media'',​ обычно - с именем, соответствующим метке устройства((Это ​не всегда так. Можно добавить ​запись для устройства во всё тот же ''/​etc/​fstab'',​ тогда при подключении точка монтирования ​не будет назначена автоматическиа считается из этого файла. Так, ​например,​ сделано для дисководов. Так ​что ''/​etc/​fstab'' ​используется ​не только ​при ​загрузке. Кроме того, если имя уже занято,​ то к нему ​будет дописано нижнее подчёркивание при определении ​точки монтирования.)). За выдлением ​точек монтирования, определением файловой системы и решением других проблем ​следит Ubuntu - вам ничего делать не надо. Кроме того, все внешние устройства ​автоматически попадают в меню "​Переход" ​и на рабочий стол, так что вы всегда можете ​легко получить к ним ​доступ((На самом деле на рабочий стол и в меню "​Переход"​ попадает ​всё, что смонтировано в один из  подкаталогов ''/​media''​ или же будет туда смонтировано при первом обращении.)). 
 + 
 +Проблемы начинаются только тогдакогда какое-то устройство было присоединено к компьютеру до загрузки Ubuntu, ​но для него нету записи в ''/​etc/​fstab''​. В этом случае оно будет ​смонтировано только при вашем первом к нему обращенииЕстественно, по всё ​тем же правилам подключения ​внешних источников,​ то есть в автоматически созданный подкаталог директории ''/​media''​. В случае с флешками это ​некритично - в конце концов при первом ​вашем обращении к флешке вы всё равно сразу ​же получите доступ к её содержимому и вам вообще не нужно задумываться не то, что о всяких ''/​etc/​fstab'',​ а даже ​просто о значении термина "монтирование"​. Но дело в том, что Ubuntu ровно так же будет обрабатывать и неуказанные в ''/​etc/​fstab''​ разделы ​винчестера. И в чём же проблема, спросите ​вы
 + 
 +Проблема в том, что зачастую получить доступ к содержимому винчестера ​нужно ​сразу после загрузки и до того, как вы вручную зайдёте на нужный диск. Это связано с тем, что ​многие программы работают с файлами без ​вашего ​непосредственного участия. Например,​ различные торрент-клиентыплееры и прочие приложения, которые постоянно обращаются ​к файлам на винчестере, просто не смогут работать, пока ​вы не перейдёте на нужный диск. Кроме того, ​при автоматическом ​назначении точки монтирования ​в момент первого обращения есть ещё ​одна небольшая проблема: вообще говоря никто не может гарантировать,​ что каждый ​раз ​будет использоваться одна и та же точка ​монтирования. А это значит, что ​могут меняться полные пути до всех ​файлов,​ что ​вообще приведёт к невозможности работы с ними большого количества приложений,​ вроде ​тех же торрент-клиентов.
  
 В общем, вы наверно уже поняли,​ что все нужные вам разделы должны присутствовать в ''/​etc/​fstab'',​ чтобы Ubuntu их автоматически монтировала при запуске и у вас не было проблем при работе с ними. В общем, вы наверно уже поняли,​ что все нужные вам разделы должны присутствовать в ''/​etc/​fstab'',​ чтобы Ubuntu их автоматически монтировала при запуске и у вас не было проблем при работе с ними.
  
-Но при установке ​я так ​же сказал вам, чтобы вы указали ​точки монтирования даже тем ​разделам, к которым вы не хотите иметь доступа из Ubuntu, правда, в подкаталоги ''/​var/data''​. ​Возможно, вы уже догадались, зачем ​это нужно делатьЯ говорил, что все источники файловне прописанные в ''/​etc/fstab'' ​считаются внешними устройствами и автоматически попадают в меню "​Переход"​ и на рабочий стол. ​То есть ​если вы не укажете точку монтирования ​раздела, думая, что таким образом он не будет ​вам мешаться в Ubuntu, то добъётесь ровно противоположного эффекта. Почему же нужно ​монтировать ненужные разделы в подкаталоги ''/​var/data''​? Тут ​тоже всё ​просто. Всё смонтированное в подкаталоги ''/​media''​ так же попадает в меню "Переход"​ и на рабочий столименно ​поэтому я говорил вам ​указывать ​точки монтирования для ​нужных ​разделов в этот ​каталог. А вот всёчто смонтировано в другие места, в графической ​оболочке GNOME никак не отображается ​и поэтому не мешается. Строго ​говоря, ​смонтированное в ''/​var/​data''​ так же будет доступно из системы, но только при прямом ​переходе из файлового менеджера. Но есть возможность полностью скрыть содержимое нежелательных ​разделовпоставив на ''/​var/data'' ​соответствующие права доступа.+Вопрос остаётся только один: ​а какие указывать точки монтирования для разделов? Если вы помнитепри ​описании установки я говорил вам монтировать все ​дополнительные ​разделы ​в подкаталоги ''/​media''​. ​Это и есть самый распространённый способ указания точек монтирования, однако далеко не единственныйДело в том, что всё, смонтированное в подкаталоги ''/​media''​автоматически попадает в меню "​Переход"​ и на рабочий стол. ​Но иногда хочется скрыть некоторые ​разделы и убрать их из всех списков и меню. Логичным решением было бы просто удалить запись о ненужном разделе из ''/​etc/fstab''​. Однако это не приведёт к желаемому ​результату, поскольку точка монтирования для раздела, не указанного в ''/​etc/​fstab''​автоматически всё равно будет назначаться в подкаталог ''/​media'',​ соответственно, диск ​всё равно ​будет доступен через меню "​Переход". А скрыть диск на самом деле очень просто: нужно ​указать точку монтирования ​для раздела не в подкаталог ​''/​media''​, а в другую часть файлового дерева.
  
-Вот так всё запутанно и с первого взгляда сложно. если вы всё ​ещё не осознали, что ​к чемуто возможно перечисление основных моментов вышеизложенного вам ​поможет:+<note warning>​ 
 +Будьте ​осторожны! Неаккуратное ​обращение ​с точками монтирования может привести к полной неработоспособности системы. 
 +</​note>​
  
-  - Всё, ​прописанное в ''/​etc/fstab'',​ монтируется автоматически ​при загрузке Ubuntu. +Например, в подкаталог ​''/​hidden/data''​((Давы можете создавать новые каталоги непосредственно в корне файловой системы. Не стоит этим увлекаться, но и запрещать ​вам никто ничего не будет.)). При этом ​диск исчезнет из всех графических программ, но к его содержимому всё же будет доступ по полному пути ​относительно корня((Конечно есть возможность и полностью скрыть содержимое нежелательных разделовдля ​этого ​необходимо поставить на ''/​hidden/data'' ​соответствующие права доступа,​ см. чуть ниже.)).
-  - Всё, для чего записей в ''/​etc/​fstab''​ нет, монтируется ​только при первом обращении. +
-  - Кроме ​того всё, для ​чего ​записей в ''/​etc/​fstab'' ​нет, отображается в меню "Переход" и на рабочем столе+
-  - Всё, смонтированное в подкаталоги ''/​media'', ​так же отображается на рабочем столе и в меню "Переход"​. +
-  - Для нормальной работы с разделом винчестера ​для него должна быть запись в ''/​etc/fstab''​.+
  
-Если вы всё ещё не уловили суть вопроса,​ то ничего страшного,​ просто запомните,​ что для всех разделов винчестера обязательно должны быть записи в ''/​etc/​fstab'',​ вот и вся соль.+На всякий ​случай хочу обратить внимание на две вещи: во-первых, указанный ​в качестве точки монтирования для любого диска каталог должен существовать в файловой системе. То есть если вы хотите смонтировать какое-то устройство в ''/​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 =====
  
-Осталось только рассказать,​ как же устроен файл ''/​etc/​fstab''​ и что в него надо писать. Начну с того, что этот файл является системным конфигом, поэтому для его редактирования нужны права ''​root''​, если вы забыли,​ как редактировать конфигурационные файлы системы,​ прочитайте снова [[пользователи_и_группы|статью]] про права доступа.+А теперь собственно к практике. ​Осталось только рассказать,​ как же устроен файл ''/​etc/​fstab''​ и что в него надо писать. Начну с того, что этот файл является системным,​ поэтому для его редактирования нужны права ''​root''​. Если вы забыли,​ как редактировать конфигурационные файлы системы,​ прочитайте снова [[пользователи_и_группы|статью]] про права доступа.
  
 Итак, открыв ''/​etc/​fstab''​ вы увидите достаточно небольшое содержимое,​ у меня этот файл выглядит так: Итак, открыв ''/​etc/​fstab''​ вы увидите достаточно небольшое содержимое,​ у меня этот файл выглядит так:
  
-{{ beware.png }}+{{ .:​монтирование_и_fstab:​fstab.png }}
  
 Каждому разделу винчестера отводится одна строка. Строчки,​ начинающиеся с символа решётки (''#''​),​ являются комментариями и системой игнорируются. Формат каждой записи очень простой:​ Каждому разделу винчестера отводится одна строка. Строчки,​ начинающиеся с символа решётки (''#''​),​ являются комментариями и системой игнорируются. Формат каждой записи очень простой:​
Строка 41: Строка 47:
 <​file>​раздел_винчестера точка_монтирования файловая_система опции_монтирования два_вспомогательных_числа</​file>​ <​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''​ и точку монтирования на желаемую. Кроме того, если в качестве ФС в ''​mtab''​ записано ''​fuseblk'',​ то при копировании необходимо подставить вместо этого значения имя своей файловой системы. Если вы не знаете,​ как правильно должна называться ваша ФС в ''​fstab'',​ то поищите информацию на эту тему в интернете. И если вы не наделаете ошибок при замене,​ то при следующей загрузке диск смонтируется туда, куда вы указали.
 +
 +На этом я заканчиваю краткое,​ хоть и достаточно запутанное,​ знакомство с файлом ''/​etc/​fstab''​ и системой монтирования дисков в Ubuntu. Более того, на этом так же заканчивается вся информация,​ которую я хотел вам рассказать про Ubuntu. Ну и дабы не завершать руководство столь неочевидным рассказом про специфическую настройку системы,​ я завершу его статьей с красивым названием "​Эпилог":​
  
 +  * [[эпилог|Эпилог]]