Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
manual:fstab [2009/12/03 15:30] |
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> | ||
+ | |||
+ | Например, в подкаталог ''/hidden/data''((Да, вы можете создавать новые каталоги непосредственно в корне файловой системы. Не стоит этим увлекаться, но и запрещать вам никто ничего не будет.)). При этом диск исчезнет из всех графических программ, но к его содержимому всё же будет доступ по полному пути относительно корня((Конечно есть возможность и полностью скрыть содержимое нежелательных разделов, для этого необходимо поставить на ''/hidden/data'' соответствующие права доступа, см. чуть ниже.)). | ||
- | Вот так всё запутанно и с первого взгляда сложно. если вы всё ещё не осознали, что к чему, то возможно перечисление основных моментов вышеизложенного вам поможет: | + | На всякий случай хочу обратить внимание на две вещи: во-первых, указанный в качестве точки монтирования для любого диска каталог должен существовать в файловой системе. То есть если вы хотите смонтировать какое-то устройство в ''/hidden/data'', то у вас должен существовать каталог ''/hidden/data''. И при этом он должен быть пустой, т.к. его содержимым после монтирования будет являться содержимое подключаемого устройства. А во-вторых права на запись файлов на подключаемые устройства определяются правами на запись в точку монтирования. То есть если вы что-то монтируете в ''/media/data'', то у вас должны быть нужным образом установлены владелец, группа и права доступа к каталогу ''/media/data''. |
- | - Всё, прописанное в ''/etc/fstab'', монтируется автоматически при загрузке Ubuntu. | + | Осталось только немного рассказать про системные директории, вроде ''/home'', и про их отношение к процессу монтирования. Конкретно в ''/home'' хранятся домашние каталоги для всех пользователей компьютера. Помните, при рассказе про установку я говорил, что ''/home'' рекомендуется выделять отдельным разделом для того, чтобы хранить пользовательские настройки отдельно от системы? Это нужно для того, чтобы можно было, например, отформатировать системный раздел и поставить систему заново, при этом сохранив все пользовательские данные в целостности и сохранности. Так вот, если вы ещё этого не поняли, тут стоит обратить внимание на то, что не только дополнительные разделы с помощью механизма монтирования можно вставлять в текущее дерево каталогов, но и выносить на отдельные разделы любые системные каталоги((Только сразу хочу предупредить, в отличие от подключения дополнительных разделов в ''/media'' или в ''/hidden/data'', системные каталоги выносить на отдельные разделы лучше только при установке, если вам вдруг понадобится это сделать после неё, то сначала разберитесь, что и куда надо скопировать и что и где изменить, простого добавления записи в ''/etc/fstab'' для этого недостаточно. Вкратце, для этого нужно загрузиться с LiveCD, потом скопировать текущее содержимое нужного каталога на новый диск, затем удалить данные со старого места, после чего добавить новую запись в ''/etc/fstab'' и напоследок проверить права доступа. Но поскольку выполняя эти операции вы рискуете потерять важные данные, то сначала подробно разберитесь в вопросе, и только потом приступайте к конкретным действиям.)). |
- | - Всё, для чего записей в ''/etc/fstab'' нет, монтируется только при первом обращении. | + | |
- | - Кроме того всё, для чего записей в ''/etc/fstab'' нет, отображается в меню "Переход" и на рабочем столе. | + | |
- | - Всё, смонтированное в подкаталоги ''/media'', так же отображается на рабочем столе и в меню "Переход". | + | |
- | - Для нормальной работы с разделом винчестера для него должна быть запись в ''/etc/fstab''. | + | |
- | Если вы всё ещё не уловили суть вопроса, то ничего страшного, просто запомните, что для всех разделов винчестера обязательно должны быть записи в ''/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'' для нужного вам раздела выполните в термина команду | + | Помните, в [[разметка_диска|статье]] про разметку диска я рассказывал, что разделы винчестера в Linux именуются как ''sdaX'' (или ''sdbX'', ''sdcX'' и т.д. если у вас несколько винчестеров). Так вот, в ''fstab'' используется несколько другой механизм идентификации винчестеров((Хотя можно использовать и классические имена.)). Для этой цели используются так называемые ''uuid'', достаточно длинные строчки из произвольных букв латинского алфавита и цифр((Связано это с некоторыми техническими особенностями, но это несущественно.)). Для того, чтобы узнать ''uuid'' для нужного вам раздела выполните в терминале команду((Как вы может быть догадываетесь, узнать ''uuid'' можно далеко не единственным способом. Например, есть гораздо более информативная команда, требующая, однако, административных привилегий для запуска: |
+ | <code>sudo blkid</code> | ||
+ | Если вас не напряжёт лишний раз ввести пароль, то она вам скорее всего будет более симпатична, чем вариант с ''ls''.)) | ||
ls -l /dev/disk/by-uuid | ls -l /dev/disk/by-uuid | ||
Строка 47: | Строка 55: | ||
Вот как выглядит результат выполнения у меня: | Вот как выглядит результат выполнения у меня: | ||
- | {{ beware.png }} | + | {{ .:монтирование_и_fstab:disks-by-uuid.png }} |
Я думаю, понятно, что к чему, ''uuid'' для каждого раздела выделен голубым цветом. | Я думаю, понятно, что к чему, ''uuid'' для каждого раздела выделен голубым цветом. | ||
Строка 53: | Строка 61: | ||
Итак, первое поле записи в ''fstab'' для разделов винчестера выглядит так: | Итак, первое поле записи в ''fstab'' для разделов винчестера выглядит так: | ||
- | <file>uuid=ваш_uuid</file> | + | <file>UUID=ваш_uuid</file> |
Второе поле - это точка монтирования, тут всё просто, собственно вам всего лишь надо указать желаемую директорию. Однако учтите, что во-первых, указываемый каталог должен существовать, а во-вторых, в записи его имени не должно быть спецсимволов и пробелов. | Второе поле - это точка монтирования, тут всё просто, собственно вам всего лишь надо указать желаемую директорию. Однако учтите, что во-первых, указываемый каталог должен существовать, а во-вторых, в записи его имени не должно быть спецсимволов и пробелов. | ||
Строка 59: | Строка 67: | ||
А вот дальше начинаются хитрости и сложности, описывать которые я не буду. С файловой системой всё просто, а вот опции монтирования - это целая эпопея, требующая не одной отдельной статьи. А уж назначение двух цифирей в конце вообще покрыто мраком и мало кого интересует. | А вот дальше начинаются хитрости и сложности, описывать которые я не буду. С файловой системой всё просто, а вот опции монтирования - это целая эпопея, требующая не одной отдельной статьи. А уж назначение двух цифирей в конце вообще покрыто мраком и мало кого интересует. | ||
- | Но как-то указать все эти параметры всё-таки надо. К счастью, тут можно схитрить. Дело в том, что записи о всех смонтированных дисках попадают в специальный файл ''/etc/mtab'', а формат записей этого файла ровно такой же, как и у ''/etc/fstab''. Поэтому если вам надо добавить запись для какого-то раздела винчестера в ''fstab'' просто зайдите на него через меню "Переход", при этом он автоматически смонтируется в подкаталог ''/media'' и запись о нём появится в ''mtab''. Теперь откройте ''mtab'', найдите нужную строчку (тут уже диски именуются обычным способом) и скопируйте её в ''fstab'', заменив имя диска на его ''uuid'' и точку монтирования на желаемую. Вот и всё, при следующей загрузке диск смонтируется туда, куда вы указали. | + | Но как-то указать все эти параметры всё-таки надо. К счастью, тут можно схитрить((И даже не одним способом. Например, для добавления ntfs-раздела в ''fstab'' можно воспользоваться утилитой ''ntfs-config'', правда предварительно вам придётся её установить.)). Дело в том, что записи о всех смонтированных дисках попадают в специальный файл ''/etc/mtab'', а формат записей этого файла ровно такой же, как и у ''/etc/fstab''. Поэтому если вам надо добавить запись для какого-то раздела винчестера в ''fstab'' просто зайдите на него через меню "Переход", при этом он автоматически смонтируется в подкаталог ''/media'' и следовательно запись о нём появится в ''mtab''. Теперь откройте ''mtab'', найдите нужную строчку (тут уже диски именуются обычным способом) и скопируйте её в ''fstab'', заменив имя диска на его ''uuid'' и точку монтирования на желаемую. Кроме того, если в качестве ФС в ''mtab'' записано ''fuseblk'', то при копировании необходимо подставить вместо этого значения имя своей файловой системы. Если вы не знаете, как правильно должна называться ваша ФС в ''fstab'', то поищите информацию на эту тему в интернете. И если вы не наделаете ошибок при замене, то при следующей загрузке диск смонтируется туда, куда вы указали. |
- | На этом я заканчиваю краткое, хоть и достаточно запутанное, знакомство с файлом ''/etc/fstab'' и системой монтирования дисков в Ubuntu. Собственно, на этом так же заканчивается вся информация, которую я хотел вам рассказать про Ubuntu. Ну и дабы не завершать руководство сложной и запутанной статьёй про специфическую настройку системы, я завершу его статьей с красивым названием "Эпилог": | + | На этом я заканчиваю краткое, хоть и достаточно запутанное, знакомство с файлом ''/etc/fstab'' и системой монтирования дисков в Ubuntu. Более того, на этом так же заканчивается вся информация, которую я хотел вам рассказать про Ubuntu. Ну и дабы не завершать руководство столь неочевидным рассказом про специфическую настройку системы, я завершу его статьей с красивым названием "Эпилог": |
* [[эпилог|Эпилог]] | * [[эпилог|Эпилог]] |