понедельник, 13 апреля 2015 г.

Несколько Linux систем (и не только) - одни общие документы (Итого).

Я уже затрагивал тему организации каталогов при работе на компьютере с несколькими операционными системами. В Части 1 была затронута тема решения вопроса с применением утилит xdg и затронут краем момент монтирования разделов через редактирование fstab. В Части 2 была предложена схема реализации с применением симлинков.
Эта часть получится как бы итоговой, и в ней я хочу изложить свой взгляд на комфортное обустройство своего рабочего пространства.

Первоначально необходимо определить задачи которые мы будем решать, для этого приведу свою разбивку диска.
Красными прямоугольниками выделены разделы с операционными системами, салатными прямоугольниками разделы с данными.
Как видите разделы с данными имеют разный формат (ntfs и ext4) это сделано специально для того что бы организовать работу с Windows.
Задача - организовать работу с каталогами "Документы", "Видео" и пр., а также с облачными хранилищами таким образом что бы они были доступны из всех операционных систем установленных на данном компьютере.

Немного отойду от основной темы и остановлюсь на использовании xdg-user-dirs и  gtk-bookmarks (этот предварительный этап облегчит дальнейшие настройки и использование).

По умолчанию если вы поставили русский в качестве основного языка системы то все ваши каталоги расположенные в home будут иметь название на русском языке, а именно "Рабочий стол", "Документы", "Видео", ...
Это с одной стороны удобно, ты находишься в своей языковой среде, а с другой не очень, при вводе тех или иных команд связанных с использованием или настройкой системы ты вынужден переключатся с раскладки на раскладку, да и к сожалению вписать нужное название и смысл каталога в одно слово часто просто не получается, так могуч и витиеват язык Толстого и Пушкина.
Дабы упростить себе жизнь хотя бы в некоторых эпизодах работы, мы немного подправим эту ситуацию сразу после установки (можно сделать это уже и в процессе эксплуатации), сменим на уровне системы названия наших каталогов, и в этом этом помогут утилиты из группы xdg которые же и установили нам русские названия.
В терминале дадим вот такую команду
$ LANG=C xdg-user-dirs-gtk-update --force
или
$ LANG=C xdg-user-dirs-update --force
Первая команда (это тоже самое что и вторая, только имеет gtk интерфейс, часто в некоторых системах этот пакет отсутствует, если есть надобность установить, то командуем sudo apt-get install xdg-user-dirs-gtk) выдаст окно

в котором надо ознакомится с информацией, и не забыть поставить птицу, дабы при следующем входе в систему вам не предлагали опять сделать этот выбор.
Вторая даст в терминале вот такой листинг
ulyssesd@acer-debian:~$ LANG=C xdg-user-dirs-update --force
Moving DESKTOP directory from Рабочий стол to Desktop
Moving DOWNLOAD directory from Загрузки to Downloads
Moving TEMPLATES directory from Шаблоны to Templates
Moving PUBLICSHARE directory from Общедоступные to Public
Moving DOCUMENTS directory from Документы to Documents
Moving MUSIC directory from Музыка to Music
Moving PICTURES directory from Изображения to Pictures
Moving VIDEOS directory from Видео to Videos
Часто после применения данной команды каталоги в home дублируются

Как вы видите правильные иконки уже имеют каталоги с английскими названиями, а те что просто имеют вид каталога уже не используются системой в качестве "системных" путей. Дублирование часто возникает из-за того что в каталогах уже присутствует какая либо информация (или по иным причинам, непонятным для меня, как в моем случае, т.к. все эти операции проводились на свежеустановленной системе при первом входе).
Если у вас есть желание проделать данные изменения вручную, то вот вам информация где все это хранится:
~/.config/user-dirs.dirs - здесь список переменных xdg и прописанный путь к каталогам (в Части 1, я его использовал как один из вариантов смены путей к стандартным каталогам)
~/.config/user-dirs.locale - в моем варианте файл вообще отсутствовал, т.к. я выбрал значение "С" которое согласно Freedesktop.org является значением по умолчанию также в качестве значения LANG вместо C можно задать значение POSIX или C.UTF-8 тогда оно запишется в этот файл. Что бы вернуть все назад можно указать в команде которую я приводил выше необходимо указать LANG=ru_RU или в этот файл вписать значение ru_RU.
Есть еще один интересный файл в системе
~/.gtk-bookmarks (по умолчанию в Debian Jessie + Mate, Ubuntu Mate 15.04, Manjaro, LMDE2 этот файл отсутствует), я решил его создать сразу т.к. в дальнейшем он мне пригодится, да и при наличии данного файла с записями меню "Переход", смотрится совершенно по другому

Итак создаем файл
$ pluma ~/.gtk-bookmarks
(если используете другие рабочие среды, то замените pluma на свой редактор который вы используете по умолчанию)
и вставим в него вот такие строки
file:///home/%user%/Downloads
file:///home/%user%/Documents
file:///home/%user%/Music
file:///home/%user%/Pictures
file:///home/%user%/Videos
Где вместо %user% необходимо указать своего пользователя.
Если вы активно пользуетесь закладками вашего файлового менеджера (или планируете), то этот файл все равно появится.
Я в него заранее добавлю еще 2 строчки, дабы перед предстоящими манипуляциями с каталогами и симлинками упростить задачу
file:///home/%user%/Yandex.Disk
file:///home/%user%/Dropbox
Caja поддерживает возможность "drag and drop" при работе с закладками, т.е. любой каталог или файл можно мышкой перетащить на панель и тут же появится закладка.
Про настройку xdg и gtk-bookmarks наверное хватит, все что я для себя планировал я сделал.
Следующей задачей будет подключение дисков и создание симлинков к стандартным каталогам на разные диски.

Для уменьшения (или полного исключения), работы с терминалом воспользуемся пакетами которые нам доступны из стандартных репозитариев или установлены по умолчанию.
Есть такой пакет как gnome-disk-utility.
Написано про него в сети достаточно, я в данному случае буду использовать его исключительно для автоматизации монтирования дисков и сведения к минимуму ручных действий и работы с терминалом, а также к минимуму ковыряния в fstab.
Все эти действия связаны в первую очередь с тем что бы правильно развести использование стандартных каталогов "Документы", "Видео" и пр. между разными разделами с использованием средств утилиты xdg или организации этого с помощью симлинков, это необходимо для обеспечения комфортной работы не зависимо от версии системы которую мы используем (в моем случае после всех этих операций я получу одну и туже удобную систему в Debian Jessie Mate, Ubuntu Mate, Manjaro, LMDE2 и даже немножко в Windows)
Итак начнем.
Сама утилита, в некоторых системах она уже установлена, а там где ее нет установим
$ sudo apt-get install gnome-disk-utility
После установки найти и запустить ее очень просто

и после запуска мы видим вот такое окошко

Меня будут интересовать разделы My_Home и My_Data (на скриншоте они обведены и обозначены цифрами 1 и 2), как видите они имеют даже разные файловые системы.
Для настройки каждого раздела мы будем пользоваться "шестеренкой" (помечена и обозначена цифрой 3), после выбора раздела и нажатием на оную мы в результате получим вот такое меню
Нас интересует в данном случае только выделенный пункт "Изменить параметры монтирования", на который мы доблестно давим и получаем вот такое окно
Как видите здесь все пока отключено. Я сделал все необходимые настройки, получилось у меня вот так

А теперь немного объясню что же я там менял и для чего.
- включил автоматическое монтирование при запуске (что приводит к автоматическому добавлению строки в ваш fstab, о том как это сделать в ручную я писал в Части 1)
- прописал опции монтирования (x-gvfs-show - утилита дописала сама, я возражать не стал, т.к. особых сложностей при работе не вызывает)
- приписал точку монтирования используя каталог media вместо mnt
- поставил идентификацию по UUID, так надежнее, не все системы еще могут проводить идентификацию по метка разделов на диске и прочему
- явно указал тип файловой системы, т.к. параметр auto тоже еще не всеми системами отрабатывается
Для диска с ext4 у меня получилось вот так

Т.к. у нас разные файловые системы то и опции монтирования немного отличаются.
При монтировании ntfs у нас особых сложностей не возникнет, там после перезагрузки вы сразу получаете все права и на запись и на удаление, а вот с разделом ext4 нам еще предстоит проделать некоторые манипуляции, т.к. мы сразу после перезагрузки можем и не получить даже право создать файл, т.к. по умолчанию владельцем данного диска является root.
Если мы заглянем в каталог /media то увидим что система создала 2 точки монтирования
ulyssesd@acer-lmde2 /media $ ls -l
итого 12
drwxr-xr-x  2 root root 4096 апр 10 20:22 My_Data
drwxr-xr-x  2 root root 4096 апр 10 20:22 My_Home
drwxr-x---+ 2 root root 4096 апр 10 20:21 ulyssesd
Если вдруг там нет созданных вами точек монтирования, просто в gnome-disk-utility воспользуйтесь кнопками примонтировать/размонтировать (треугольник и квадрат) и все должно стать на свои места.
Далее отмонтируем все разделы (обязательно!)
И установим новые права разделу "My_Home" т.к. он у нас отформатирован в ext4, для этого таки придется открыть терминал (Ctrl+Alt+T) ну или в крайнем случае воспользоваться Alt+F2 и выдать вот такую команду
sudo chmod -R 0777 /media/My_Home
после чего у меня получился вот такой вывод ls
ulyssesd@acer-lmde2 /media $ ls -l
итого 12
drwxr-xr-x  2 root root 4096 апр 10 20:22 My_Data
drwxrwxrwx  2 root root 4096 апр 10 20:22 My_Home
drwxr-x---+ 3 root root 4096 апр 10 21:03 ulyssesd
Вот теперь у нас проделана основная черновая работа и мы смело можем перезагрузить систему дабы все наши изменения были проверены и вступили в силу (гуру могут просто перемаунтить разделы).
Теперь перейдем к созданию симлинков (это практически повтор Части 2, только в ней я работал с кириллическими именами каталогов).
Т.к. у меня аж 4 системы подлежат такому действу я сделал для себя скриптик, вот его содержимое
#!/bin/sh
# Скрипт по привязке папок из каталога home/user
# к другому примонтировану разделу
# все операции проводятся с правами обычного пользователя
# !!! без использования sudo или прав root !!!
# !!! Перед запуском убедитесь что необходимый раздел примонтирован и доступен !!!
# Также необходимо проверить что бы все папки на которые делаются симлинки были пусты
# т.к. они будут удалены перед созданием симлинка
rm -fR ~/Videos
ln -s /media/My_Data/Videos /home/ulyssesd
rm -fR ~/Documents
ln -s /media/My_Home/Documents /home/ulyssesd
rm -fR ~/Pictures
ln -s /media/My_Data/Pictures /home/ulyssesd
rm -fR ~/Downloads
ln -s /media/My_Data/Downloads /home/ulyssesd
rm -fR ~/Music
ln -s /media/My_Data/Music /home/ulyssesd
rm -fR ~/Desktop
ln -s /media/My_Home/Desktop /home/ulyssesd
rm -fR ~/Public
ln -s /media/My_Home/Public /home/ulyssesd
rm -fR ~/Templates
ln -s /media/My_Home/Templates /home/ulyssesd
# Опционально для тех кто использует облачные хранилища
rm -fR ~/Dropbox
ln -s /media/My_Data/Dropbox /home/ulyssesd
rm -fR ~/Yandex.Disk
ln -s /media/My_Data/Yandex.Disk /home/ulyssesd
В результате все каталоги в домашнем, приобретут стрелочки.

После всего этого можно устанавливать yandex disk и dropbox, которые вполне нормально относится к симлинкам и сразу копируют (или синхронизируют) ваши файлы в нужное место, я их запустил, и продолжил заниматься своими делами а они тихо себе все синхронизировали и копировали без моего вмешательства.
Касательно других облачных хранилищ - я ими активно не пользуюсь и меня пока устраивают веб версии, в планах посмотреть в сторону Google, но это уже как руки дойдут, если кто в комментариях отпишется что проверено и "мин" нет, с описанием как он это проделывал, то добавлю сюда (это же касается и остальных облаков).
Я там как то краем Windows упоминал ранее, есть повод к ней вернутся.
Читая в сети материалы по симлинкам для linux систем открыл для себя что их аналог есть в Windows, аж с 2000 версии, и подумав, понял что я ими там очень активно пользовался, т.к. вся структура папки пользователя на них построена.
Меня всегда раздражала фенечка Windows пхать все на один диск, из-за этого будучи активным пользователем оной, всегда старался все документы держать на другом диске, а со временем и полностью переносить на другой диск папку своего пользователя.
Т.к. иногда приходится заглядывать и в Windows (а он у меня есть и притом в версии аж 8.1), то хочется все свои материалы иметь под рукой, а т.к. сие поделие без костылей пока не научилось работать с ext4, то как вы заметили у меня один из разделов отформатирован в ntfs как раз для таких вот забегов.
Что мы делаем, а делаем мы следующее - "тыц" правой кнопкой мышки на папку для которой необходимо изменить путь (в моем случае "Видео")

выбираем вкладку "Расположение", указываем руками или выбираем через проводник новое место на другом диске и жмем "Ок". Windows по доброте своей душевной еще и файлы со старого места в новое скопирует сама.
В результате получаем вот такое

Вы видите что папки имеют кириллические названия, ничего страшного, это система вам только на экран выводит, на самом деле как они назывались (в моем случае на английском), так все и осталось. Вариант смены расположения работает также и для облачных хранилишь, как во время установки клиента, так и в случае если он был ранее установлен (при совмещении папок, замучаетесь соглашатся с вопросами системы).
В результате совмещения с Windows на разделе My_Data стали видны системные папки
Удалять их бесполезно, Windows их при следующем разе опять создаст, есть вариант скрыть с глаз долой дабы не раздражали.
Для этого в корне раздела создаем файл с именем .hidden и в него прописываем те каталоги которые не хотим видеть
$RECYCLE.BIN
System Volume Information
desktop.ini
После этих манипуляций каталог стал иметь более пристойный и привычный вид

Вот в принципе и все, поставленная задача решена без особых сложностей сразу в 5 системах и притом довольно разных.

0 коммент.:

Отправить комментарий