У Raspberry, якщо ви не використовуєте графічний інтерфейс, стає неприємно постійно монтувати нашу пам’ять USB. Крім того, в процесі автоматизації цієї дії (що я покажу нижче) ви можете дізнатися трохи про те, як Linux обробляє пристрої.
Встановіть autofs та udev
Перше, що ми збираємося зробити, це встановити автоф y удев
sudo apt-get встановити autofs udev
udev - це інструмент ядра Linux, який відповідає за управління каталогом / dev, де знаходяться всі пристрої. І autofs дозволяє нам, після налаштування, все монтувати та демонтувати автоматично, як тільки usb підключається або відключається.
Перше, що ми зробимо, це підключити нашу usb-пам’ять (я буду використовувати марку Kingston) до нашого комп’ютера / Raspberry Pi. Потім ми виконуємо:
судо fdisk -l
буде мати результат, подібний до цього:
Disk / dev / mmcblk0: 15.7 GB ... Device Boot Start End Blocks Id System / dev / mmcblk0p1 2048 1607421 802687 e W95 FAT16 (LBA) / dev / mmcblk0p2 1613824 30613503 14499840 85 Linux, розширений / dev / mmcblk0p3 30613504 Linux … .. Диск / розробник / sda: 30679039 ГБ ... Початок завантаження пристрою Кінець блоків Ідентифікатор System / dev / sda32768 83 30.9 1 c W2048 FAT60436479 (LBA)
Моя зовнішня usb-пам’ять має 30.9 ГБ (тобто це / dev / sda1), тоді як пам’ять SD, де я встановив Linux, має 15.7 ГБ.
Спеціальні правила в udev
Знаючи, що sda1 - наш пристрій, ми будемо використовувати udev для вилучення інформації з пам'яті, тому виконуємо таку команду:
udevadm info -a -p $ (udevadm info -q шлях -n / dev / sda1)
будуть блоки, розділені фразою "дивлячись на батьківський пристрій '/ пристрої / ... .."
щоб полегшити пошук, ми можемо використовувати grep, тому я роблю наступне:
udevadm info -a -p $ (udevadm info -q шлях -n / dev / sda1) | виробник grep
у моєму випадку, оскільки моєю пам'яттю є Kingston, результат:
ATTRS {виробник} == "Kingston" # 1 ATTRS {виробник} == "Linux 3.12.28+ dwc_otg_hcd"
або ми також можемо шукати:
udevadm info -a -p $ (udevadm info -q шлях -n / dev / sda1) | grep модель udevadm info -a -p $ (udevadm info -q шлях -n / dev / sdd1) | постачальник grep
Я зацікавлений:
ATTRS {виробник} == "Кінгстон"
Як це було першим збігом обставин. У виведенні команди удевадм Шукаю блок, де вперше з’являється "ATTRS {Manufacturer}"
Я беру деякі дані, які я вважаю унікальними з пристрою блоку, у моєму випадку:
ATTRS {product} == "xxx" ATTRS {serial} == "xxxx" DRIVERS == "usb"
вам просто потрібно створити правила. Ми робимо файл, закінчений в .rules в udev:
sudo nano /etc/udev/rules.d/personal.rules
всередині файлу, який ми помістили
ATTRS {product} == "xxx", ATTRS {serial} == "xxx", DRIVERS == "usb", SYMLINK + = "miusb"
Тепер, коли я підключаю свій usb, буде файл / dev / miusb. Це було найскладніше.
Налаштування автозаписів
Ми виконуємо:
sudo nano / etc / default / autofs
де написано "TIMEOUT =", вони ставлять "TIMEOUT = 1"
Переходимо до /etc/auto.master
nano /etc/auto.master
і всередині файлу, який ми помістили в останньому рядку:
/ media /etc/auto.misc
тепер ми переходимо до /etc/auto.misc
nano /etc/auto.master
і в останньому рядку пишемо:
mymemory -fstype = vfat, users, rw, umask = 000: / dev / miusb
нарешті, ми змушуємо завантажувати модуль autofs на початку:
sudo nano / etc / modules
і в останньому рядку пишемо:
autofs4
і вуаля, ми перезапускаємо малину. Майте на увазі, що папка не існує в / media, але коли ми робимо a
cd / media / memory
ми вже всередині. І якщо ми припинимо його використовувати, папка зникне, і ми зможемо вилучити пристрій, не демонтуючи його вручну.
дякую за розміщення 🙂
Я думаю, що сталася помилка, на етапі редагування auto.misc в коді пишеться auto.master, на випадок, якщо хтось підозрюючий це зробить і не зрозуміє 🙂
Дякую, я просто хотів зробити це на Raspbian, я раніше використовував Arch, і це було простіше.
Дуже добре, що мені це довелося зайняти, коли я поставив свій Pi як торрент-клієнт з каталогами, якими користується samba.
У посібнику fstab сказано, що дещо більш надійним є перевірка етикетки пристрою за допомогою # blkid, у моєму випадку у мене автоматично встановлюється розділ windows при кожному запуску наступним чином:
/ dev / sda2
UUID = 24A0729FA07276E0 / home / azureus / Windows ntfs auto, за замовчуванням 0 2
на малині у мене встановлений LVM, я погано пам’ятаю конфігурацію.
Згідно з керівництвом, ви можете використовувати # fdisk -l, щоб отримати номер диска та букву та # blkid, щоб знати, яка мітка відповідає якому диску.
Привіт.
[Оновлення]
Ця мітка виникає внаслідок того, що є люди (такі як я), яким лінь відключати том кожного разу, коли комп’ютер вимикається, проблема полягає в тому, що у вас є кілька томів, оскільки він не завжди встановлюється в одному порядку після декількох перезавантажень . До речі, це має недолік, коли пристрій, що відповідає призначеній мітці для автоматичного монтажу, видаляється, видає помилку і не дозволяє завантажувати / home у випадку, якщо розділ встановлений на home. Цю проблему можна вирішити коментарем пристрою, що спричиняє конфлікти у fstab, або повторним підключенням пристрою