Как я могу автоматически монтировать диски eSATA при подключении?

Я не знаю, должен ли я просто увеличить это число

. Легкий способ проверить, достигли ли вы значения max_user_watches, с вашим пользователем использовать inotifywatch из пакета inotify-tools, и проверить, можете ли вы все еще собирать информацию из файла.

Например, inotifywatch -v /home/bruno/.profile для меня возвращает:

Establishing watches...
Total of 1 watches.
Finished establishing watches, now collecting statistics.

Таким образом, inotify не вызывает проблем

Если вы достигли своего максимального предела в секундах inotify, он вернет что-то вроде

Failed to watch /home/bruno/.profile; upper limit on inotify watches reached!

Если вы видите что-то подобное, то вы достигли предел и должен будет увеличить допустимый предел часов.

Он потребляет больше ОЗУ?

Да, это так. Но в соответствии с этой старой статьей сумма, которую он потребляет, минимальна по сравнению с другими аспектами работающего рабочего стола.

- ИСПОЛЬЗОВАНИЕ ПАМЯТИ - Структуры данных inotify - это легкий вес: inotify watch - это 40-байтовое устройство, 68 байтов inotify event - 272 байта. Предполагая, что у устройства есть часы 8192, структуры будут потреблять 320 Кбайт памяти. При максимальном количестве 8 устройств, которые могут существовать одновременно, это все равно всего лишь 2,5 МБ. Каждое устройство может одновременно иметь 256 событий в очереди, что составляет 68 Кбайт на устройство. И только .5 МБ, если все устройства открыты и имеют полную очередь событий. Таким образом, примерно 3 МБ памяти используются в редком случае всего открытого и полного. Каждый inotify watch выдает inode каталога / файла в памяти, размер индексного дескриптора отличается от каждой файловой системы, но позволяет предположить, что это 512 байтов. Таким образом, при условии, что максимальное количество глобальных часов будет активным, это приведет к тому, что в кэше inode будет установлено 32 МБ индексов. Опять не проблема в современной системе.

Я, конечно, полагаю, что с момента написания статьи многое не изменилось, но, глядя на цифры, я не стал бы волноваться, и увеличение лимита не увеличит потребление ОЗУ.

[d19 ]

Похожие сообщения о inotify

Ошибка Dropbox - 'echo 100000 | sudo tee / proc / sys / fs / inotify / max_user_watches 'kernel-inotify-watch-limit-reached
1
задан 11 August 2011 в 02:32

12 ответов

На этой странице перечислены все доступные методы.

Обратите внимание, что один из них позволяет вам авторизовать диск при загрузке для всех пользователей без редактирования одного файла конфигурации через программу «pysdm».

Короче говоря: установите pysdm, запустите его и нажмите вокруг.

1
ответ дан 25 May 2018 в 23:14
  • 1
    В 12.10, когда я пытаюсь «sudo apt-get install pysdm», я получаю «E: Не удается найти пакет pysdm». – phord 29 November 2012 в 22:51

На этой странице перечислены все доступные методы.

Обратите внимание, что один из них позволяет вам авторизовать диск при загрузке для всех пользователей без редактирования одного файла конфигурации через программу «pysdm».

Короче говоря: установите pysdm, запустите его и нажмите вокруг.

1
ответ дан 25 July 2018 в 22:33

На этой странице перечислены все доступные методы.

Обратите внимание, что один из них позволяет вам авторизовать диск при загрузке для всех пользователей без редактирования одного файла конфигурации через программу «pysdm».

Короче говоря: установите pysdm, запустите его и нажмите вокруг.

1
ответ дан 2 August 2018 в 04:00

На этой странице перечислены все доступные методы.

Обратите внимание, что один из них позволяет вам авторизовать диск при загрузке для всех пользователей без редактирования одного файла конфигурации через программу «pysdm».

Короче говоря: установите pysdm, запустите его и нажмите вокруг.

1
ответ дан 4 August 2018 в 20:02

На этой странице перечислены все доступные методы.

Обратите внимание, что один из них позволяет вам авторизовать диск при загрузке для всех пользователей без редактирования одного файла конфигурации через программу «pysdm».

Короче говоря: установите pysdm, запустите его и нажмите вокруг.

1
ответ дан 6 August 2018 в 04:04

На этой странице перечислены все доступные методы.

Обратите внимание, что один из них позволяет вам авторизовать диск при загрузке для всех пользователей без редактирования одного файла конфигурации через программу «pysdm».

Короче говоря: установите pysdm, запустите его и нажмите вокруг.

1
ответ дан 7 August 2018 в 22:04

Ранее, когда HAL (Hardware Abstraction Layer) обрабатывал аппаратные устройства, вы должны следовать инструкциям, найденным по адресу http://vstone.eu/2009/04/hal-and-auto-mounting-external-e-sata -devices /

Однако текущие дистрибутивы используют udev для обработки аппаратных устройств, что означает, что вам нужно выполнить некоторую работу (я не нашел инструкции для udev и eSata).

[d3 ] Итак, что нужно сделать, это отредактировать /lib/udev/rules.d/80-udisks.rules и раздел, в котором говорится

# Set eSATA port type for known eSATA CardBus adapters - first we want to ensure
# the device is on a cardbus controller (upper PCI device) - then we check
# vid/pid (lower PCI device)
#
SUBSYSTEM=="scsi_host", ATTRS{class}=="0x060700", GOTO="ata_port_cardbus"
GOTO="ata_port_cardbus_end"
LABEL="ata_port_cardbus"
# Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01)
#
SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"
LABEL="ata_port_cardbus_end"

Вам, вероятно, потребуется добавить идентификаторы вашего поставщика / устройства (похожие на 0x1095, 0x3512). То есть добавьте одну строку, похожую на

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"

. Вы можете найти свой идентификатор поставщика / устройства с помощью команды lspci.

3
ответ дан 25 May 2018 в 23:14

Ранее, когда HAL (Hardware Abstraction Layer) обрабатывал аппаратные устройства, вы должны следовать инструкциям, найденным по адресу http://vstone.eu/2009/04/hal-and-auto-mounting-external-e-sata -devices /

Однако текущие дистрибутивы используют udev для обработки аппаратных устройств, что означает, что вам нужно выполнить некоторую работу (я не нашел инструкции для udev и eSata).

Итак, что нужно сделать, это отредактировать /lib/udev/rules.d/80-udisks.rules и раздел, в котором говорится

# Set eSATA port type for known eSATA CardBus adapters - first we want to ensure # the device is on a cardbus controller (upper PCI device) - then we check # vid/pid (lower PCI device) # SUBSYSTEM=="scsi_host", ATTRS{class}=="0x060700", GOTO="ata_port_cardbus" GOTO="ata_port_cardbus_end" LABEL="ata_port_cardbus" # Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01) # SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external" LABEL="ata_port_cardbus_end"

Вам, вероятно, потребуется добавить идентификаторы вашего поставщика / устройства (похожие на 0x1095, 0x3512). То есть добавьте одну строку, похожую на

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"

. Вы можете найти свой идентификатор поставщика / устройства с помощью команды lspci.

3
ответ дан 25 July 2018 в 22:33

Ранее, когда HAL (Hardware Abstraction Layer) обрабатывал аппаратные устройства, вы должны следовать инструкциям, найденным по адресу http://vstone.eu/2009/04/hal-and-auto-mounting-external-e-sata -devices /

Однако текущие дистрибутивы используют udev для обработки аппаратных устройств, что означает, что вам нужно выполнить некоторую работу (я не нашел инструкции для udev и eSata).

Итак, что нужно сделать, это отредактировать /lib/udev/rules.d/80-udisks.rules и раздел, в котором говорится

# Set eSATA port type for known eSATA CardBus adapters - first we want to ensure # the device is on a cardbus controller (upper PCI device) - then we check # vid/pid (lower PCI device) # SUBSYSTEM=="scsi_host", ATTRS{class}=="0x060700", GOTO="ata_port_cardbus" GOTO="ata_port_cardbus_end" LABEL="ata_port_cardbus" # Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01) # SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external" LABEL="ata_port_cardbus_end"

Вам, вероятно, потребуется добавить идентификаторы вашего поставщика / устройства (похожие на 0x1095, 0x3512). То есть добавьте одну строку, похожую на

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"

. Вы можете найти свой идентификатор поставщика / устройства с помощью команды lspci.

3
ответ дан 2 August 2018 в 04:00

Ранее, когда HAL (Hardware Abstraction Layer) обрабатывал аппаратные устройства, вы должны следовать инструкциям, найденным по адресу http://vstone.eu/2009/04/hal-and-auto-mounting-external-e-sata -devices /

Однако текущие дистрибутивы используют udev для обработки аппаратных устройств, что означает, что вам нужно выполнить некоторую работу (я не нашел инструкции для udev и eSata).

Итак, что нужно сделать, это отредактировать /lib/udev/rules.d/80-udisks.rules и раздел, в котором говорится

# Set eSATA port type for known eSATA CardBus adapters - first we want to ensure # the device is on a cardbus controller (upper PCI device) - then we check # vid/pid (lower PCI device) # SUBSYSTEM=="scsi_host", ATTRS{class}=="0x060700", GOTO="ata_port_cardbus" GOTO="ata_port_cardbus_end" LABEL="ata_port_cardbus" # Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01) # SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external" LABEL="ata_port_cardbus_end"

Вам, вероятно, потребуется добавить идентификаторы вашего поставщика / устройства (похожие на 0x1095, 0x3512). То есть добавьте одну строку, похожую на

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"

. Вы можете найти свой идентификатор поставщика / устройства с помощью команды lspci.

3
ответ дан 4 August 2018 в 20:02

Ранее, когда HAL (Hardware Abstraction Layer) обрабатывал аппаратные устройства, вы должны следовать инструкциям, найденным по адресу http://vstone.eu/2009/04/hal-and-auto-mounting-external-e-sata -devices /

Однако текущие дистрибутивы используют udev для обработки аппаратных устройств, что означает, что вам нужно выполнить некоторую работу (я не нашел инструкции для udev и eSata).

Итак, что нужно сделать, это отредактировать /lib/udev/rules.d/80-udisks.rules и раздел, в котором говорится

# Set eSATA port type for known eSATA CardBus adapters - first we want to ensure # the device is on a cardbus controller (upper PCI device) - then we check # vid/pid (lower PCI device) # SUBSYSTEM=="scsi_host", ATTRS{class}=="0x060700", GOTO="ata_port_cardbus" GOTO="ata_port_cardbus_end" LABEL="ata_port_cardbus" # Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01) # SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external" LABEL="ata_port_cardbus_end"

Вам, вероятно, потребуется добавить идентификаторы вашего поставщика / устройства (похожие на 0x1095, 0x3512). То есть добавьте одну строку, похожую на

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"

. Вы можете найти свой идентификатор поставщика / устройства с помощью команды lspci.

3
ответ дан 6 August 2018 в 04:04

Ранее, когда HAL (Hardware Abstraction Layer) обрабатывал аппаратные устройства, вы должны следовать инструкциям, найденным по адресу http://vstone.eu/2009/04/hal-and-auto-mounting-external-e-sata -devices /

Однако текущие дистрибутивы используют udev для обработки аппаратных устройств, что означает, что вам нужно выполнить некоторую работу (я не нашел инструкции для udev и eSata).

Итак, что нужно сделать, это отредактировать /lib/udev/rules.d/80-udisks.rules и раздел, в котором говорится

# Set eSATA port type for known eSATA CardBus adapters - first we want to ensure # the device is on a cardbus controller (upper PCI device) - then we check # vid/pid (lower PCI device) # SUBSYSTEM=="scsi_host", ATTRS{class}=="0x060700", GOTO="ata_port_cardbus" GOTO="ata_port_cardbus_end" LABEL="ata_port_cardbus" # Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01) # SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external" LABEL="ata_port_cardbus_end"

Вам, вероятно, потребуется добавить идентификаторы вашего поставщика / устройства (похожие на 0x1095, 0x3512). То есть добавьте одну строку, похожую на

SUBSYSTEMS=="pci", ATTRS{vendor}=="0x1095", ATTRS{device}=="0x3512", ENV{UDISKS_ATA_PORT_CONNECTOR_TYPE}="ata_sata_external"

. Вы можете найти свой идентификатор поставщика / устройства с помощью команды lspci.

3
ответ дан 7 August 2018 в 22:04

Другие вопросы по тегам:

Похожие вопросы: