gvan
-
Posts
210 -
Joined
-
Days Won
2
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by gvan
-
-
1 час назад, rx5670 сказал:
Если снять галку опкг не придется ли после переустанавливать всю ентварь?
Нет. Все будет нормально. Можно сколько угодно раз подключать/отключать. Ничего не пропадет.
1 час назад, rx5670 сказал:как видно, кто-то даже не читает, а пишет в диск.
К сожалению так и не смог научиться на entware, как посмотреть, что за процесс пишет на диск. Копал пакеты dstat, vmstat. Похоже этой поддержки нет в ядре.
Вспомнил. Если не ошибаюсь, то недавно в ветке про тестирование прошивок проскакивала информация, что разработчики по дефолту отключили засыпание диска. Но сейчас не могу что-то найти эту тему...
Но повторюсь, Если entware развернут не на диске, который хочется чтобы спал, то он отключается со временем (если конечно к нему нет обращений). У меня по крайней мере так.
-
В 20.10.2016 в 12:12, rx5670 сказал:
Всех, кто запускается из /opt/etc/init.d, а также minidlna, transmission, cifs останавливал. Обращения к диску не прекращаются (примерно 1 раз в 15 сек мигает лампа).
Не замечал такого - диск прекрасно спит. Также giga II. Прошивка сейчас правда сейчас стоит экспериментальная v2.06(AAFS.5)C1 и поддержка opkg перенесена с диска на флэшку (но диск присутствует).
Swap отключен? Будет ли активность.диска, если отключить модуль opkg, оставив при этом сам диск.
В момент, когда моргает лампочка, что показывает iostat (пример, если диск в системе называется sda):
# iostat -k -z -t -d sda 1
iostat, если по-умолчанию отсутствует, то есть в пакете sysstat. Данный пример показывает статистику sda в килобайтах с интервалом каждую секунду, если обращения были (опция -z).
Также есть пакет iotop. Он бы показал активность процессов, обращающих к диску. Но к сожалению, на entware он у меня не запускается:
Could not run iotop as some of the requirements are not met:
- Linux >= 2.6.20 with- I/O accounting support (CONFIG_TASKSTATS, CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING)
Еще увидел внимание, что установлен smartmontools. Тоже ранее использовал данный пакет в совокупности с smartd. Обратил внимание, что если "почитать" параметры smart с диска, то у него тоже со сном после этого возникали проблемы. После перезагрузки, если не обращаться для чтения smart проблема сохраняется? Можно даже временно удалить smartmontools (хотя в этом необходимости нет, т.к. он себя по-умолчанию в cron и в автозагрузку не прописывает).
-
3 часа назад, HuduGuru сказал:
Если почитать документацию на syslog-ng (для Кинетиков, кстати, собрана далеко не последняя версия, нет многих возможностей),
то в документации для ротации логов рекомендованы два способа:
1) внешний костыль logrotate
Ну вообще-то называть logrotate костылем, я бы не стал. Как правило, в linux он является штатным средством для ротации, архивирования, удаления логов. Его преимущество заключается в гибкости настроек и универсальности.
Возможно, ng-syslog и может самостоятельно сохранять логи в требуемом формате, но удалять-то их все-равно придется через cron. А если требуется старые логи сжимать, то тут вообще, скорее всего, без вариантов.
Но выбор средства борьбы с логами, конечно, остается за пользователем.
Но я не зря в начале темы указал, что таким образом можно управлять логами не только от syslog. Есть и другие сервисы и службы (например, почтовые-сервера, прокси, tor и т.д.- благо entware нам позволяет это делать!), которые могут сохранять свои логи, причем в разных каталогах и с различным наименованием. В этом случае logrotate сможет легко с ними управляться.
3 часа назад, HuduGuru сказал:в той же документации написано, что на время работы внешнего logrotate желательно syslog-ng останавливать
В моем примере это учтено. logrotate переименовывает текущий файл, но ng-syslog продолжает писать в старый файл. По завершению ротации ng-syslog перезапускается для того, чтобы начать писать лог в файл по-умолчанию.
Но если захотеть, то можно в конфе logrotate сначала останавливать ng-syslog, а потом после ротации запускать. Возможность для этого имеется, но я не вижу в этом необходимости, т.к. данного механизма достаточно.
4 часа назад, HuduGuru сказал:как будут отрабатываться имена файлов с датой при перезагрузке устройства - непонятно, так как при перезагрузке дата сбивается, и остается неправильной до обновления даты через NTP.
Да, тут могут быть, наверное, проблемы. Но это не вина ng-syslog или logrotate. Поэтому для себя и не вижу смысла писать логи ng-syslog в формате ${YEAR}_${MONTH}_${DAY}.log, а ротацию логов по нужному мне формату раз в сутки доверить logrotate.
-
10 минут назад, makc22 сказал:
А почему просто в имени файла не использовать дату? Или номер недели+год, месяц+год.... на выбор по желаемому объёму? Старые файлы кроном раз в день чистить по маске.
Не совсем понял о чем вопрос. logrotate как раз и предназначен для того, чтобы не изобретать велосипед и иметь возможность достаточно гибко настроить ротацию логов (особенно если их несколько). Он сам и удаляет старые файлы.
Архивные файлы в зависимости от настроек могут как раз и содержать в имени файла дату ротации (по-умолчанию как раз так и есть). Для указанного примера, это будет выглядеть так:
n Name │ Size │Modify time .. │UP--DIR│июл 16 23:38 messages │ 5075│окт 10 12:21 messages-20160926 │ 247934│сен 26 04:02 messages-20161002 │ 187521│окт 2 04:02 messages-20161010 │ 451485│окт 10 04:02
- 1
-
40 минут назад, Roman_Petrov сказал:
Сделайте отдельную тему
Перенес. Исходное сообщение отредактировал с указанием ссылки на тему.
-
Если вы задались задачей собирать логи (журналы работы) системы в отдельный файл, который не стирается после перезагрузки роутера, то, скорее всего, через некоторое время столкнетесь с проблемой, когда размер лога станет занимать значительный объем диска.
Задача по включении системного логирования во внешний лог описывается в соответствующей теме "Запись syslog на внешний USB-диск с помощю Syslog-ng", (автор Roman_Petrov).
Здесь рассмотрим непосредственно механизм ротации логов.
1. Необходимо установить через opkg пакеты logrotate и cron.
Cron нужен для периодического запуска logrotate. А logrotate в свою очередь требуется для проверки необходимости ротации логов и непосредственно их ротации в соответствии с заданными условиями (например, интервал времени и объем).
С cron могут возникнуть проблемы, если файловая система диска fat или ntfs, т.к. на конфигурационных файлах будут неправильные (с точки зрения linux/cron) атрибуты файлов. И задачи просто не будут запускаться. Решение имеется, но нужно ставить crontab из busybox (п.2).
Второй и третий вариант решения проблемы с cron и ntfs/fat - это изменить файловую систему подключенного диска на ext2 или ext3, либо поставить поддержку opkg на отдельную флэшку (раздел) с ext2/ext3 (если, не хочется возиться с преобразованием основного диска). Для себя я выбрал третий вариант (хотя и на диске с файлами у меня ext3). Но т.к. основной диск у меня используется редко, и я хочу, чтобы он "засыпал" и отключал питание, то все логи пишу на отдельную флэшку (достаточно будет размером 1 Гб).
2. Настраиваем ротацию логов. Основной конф /opt/etc/logrotate.conf не трогаем и делаем отдельную конфигурацию для ротации файла /opt/var/log/messages (таким же образом можно будет настроить ротирование и других логов, если они у вас имеются - например, от прокси). Для этого в подключаемом по-умолчанию каталоге /opt/etc/logrotate.d (указано в основной конфигурации /opt/etc/logrotate.conf) создаем конф-файл messages и добавляем в него следующие строки:
Скрытый текст/opt/var/log/messages
{
maxsize 1M
rotate 3
sharedscripts
postrotate
/opt/etc/init.d/S01syslog-ng reconfigure
endscript
}Здесь ротация производится по достижению размера лога 1Мб, хранится всего три последних файла. После ротации лога перезапускается сервис syslog-ng (нужно для правильного продолжения записи в новый лог). С учетом основной конфигурации (см. файл /opt/etc/logrotate.conf, опция weekly) ротация лога будет производиться каждую неделю или же при достижении объема 1Мб.
Можно почитать в инете мануал для более тщательной настройки logrotate. Например, чтобы делать ротацию не только по размеру, но и по времени. Можно также сжимать архивные файлы логов.
Перевод документации по logrotate можно посмотреть на сайте OpenNET.
3. Далее настраиваем cron в основном файле /opt/etc/crontab. Т.к. по-умолчанию задач, выполняемых ежедневно, еженедельно и т.п., у меня нет, то он выглядит так:
Скрытый текстSHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
#*/1 * * * * root /opt/bin/run-parts /opt/etc/cron.1min
#*/5 * * * * root /opt/bin/run-parts /opt/etc/cron.5mins
#01 * * * * root /opt/bin/run-parts /opt/etc/cron.hourly
02 4 * * * root /opt/bin/run-parts /opt/etc/cron.daily
#22 4 * * 0 root /opt/bin/run-parts /opt/etc/cron.weekly
#42 4 1 * * root /opt/bin/run-parts /opt/etc/cron.monthlyРаскоментарена только строка для выполнения ежедневных задач. По-умолчанию после установки cron запускаются все задачи (все строки раскоментарены). Т.е. можно данный файл и не изменять, но при этом в /opt/var/log/messages при выполнении этих задач-заглушек (с частотой, как минимум 1 минута) будет появляться соответствующая запись о выполнении данной задачи. Поэтому решать вам.
Нужно также перезапустить службу cron. Для этого необходимо выполнить команду с консоли:
/opt/etc/init.d/S10cron restart
4. Добавляем в cron задачу, которая будет выполняться один раз в сутки. Для этого в каталоге /opt/etc/cron.daily размещаем исполняемый файл. Я его назвал /opt/etc/cron.daily/logrotate . В нем размещены следующие команды:
Скрытый текст#!/opt/bin/sh
/opt/sbin/logrotate /opt/etc/logrotate.conf
Исполняемым файл можно сделать через пакет mc (файловый менджер - must have) или с командной строки:
chmod 755 /opt/etc/cron.daily/logrotate
Можно проверять необходимость ротации логов чаще, а не только раз в сутки. Для этого нужно раскоментировать соответствующие записи /opt/etc/crontab и поместить задачу logrotate в соответствующий каталог.
Но, как правило, в нашем случае логи быстро не увеличивают размер и в этом необходимости нет.
Обращаю внимание, что linux очень часто плохо относится к тому, если в текстовых конф-файлах и т.п. последняя строка не заканчивается символом возврата каретки. Поэтому необходимо после последней строки в файле нажимать Enter для перевода курсора на новую пустую строку. В приведенных мной примерах эта пустая строка имеется.
Всё.
Если хочется сразу проверить ротацию лога вручную (и его размер в соответствии с конфом уже больше 1Мб), то команду ротации можно принудительно выполнить с консоли (или просто запустить исполняемый файл-задачу):
/opt/sbin/logrotate /opt/etc/logrotate.conf или (т.к. файл у нас уже исполняемый) запустить задачу /opt/etc/cron.daily/logrotate
- 2
-
1 минуту назад, beowulf0208 сказал:
Спасибо за помощь
Пожалуйста. Т.е. в итоге заработало?
Еще нужно не забывать в конце конф-файлов и текстовых скриптов добавлять пустую строку (иногда это может быть критично для нормального выполнения задач).
- 2
-
1 минуту назад, beowulf0208 сказал:
Installing cron (4.1-3) to root
Вроде все нормально. Не хватает содержимого конф-файла /opt/etc/crontab
-
8 минут назад, Roman_Petrov сказал:
Но ради общества в целом можно подробно тему раскурить и внести в шапку.
Я тоже об этом подумал. Есть желание это оформить в отдельную тему. Да и так правильней будет: сбор логов это одно дело, а управление их ротацией - другое. Могут быть и другие службы запущены, которые пишут свои логи в отдельные файлы (у меня это, например, прокси).
Просто кроме меня пока это понадобилось только одному пользователю, поэтому пока руки не доходили
-
8 минут назад, beowulf0208 сказал:
а на втором разделе (EXT3) установлен Entware. Установлен обычный cron.
Хорошо. Покажите содержимое файлов /opt/etc/crontab и вывод команды:
ls -l /opt/etc/crontab ls -l /opt/etc/cron.5mins/test.sh ps | grep cron
Также в test.sh лучше написать
date >> /opt/tmp/crontest.txt
Также, с учетом того, что cron работает "поверх" основной системы, то свои логи в веб-интерфейсе роутера он не показывает. Желательно включить логирование через ng-syslog, тогда свои сообщения (в т.ч. и об ошибках cron будет бросать в /opt/var/log/messages).
- 2
-
16 часов назад, beowulf0208 сказал:
Может кто-нибудь посоветовать способ как проверить работает ли у меня cron
Уже ответил в теме Просмотр информации SMART (здоровья) подключенного жёсткого диска по возможным проблемам с cron.
-
В 08.10.2016 в 18:47, beowulf0208 сказал:
Но результата работы cron я так и не увидел.
Если установлен обычный cron через opkg install cron, и файловая система на диске с поддержкой opkg ntfs или fat, то работать задачи из cron не будут.
Нужно поменять файловую систему на ext2/ext3 или установить crontab из busybox (п.2)
-
14 часа назад, Roman_Petrov сказал:
Решение с logrotate действительно интересно, нужно будет при наличии времени попробовать
Да, это нужно обязательно сделать. В логе будет проще что-то найти. Да и хранить древние, никому ненужные объемы данных никакого смысла нет.
Свое предыдущее сообщение немного дополнил, конфигурацию для ротации /opt/var/log/messages вынес в отдельный файл (чтобы не изменять основной конф-файл logrotate).
Пробуйте. Возможно, что-то не учел или где-то ошибся. Если не получится или что-то не заработает, как нужно, сообщайте. Будем разбираться.
-
22 часа назад, Roman_Petrov сказал:
Выкладываете, подробности конечно нам интересны.
- 1
-
2 часа назад, John9110 сказал:
Здравствуйте, а как бы еще ограничить файлы логов по объему? или например по дате? ибо многометровый текстовый файл как то не круто)))
Все можно сделать. И по объему и по времени. Это же linux. Ставьте logrotate (возможно, он по дефолту уже стоит - я не помню) и настраивайте /opt/etc/logrotate.conf.
Только еще нужно в /opt/etc/cron.daily засунуть задачу, чтобы он запускал ротацию каждые сутки. И, конечно, предварительно поставить cron.
Сейчас спешу. Если не разберетесь и требуется дополнительная помощь, то могу выложить пример своей конфигурации для logrotate и cron.
-
1 час назад, Алексей Миронович сказал:
какого файла?
если о syslog-ng.conf то
А точно на кинетике у вас 192.168.6.1 адрес, а не 192.168.1.1?
Если syslog не запущен, то что выдает ручная команда его запуска с ключом -e (вывод ошибок на консоль) "syslog-ng -e"?
-
3 часа назад, Алексей Миронович сказал:
файл проходит проверку, но всё равно при запуске ошибка
Хорошо. Останавливайте службу и попробуйте запустить ее вручную. Я в конф-файле изменил адрес syslog своего сервера
source src { udp(ip(192.168.1.111) port(514)); internal(); unix-stream("/dev/log"); };
На самом деле на кинетике у меня адрес 192.168.1.1. Проверку на синтаксис проходит, но запускаться отказывается, т.к. syslog пытается забиндиться на указанный адрес, но естественно не может./opt/etc/init.d$ syslog-ng -e Error binding socket; addr='AF_INET(192.168.1.111:514)', error='Cannot assign requested address (126)' Error initializing source driver; source='src'
У вас адрес 192.168.6.111 - это адрес, с которого вы хотите принимать лог? А адрес кинетика какой?
-
19 часов назад, Алексей Миронович сказал:
тогда к чему там вот эта строчка?
source src { udp(ip(192.168.1.1) port(514)); internal(); unix-stream("/dev/log"); };
Я склоняюсь все-таки к тому, что у вас какая-то синтаксическая ошибка в конф-файле.
Завершите процесс syslog и запустите вручную проверку конфигурации на синтаксис.
/opt/etc$ /opt/etc/init.d/S01syslog-ng stop Checking syslog-ng... alive. Shutting down syslog-ng... done. /opt/etc$ syslog-ng -s syntax error in /opt/etc/syslog-ng.conf at line 14.
Я намеренно внес ошибку в конф-файл, и проверка на синтаксис ее показала в той строке, в которой она находится.
Если ошибок в конфигурации нет, то команда проверки завершится без каких-либо сообщений.
- 1
-
В 27.07.2016 в 20:23, Roman_Petrov сказал:
В локальном варианте, syslog-ng ставиться на тот же роутер, на котором будут сниматься логи и строчка в файле конфигурации
source src { file("/proc/kmsg"); unix-stream("/dev/log"); internal(); };
меняется на прием сообщений журнала по сети по протоколу udp через порт 514 (как по умолчанию это активируется в роутере)
source src { udp(ip(192.168.1.1) port(514)); };
Только тогда пропадут сообщения от системы и служб, поднятых через opkg (например, от cron).
У меня после установки ng-syslog было так:
source src { unix-stream("/dev/log"); internal(); };
Объединил предложенную запись с системным логгерами:
source src { udp(ip(192.168.1.1) port(514)); internal(); unix-stream("/dev/log"); };
- 2
-
Если известны команды, которые необходимо выполнить при старте роутера, то, как и отмечено выше, скрипт с ними необходимо разместить в /opt/etc/init.d, название файла должно начинаться на S (например, SxxMount_cifs, xx указано для сортировки скриптов, соответственно, скрипт будет выполняться в самом конце).И, если не затруднит, помогите со скриптом для автозапуска. Спасибо.Пример скрипта, выполняющегося при старте системы (не имеет отношения к монтированию), есть здесь.
-
Если кто-то еще не планирует переходить на прошивку 2.06 в виду ее активного тестирования и наличия возможных багов и как я использует 2.05, то прилагаю скрипт, который при старте роутера выставляет соответствующие флаги в файлах allow_restart.
Скрипт необходимо разместить в /opt/etc/init.d. Назвал его для примера - SxxUSBAllowReset:
#!/opt/bin/sh /opt/bin/find /sys/class/scsi_disk -name allow_restart -exec /opt/bin/sh -c "/opt/bin/echo 1 > {}" \;
Поначалу я в данном скрипте тупо выставлял в /sys/class/scsi_disk/0:0:0:0/allow_restart и /sys/class/scsi_disk/1:0:0:0/allow_restart единицу, но в прошивке v2.05(AAFS.6)C4 номера устройств поменялись на 2:0:0:0 и 3:0:0:0, поэтому при очередном рестарте роутера скрипт не отработал и у меня опять посыпались ошибки после остановки винта.
Соответственно выше представлена команда, которая сама ищет имена устройств вне зависимости от их ID и взводит allow_restart в 1.
-
Да у вас не в прошивке дело, а с самим диском, он тупо не читается и отваливается. Тут несколько версий, не хватает тока для питания диска, либо проблемы с блинами диска или его платой контроллером. У меня на нескольких дисках имеется такая же проблема, у одного сразу после покупки, ну не хочет он дружить с роутерами, да и с некоторыми ноутами, а у другого контроллер накрылся, как только нагревается, так сразу отвалы начинаются...
Ну я тоже так думал. Забыл добавить информацию еще по своим экспериментам.
Дополняю.
Читал информацию по SMART через smartctl - хорошая:
[more]SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 3766
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 16616
5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 041 041 000 Old_age Always - 23795
10 Spin_Retry_Count 0x0033 253 100 030 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 2737
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 137
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 184
193 Load_Cycle_Count 0x0032 092 092 000 Old_age Always - 89817
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 32 (Min/Max 19/55)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
220 Disk_Shift 0x0002 100 100 000 Old_age Always - 83
222 Loaded_Hours 0x0032 098 098 000 Old_age Always - 1021
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0
224 Load_Friction 0x0022 100 100 000 Old_age Always - 0
226 Load-in_Time 0x0026 100 100 000 Old_age Always - 347
240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0
SMART Error Log Version: 1
No Errors Logged[/more]
Подключил винт к ноутбуку, загрузил линукс, проверил диск на bad block. Никаких проблем не обнаружено.
Как и писал выше, если диску (но, скорее всего речь идет о прослойке USB-SATA) не давать спать, то никаких проблем не возникает.
Как решил проблему через установку /sys/block/sda/device/scsi_disk*/allow_restart в 1 уже написал. Два дня тестирую, пока проблема не проявилась.
А раньше достаточно было выждать 10 минут (подождать отключения диска) и обратиться к нему вновь. Т.е. баг у меня воспроизводится с 100% вероятностью.
Теперь же диск спит, сколько хочет и с радостью просыпается без всяких ошибок.
И судя по всему, проблема для linux не нова. Вот еще в тему http://www.yqcomputer.com/1116_5473_1.htm
-
Keenetic Giga 2, черный, v2.05(AAFS.4)C4 (но проблема началась на последней официальной прошивке или, возможно на бете с opkg). На самом деле было изменено несколько обстоятельств. Кроме установки прошивки с поддержкой opkg, на USB диске ADATA CH94 1ТБ (внутри TOSHIBA MK1059GSM) поменял еще и файловую систему с NTFS на EXT2.
После засыпания HHD и последующем обращении к нему стали сыпаться ошибки (копировал с другого форума и сообщения, где тип ФС NTFS, поскольку проблему удалось решить и сейчас таких ошибок у меня нет):
Jan 21 02:39:18ndmkernel: sd 0:0:0:0: [sda] Device not ready: <6>: Sense Key : 0x2 [current]
Jan 21 02:39:18ndmkernel: : ASC=0x4 ASCQ=0x2
Jan 21 02:39:18ndmkernel: end_request: I/O error, dev sda, sector 1183
Jan 21 02:39:18ndmkernel: tntfs error (device sda1, pid 3): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x230 (сектора любые).
Jan 21 02:39:18ndmkernel: tntfs error (device sda1, pid 3): ntfs_end_buffer_async_read(): Buffer I/O error, logical block 0x231.
После нескольких таки сообщений ФС автоматом перемонтировалась в ридонли. Соответственно, такая ситуация совсем не устраивала.
Вот еще пример подобной ошибки у другого пользователя http://forum.zyxmon.org/topic581-giga-ii-usb-hdd-ukhodit-v-read-only.html
Что делал, чтобы решить проблему:
0. Искал решения в Сети.
1. Обновился на тестовую 2.06. Не помогло (-)
2. Подключил внешнее питание к диску через Y-USB кабель. (-)
3. Заменил коробку (интерфейс USB-SATA). (-)
4.1 Пробовал через hdparm отключить засыпание винта. (-)
4.2 (бубен) Заменил Ext2 на Ext3. (-)
5. В соответствии с п. 0 в cron добавил задачу, которая каждые 5 минут пишет в файл на диск текущее время. Помогло (+).
Т.к. роутер с винтом стоит в кладовке, то круглосуточная работа диска не напрягала. Но с учетом того, что винт требуется редко, то хотелось решить вопрос правильным способом: чтобы винт все-таки отключался по таймауту, когда не требуется, и проспался без ошибок при обращении к нему (т.к. хоть и немного, но питание двигатель потребляет, плюс износ самого двигателя).
Дополнительный поиск вывел на следующую страницу http://www.nslu2-linux.org/wiki/FAQ/DealWithAutoSpinDownOnSeagateFreeAgent
Установка параметра
echo 1 > /sys/block/sda/device/scsi_disk*/allow_restart
решила мою проблему. Винт засыпает и при просыпании не возникает ошибок. Сделал скрипт, который запускается при старте роутера и выполняет установку allow_restart в 1.
Соответственно, вопрос. Что-то поменялось в прошивке, если ранее у меня таких проблем не возникало? И возможно ли сделать в следующих прошивках, чтобы данный параметр выставлялся автоматом? Или же проблема настолько специфичная и узко зависит от прослойки USB-SATA, что проявляется очень редко.
Диск перестал зысыпать.
in Обмен опытом
Posted
Вот нашел. Но здесь речь идет о 2.07. Но, возможно, что так теперь везде.
Но у меня винт спит (нет никаких звуков и вибрация двигателя не чувствует). Остается, для того чтобы убедиться, что не в окружении самого entware дело, временно отключить поддержку opkg, на всякий случай перегрузиться с выключением питания роутера и посмотреть будет ли винт спать.