Монтаж CLI против монтажа GUI

21

В Ubuntu 12.10, когда я хочу смонтировать жесткий диск, я могу просто нажать на отключенный диск, и все работает нормально (при установке на /media/username/partitionlabel).

По сути, я хотел бы сделать именно это с помощью командной строки (для сценария, над которым я работаю).

Так как я не хочу автомонтироваться при загрузке, о fstab не может быть и речи (верно?).

Когда я использую монтирование на CLI, мне нужно указать точку монтирования (которая должна иметь ранее созданную точку монтирования; кроме того, мне нужно позаботиться о разрешениях и прочее) - что я не понимаю, так это где GUI берет все его информация от? Кажется, что точка монтирования зависит от метки раздела, но такого каталога не существует до монтирования. Кроме того, кажется, что GUI не слишком заботится о том, чтобы пользователь не был root.

Существует ли «простой» способ монтирования через CLI, такой же, как в графическом интерфейсе, нажав на отключенный диск?

NicApicella
источник

Ответы:

16

Команда Nautilus и другие файловые менеджеры, которые монтируют диски (например, GUI ), используют эту udisksкоманду.

Это обеспечивает динамическое монтирование, когда точка монтирования создается для диска на лету, а когда диск отключен, точка монтирования исчезает.

Смотрите man 1 udisksподробности о том, как использовать эту команду (вручную или из скрипта / приложения). Чтобы узнать больше о том udisks, как работает, смотрите man 7 udisks.

Чтобы подключить устройство с помощью udisks, вы должны указать правильное имя устройства для устройства. Указание имени тома устройства не будет работать. Итак, вы можете использовать udisksтак:

udisks --mount /dev/sdb1

При использовании вручную udisksиз командной строки лучше всего просто подключить устройство, а затем запустить его dmesg | tailвскоре после этого (см. man dmesgИ man tail), чтобы узнать имя устройства вновь подключенного устройства.

Однако это может быть не лучший способ написания сценария, с помощью которого монтируются устройства udisks. Я не знаю точно, как вы должны это сделать, и было бы трудно понять, так как вы не сказали нам точно, что вы хотите, чтобы этот скрипт делал и когда вы хотите, чтобы он монтировал устройства.

Элия ​​Каган
источник
Большое спасибо - udisksэто именно то, что я искал! По какой-то причине, я получаю «Маунт не удалось: не авторизован» при запуске его через ssh; если бы я не испытывал удачу, указатели были бы признательны за то, как это исправить. ^^
NicApicella
2
@NicolaApicella Как ты это делаешь? Вы получите неавторизованное сообщение, если попытаетесь запустить его из удаленного сеанса (включая SSH) или из crontab; по умолчанию пользователи без полномочий root могут монтировать тома только udisksиз локальных интерактивных имен входа. (Тем не менее, они все еще могут запускать сценарий из локального интерактивного имени входа, которое использует udisks.)
Элия ​​Каган,
Да, извините, только что заметил (и отредактировал) мой предыдущий комментарий: я действительно запускаю его ssh. (И в настоящее время поискать исправление.)
NicApicella
6

Так как я не хочу автомонтироваться при загрузке, о fstab не может быть и речи (верно?).

Нет. noautoКлючевое слово заставляет пропустить монтаж во время загрузки.

Существует ли «простой» способ монтирования через CLI, такой же, как в графическом интерфейсе, нажав на отключенный диск?

Проще всего было бы добавить его с /etc/fstabпомощью noautoи использовать ...

mount /dir

Это будет иметь зонд монтирования для точки монтирования и если не найден, то для устройства в /etc/fstab. /dirдолжен существовать, хотя.

Если предоставлено устройство или UUID, /etc/fstabне проверяется. Вот так ...

mount /dev/sda1 /media/directory

Или используйте udisks (я позволю Элии справиться с этим> :-))


Mount обычно только для супер пользователя.

Примерные варианты:

  • rw,noauto,user монтирует его как read + write, но не при загрузке, и вы можете сделать это как пользователь.

  • Вы также можете добавить разрешения для пользователя /etc/fstabдля файлов. Вы можете использовать umaskдля этого.

  • umask = 0444: все читают, не пишут, не выполняют.

  • umask = 0333: все читают, исполняют.
  • umask = 0338: владелец, чтение и выполнение группы; другие, ничего
Rinzwind
источник
Ладно, я, наверное, попробую, так как в любом случае это "способ сделать это". :-) Так что я думаю, мне все равно придется создать каталог точки монтирования (с правильными правами). ;-)
NicApicella
@Rinzwind Сможет ли пользователь без полномочий root смонтировать устройство?
Элия ​​Каган,
1
@EliahKagan Да, если вы установите соответствующие параметры в fstab (uid, user, ...).
NicApicella
@NicolaApicella Я надеюсь, что этот ответ может быть расширен, чтобы включить информацию об этом. :)
Элия ​​Каган,
@NicApicella он любит руководить мной: =)
Rinzwind
3

В одном из комментариев вы сказали:

По какой-то причине я получаю «Сбой монтирования: не авторизован» при запуске через ssh

Я использую pmountвместо udisks. Это работает над SSH.

Если я правильно помню, это синтаксис / etc, который я использую с ним - большая часть моего скрыта за псевдонимами:

pmount /dev/sdb1 my_usb
ls /media/my_usb/
eject /media/my_usb
Izkata
источник
2

использование

udisks --mount /dev/sdb1

(замените /dev/sdb1устройством, которое хотите установить)

Флориан Диш
источник