Udisks, udev та все-все-все

На кону тема монтування файлових систем: локальних та мережевих. У процесі міркування будуть порушені загальні положення, допоміжні програми (21 століття на подвір'ї, не ручками ж монтувати), та й, власне, налаштування цих. Відразу треба зазначити, що пост навряд чи буде цікавим з практичної точки зору лінуксоідам, що сидять під Ubuntu або Fedora. У user-friendly дистрибутивах це працює «з коробки». Користувачі gentoo або arch linux можуть витратити кілька хвилин на читання, щоб налаштувати те, що ще не налаштоване або поправити те, що працює не так, як хочеться.

Насамперед, хотілося б, щоб читач переконався в наявності dbus (з прапором X для домашнього користування) і в тому, що цей демон запускається при старті системи. Якщо ця умова не виконується, встановіть dbus і додайте його до автозапуску:

Конфігурація ядра

Деякі з утиліт, які налаштовуватимуться, вимагатимуть включення в ядрі особливих опцій. Зокрема udisks2 бажає, щоб був включений swap-розділ, активована FUSE та USB autosuspend .

Перевірити наявність або відсутність опцій можна за допомогою команди zcat, так:

Переконавшись, що потрібні опції є або зібравши ядро ​​з ними, можна приступати до наступного пункту: встановлення додатків.

Встановлення додатків

Насамперед варто було б встановити udev або його аналог eudev (тільки для gentoo). Udev – менеджер пристроїв для нових версій ядра Linux, який є наступником devfs, hotplug та HAL. Його основне завдання – обслуговування файлів пристроїв у каталозі /dev та обробка всіх дій, що виконуються у просторі користувача при додаванні/вимкненні зовнішніх пристроїв, включаючи завантаження firmware;

Далі fuse - дозволяє користувачам без привілеїв створювати їхвласні файлові системи без необхідності переписувати код ядра;

udisks2 - D-Bus-інтерфейс і відповідний демон для управління накопичувачами, як знімними, так і, наприклад, жорсткими дисками;

curlftpfs - дозволяє монтувати каталоги з ftp-серверів;

sshfs-fuse - дозволяє керувати файлами з SFTP;

util-linux - просто обов'язково, утиліти, що відповідають за можливість монтування в принципі;

Така можливість підтримується не всіма менеджерами файлів.

Тепер непогано було б відразу розглянути можливі опції монтування, щоб знати, коли і що саме нам може стати в нагоді.

-t- вказівка ​​на тип файлової системи

-o- вказівка ​​на спеціальну опцію монтування

-a- змонтувати всі файлові системи, прописані в /etc/fstab

defaultsвикористання опцій монтування за замовчуванням: rw, suid, dev, exec, auto, nouser, async
autoавтоматично монтувати файлову систему під час завантаження
noautoне монтувати файлову систему автоматично
roмонтувати лише для читання
rwмонтувати для читання та запису
swмонтувати розділ підкачування
atimeзмінювати параметр "час доступу при зверненні до файлів (за замовчуванням)"
relatimeзмінювати параметр «час доступу» тільки для запису для покращення продуктивності
noatimeніколи не змінювати час доступу для найкращої продуктивності
syncвсе введення-виведення здійснюється синхронно
asyncвсе введення-виведення здійснюється асинхронно
execсистемаможе містити файли, що виконуються
noexecзаборонити виконувані файли
suidдозволити інтерпретацію бітів SUID та SGID
nosuidне дозволяти інтерпретацію бітів SUID та SGID
userдозволити звичайному користувач (не має права root) монтувати і розмонтувати дану файлову систему
usersдозволити кожному користувачеві монтувати цю ФС
nouserмонтування дозволено лише користувачеві root

Монтування iso-образу (образ диска):

У прикладі спочатку було створено каталог для монтування, потім підмонтовано образ диска із зазначенням його файлової системи (iso9660), ім'ям (image.iso), точкою монорування (/mnt/iso). Втім, зараз у більшості випадків файлова система пристрою розпізнається автоматично.

Якщо один і той же накопичувач повинен бути змонтований і доступний завжди, можна внести відповідний запис /etc/fstab :

Монтувати можна як за UU >/mnt/ntfs при завантаженні системи, вказівкою кодування для коректного відображення імен файлів та каталогів. Але до ntfs ми ще повернемося трохи згодом.

Щоб дізнатися UU >blkid :

Додавання користувача до потрібної групи

Групи різних дистрибутивах linux можуть відрізнятися своїм найменуванням. Якщо ви не знайшли вказану тут групу, шукайте подібну до неї. Список всіх груп можна побачити, відкривши файл /etc/group:

Щоб додати користувача до потрібної групи, скомандуйте:

де username - ім'я вашого користувача

group — найменування групи, в якій має бути користувач

wheel - група адміністраторів (їй ми даватимемо права на монтування)

storage - доступдо знімних накопичувачів. Ця група є в archlinux, в gentoo такої немає, зате є група plugdev.

users - звичайний користувач

Таким чином, можна дозволити монтування або користувачам з адміністративними привілеями, або тільки користувачам, що входять до групи storage (директору та бухгалтеру можна, решті як завжди), або всім користувачам зі стандартним набором прав.

Монтування локальних дисків

Класика жанру: монтування розділів за допомогою редагування /etc/fstab . Приклад:

У цьому прикладі передбачається використання файлової системи iso9669 для дисководу, vfat (FAT32) для знімного накопичувача. Команду та опції монтування у випадку з файловим менеджером spacefm можна легко налаштувати.

Дане вище, цілком собі робоче правило, за твердженням лінуксоїда-старожила @zagrei має бути замінено на інше. За роботу останнього не ручаюся, але, довіряючи товаришеві з ОС, який поганого не порадить, наводжу тут. Виглядає воно куди більш витончено (мабуть з огляду на відсутність xml):

Якщо всупереч очікуванням не все пішло гладко і монтування вимагає прав рута, можна вдатися до зміни політики udisks. Для цього потрібно внести деякі зміни у наведеному нижче файлі:

Інший спосіб полягає у використанні uam + pmount. Бажаючі піти цим шляхом повинні встановити зазначені пакети та додати користувача до відповідної групи:

Щоб коректно відображалася кирилиця при монтуванні NTFS-розділів, потрібно трохи видозмінити налаштування у файлі /etc/udev/uam.conf :

Монтування мережних дисків

Для монтування каталогів з ftp-сервера потрібно встановити вже згадану curlftpfs, після чого монтування в консолі зводиться до нехитрих рухів тіла:

де public_html— каталог у домашній директорії користувача, а за сумісництвом точка монтування

можна

Для монтування каталогів віддаленого хоста через SSH:

Щоб змонтувати від непривілейованого користувача:

Зрозуміло, що ми і файловий менеджер можемо навчити монтувати видалені каталоги. Хоча порівняно з консоллю швидкістю своїх дій він похвалитися не зможе. Нагадується, що для цього потрібен встановлений udevil, налаштування якого ми й підемо правити в /etc/udevil/udevil.conf. Перед редагуванням рекомендується зберегти цей файл з іншим ім'ям на випадок, якщо щось піде не так, як нами заплановано. Зробимо це:

У такій конфігурації користувач повинен бути доданий до групи storage або plugdev. За потреби можна вказати будь-яку з можливих файлових систем: cifs, smbfs, nfs, curlftpfs, ftpfs, sshfs, tmpfs, ramfs.

Що робити з NTFS?

Тут є два варіанти: увімкнути підтримку ntfs в ядрі або поставити пакет ntfs3g. Для першого випадку конфігурація буде такою:

У другому (рекомендованому) випадку достатньо поставити вказаний вище пакет і надати користувачеві права на монтування. Якщо є потреба, змонтувати вручну:

Примітка: flash-накопичувачі, які використовуються для зберігання даних, можна відформатувати в exFAT. Windows, починаючи з Win Seven, розумітиме і радісно прийматиме пропрієтарну файлову систему від розробників з Редмонда. Для коректної роботи у UNIX-системах слід встановити пакет fuse-exfat. ФС буде доступна як для читання, так запису.

Для розділів, відформатованих у FAT32, вказати тип vfat :

Для MS-DOS аналогічно:

Якщо в rules.d задані права на монтування, можна буде відкривати диски з ntfs у файловому менеджері.

Монтування android-пристроїв

А тут нам примудрилися, як би це пом'якше висловитися, зіпсувати погоду. Цитую причину:

Починаючи з третьої гілки в платформі Android, змінився метод організації зовнішнього доступу до накопичувача мобільного пристрою. Якщо раніше пристрій маскувався під USB-накопичувач, який сприймався зовнішніми системами як звичайний USB Flash, то, починаючи з випуску Android 3, для доступу до даних пропонується використовувати розроблений компанією Microsoft протокол MTP.

Бінарний блоб та ще від Microsoft є безумовне зло. Але сьогодні не про це. Давайте вирішимо проблему встановленнямjmtpfs.

Коротко про встановлення. У випадку з gentoo потрібна утиліта на момент написання посту розташовується в сторонньому оверлеї poly-c :

Чудово. Тепер приступимо до монтування. Створимо каталог для монтування, змонтуємо та розмонтуємо пристрій, ввівши відповідні команди: