вторник, 17 марта 2015 г.

Как реализовать автоматическое монтирование заданного раздела


Как известно, любой внешний накопитель USB, подключаемый к системе «Linux», автоматически монтирует все имеющиеся на нём разделы. Причём если диск подключить к работающей ОС — все его тома не только монтируются, но ещё и открываются в отдельных окнах файлового менеджера. Если же USB-носитель подключён до загрузки — логические диски монтируются, но окна не открываются. Из этого следует, что если Ваш «Linux Mint» установлен на внешнем USB-носителе, то не о чем и беспокоиться — все разделы диска благополучно смонтируются при загрузке без лишних забот и хлопот.
Но не так обстоят дела с внутренним жёстким диском. При загрузке «Linux Mint» монтируется только тот раздел, на который установлена операционная система. Другие доступные тома этого носителя отображаются на боковой панели файлового менеджера, и чтобы смонтировать нужный диск, требуется выбрать его мышкой.
Впрочем, реализация автоматического монтирования требуемого раздела при загрузке «Linux Mint» — процедура достаточно простая. Раньше решать эту задачу приходилось исключительно путём внесения изменений в системный конфигурационный файл «fstab». Но для того, чтобы этот метод адекватно сработал, требовалось чётко знать, какие именно данные и в какой последовательности туда вносить, зависимо от того, в какой файловой системе отформатирован раздел. Однако прогресс не стоит на месте, и теперь включить автоматическое монтирование требуемого логического диска — дело достаточно тривиальное, да к тому же, не требующее вмешательства в конфигурацию системы.

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

Для того, чтобы при загрузке системы смонтировался именно тот раздел, который Вам нужен, а не какой-нибудь другой, в команду на выполнение этой задачи необходимо включить точную о нём информацию. Это может быть либо метка тома, проще говоря, его имя, заданное в процессе разметки диска, либо так называемый UUID — уникальный цифровой идентификатор — на тот случай, если метка разделу не присвоена. Ссылка на монтируемый том вида «/dev/sdXХ» тут совершенно не подходит.

Почему нельзя вместо UUID или метки раздела воспользоваться записью типа «/dev/sdXХ»? Дело в том, что такие ссылки не являются постоянными. Попробуйте представить следующую ситуацию. Предположим, что в процессе создания команды, запускающей монтирование раздела, Вы, руководствуясь данными «Системного монитора», указали том как «/dev/sdb. Затем Вы по какой-то причине перезагрузили компьютер, подключив к нему внешний USB-накопитель. В этом случае система переназначит адреса разделов, и ссылка на нужный Вам логический диск почти наверняка изменится — и теперь уже будет не «/dev/sdb, а, скажем «/dev/sdс. Как Вы думаете, какой из разделов автоматически смонтируется? Конечно же, тот, который Вы указали, то есть «/dev/sdb. Но по этому адресу уже прописан раздел совершенно другого диска. Идентификатор UUID — уникален и система не меняет его никогда, также как и метку раздела.

Итак, приступим к поиску нужной нам информации. Обычно значки всех распознанных системой логических дисков можно увидеть на боковой панели файлового менеджера (включается и выключается клавишей F9). Если том имеет метку, то соответствующее имя отображается рядом с его пиктограммой, если же метка не присвоена, то имя такого раздела будет начинаться со слова «Том». Например, «Том 100 GB», «Том 50 GB».
Давайте щёлкнем мышкой по значку такого безымянного тома, чтобы его смонтировать: если он не пуст, то в окне файлового менеджера отобразятся хранящиеся на нём файлы и папки:
Как видите, в заголовке окна вместо несуществующего имени раздела файловый менеджер отобразил ряд цифр и букв латинского алфавита — это и есть UUID — уникальный идентификатор тома. Однако не набирать же все эти символы вручную — и неудобно, да и ошибиться можно запросто. Поэтому щёлкнем по свободному пространству этого окна правой кнопкой мыши и выберем в контекстном меню «Свойства»UUID будет отображён в первой же строчке открывшегося диалогового окна. Но здесь он уже будет доступен для копирования:
Не будем закрывать это окно, чтобы на следующем этапе можно было скопировать идентификатор для его последующего включения в создаваемую команду.

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

Пример 1
udisksctl mount -b /dev/disk/by-label/DATA
Пример 2
udisksctl mount -b /dev/disk/by-uuid/875648c0-0f1d-8477-dd5a-5a083701190c
Команда «udisksctl» вызывает фоновое приложение «udisks2», которое в «Linux Mint» отвечает за доступ к дискам, их монтирование и отсоединение. Все наши манипуляции с томами на боковой панели оконного менеджера реализуются в фоновом режиме посредством именно этой команды.
Команда «mount», следующая за «udisksctl» отвечает за монтирование раздела. За ней идёт служебный аттрибут «-b»: говоря упрощённо, он указывает на то, что монтируемый диск является блочным устройством, то есть накопителем c кэш-памятью, в отличие от, скажем, оперативной памяти. Разумеется, эти данные мы оставим без изменения.
«/dev/disk/by-label» или «/dev/disk/by-uuid» — это адрес, по которому программа будет искать данные о монтируемом томе. Потому что именно в этих директориях система регистрирует все распознанные логические диски, «раскладывая» для удобства разную информацию о них по отдельным папочкам.

Если Вам интересно, можете найти и открыть директорию «/dev/disk/» в файловом менеджере. Среди других там будут присутствовать и папки с названиями «by-label» и «by-uuid»:
Открыв папку «by-label», Вы увидите там ссылки на все тома, которым были присвоены метки. А в папке «by-uuid» Вы обнаружите ссылки, содержащие в своём названии исключительно цифровые идентификаторы. Если в Вашей системе не все разделы имеют метки, то количество ссылок в этой папке будет больше, поскольку присвоение имени — дело добровольное, а вот идентификаторы имеют все без исключения логические диски, даже и те, которым была присвоена метка. Следует также добавить, что в этих папках хранятся данные и о скрытых разделах, которые в файловом менеджере, как правило, не отображаются.

Итак, если диску была присвоена метка, то мы указываем её после «/dev/disk/by-label/» — здесь в качестве метки тома используется имя «DATA»:
udisksctl mount -b /dev/disk/by-label/DATA
Если же в нашем распоряжении только UUID, — тогда давайте его скопируем из открытого окна «Свойства» (см. выше) и вставим этот цифровой идентификатор после «/dev/disk/by-uuid/»:
udisksctl mount -b /dev/disk/by-uuid/875648c0-0f1d-8477-dd5a-5a083701190c

Проверка созданной команды
Чтобы удостовериться в работоспособности созданной команды, давайте отсоединим тестируемый том, скопируем сформированную строку из текстового редактора в окно открытого терминала и нажмём «Enter». Если всё сделано правильно, то на Рабочем столе должен появиться значок смонтированного раздела, а на боковой панели файлового менеджера рядом с пиктограммой тома — стрелочка для отсоединения. Проверим, тот ли раздел смонтировался, можем ли мы беспрепятственно выполнять с ним операции копирования и вставки, наконец, отсоединяется ли он привычным способом.

Если что-то идёт не так, то скорее всего при создании команды была допущена какая-то ошибка. В этом случае нужно всё тщательно перепроверить: посмотреть, правильно ли был скопирован идентификатор диска, не «потерялся» ли какой символ; не было ли допущено ошибки в написании имени тома — строчные буквы должны оставаться строчными, а прописные прописными; не появился ли где лишний пробел. После проверки и исправления ошибок и повторения процедуры тестирования всё должно получиться и заработать. Заметьте, что никаких паролей Вам вводить не понадобится — операция монтирования раздела осуществляется от имени простого пользователя.

Включение команды в автозагрузку
Теперь уже ничто не мешает нам перейти к заключительному этапу — включению созданной команды в автозагрузку.
Этот этап — самый простой. В «Центре управления», который можно вызвать из Главного меню, найдём и нажмём кнопку «Запускаемые приложения».
В диалоговом окне «Параметры запускаемых приложений», которое содержит список программ, автоматически запускаемых при загрузке системы, создадим собственный пункт загрузки, который и будет отвечать за автоматическое монтирование требуемого раздела.
Нажмём кнопку «Добавить» — и перед нами предстанет небольшое диалоговое оконце для ввода необходимой информации:
В первое поле ввода — «Имя:» — введём подходящее название, в окошко «Команда:» скопируем из текстового редактора только что созданную нами команду, запускающую монтирование тома, а пункт «Комментарий:» заполним некоторым описанием, помогающим более точно определить назначение нового пункта автозапуска.
После ввода всей необходимой информации, нажмём кнопку «Добавить» — и удостоверимся в наличии нового пункта среди списка автозагружаемых программ:
Нажмём кнопку «Закрыть» и перезагрузим компьютер. О том, что требуемый том смонтировался в автоматическом режиме, Вы узнаете по наличию его значка на Рабочем столе, а также по стрелочке отсоединения справа от его пиктограммы на боковой панели файлового менеджера.


Комментариев нет: