PDA

Bekijk de volledige versie : Проблемы с остановкой внешнего HDD (hdparm)



dmitry_kushenko
04-10-2006, 09:30
Всем привет. Есть одна насущная проблема/вопрос:
У меня Asus WL-HDD с последней прошивкой от Олега (респект). Все прекрасно работает, но винт крутится постоянно. Пик нагрузок приходится на вечер, а ночью обращений нет. Винт Seagate IDE (internal). Возможно ли как то активировать sleep mode? Чтобы винт переставал крутиться при отсутствии активности (10-30 минут). Прочитал весь форум, ничего не нашел. Задал вопрос на тех. поддержке Asus - ответили нет, нельзя.
Облазил всю Олеговскую прошивку - тоже ничего не нашел.
Буду признателен за ответ.

Oleg
04-10-2006, 15:02
Можно. Если написать скрипт из которого будет вызываться hdparm. Скрипт где-то был похожий на http://www.nslu2-linux.org/, только там глушат usb устройство, но принцип такой же.

dmitry_kushenko
05-10-2006, 07:43
Спасибо за ответ Олег.
Я уже практически все прочитал там.
У меня вот такой вопрос еще, а не будет ли это вредно для HDD?
В том плане, куда пишутся логи ОС? Если на винт, то отправлять его в слип мод - не есть правильно, т.к. система "задергает" винт и амортизация винта будет еще больше.
А вот если логи пишутся в ОЗУ, а винт используется только как хранилище данных, тогда имеет смысл напрягаться насчет активации слипа.
И еще такой вопрос (прошу извинить): Скрипт который написан у этих ребят можно вводить через Web - интерфейс (system command) или иным путем? (с Linux плотно раньше не сталкивался)...

Oleg
05-10-2006, 07:52
Логи пишутся в память. С этим проблем нет.
Моё мнение такое: каждый старт-стоп цикл уменьшает жизнь, поэтому лучше, когда он крутится непрерывно, при условии, что обеспечивается нормальнавя вентиляция.

Вводить команды нужно через Telnet/putty.

dfayruzov
15-01-2007, 22:21
Друзья, а кто-нибудь уже сделал остановку внешнего диска?
Это возможно на прошивке Олега, или обязательно надо свою собирать?

Oleg
15-01-2007, 22:28
Я пробовал останавливать свой - не получается. :( Видимо дело в коробке - у меня там пролифик какой-то.

Попробовать остановить можно вот этой программой:
http://oleg.wl500g.info/bin/scsi-stop

dfayruzov
15-01-2007, 23:07
Попробовал двумя способами:
./scsi-stop /dev/discs/disc0/disc
./scsi-stop /dev/scsi/host0/bus0/target0/lun0/disc
Не канает.
Будем искать. : )

Mam(O)n
16-01-2007, 05:06
Не канает.
тоже неканает.
Vendor: Cypress Semiconductor

Xander
16-01-2007, 07:05
Хм, у меня все работает, пользуюсь уже давно.

У меня hdd Samsung SP2504C, подключенный через кейс Vantec какой-то, sata->usb.

dfayruzov
16-01-2007, 07:58
тоже неканает.
Vendor: Cypress Semiconductor

а винт SATA или PATA?

Mam(O)n
16-01-2007, 09:07
винт PATA seagate barracuda 7200.9, чип CY7C68300A-56PVC. Пробовал остановить на десктопе с knoppix. Также нехочет отключаться.

Oleg
16-01-2007, 09:54
Хм, у меня все работает, пользуюсь уже давно.

У меня hdd Samsung SP2504C, подключенный через кейс Vantec какой-то, sata->usb.
Для чистоты эксперимента можно попробовать остановить его той программой, что я дал.

Винт у меня тоже самсунг спинпоинт, только 80 гигабайт.

Oleg
16-01-2007, 09:58
Посмотреть вендора чипа можно попробовать так:

cat /proc/scsi/usb-storage-0/0

или

cat /proc/bus/usb/devices

и искать там VID&PID.

Xander
16-01-2007, 12:45
Для чистоты эксперимента можно попробовать остановить его той программой, что я дал.

Винт у меня тоже самсунг спинпоинт, только 80 гигабайт.

Ею и останавливаю, наткнулся на нее случайно пару месяцев назад, с тех пор пользуюсь. Даже скрипт написал, может пригодится кому-нибудь:
http://wl500g.info/showthread.php?p=45054#post45054


Посмотреть вендора чипа можно попробовать так:

cat /proc/scsi/usb-storage-0/0

или

cat /proc/bus/usb/devices

и искать там VID&PID.

Первое:
Host scsi0: usb-storage
Vendor: Sunplus Technology Inc.
Product: USB to Serial-ATA bridge
Serial Number: SAMSUNG SPS09QJ1NL805434
Protocol: Transparent SCSI
Transport: Bulk
GUID: 04fc0c15317ffffffffffff9
Attached: Yes

Второе:
T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=04fc ProdID=0c15 Rev=c6.83
S: Manufacturer=Sunplus Technology Inc.
S: Product=USB to Serial-ATA bridge
S: SerialNumber=SAMSUNG SPS09QJ1NL805434
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Надеюсь, поможет :)

Oleg
16-01-2007, 13:31
Ну да, теперь ясно, что SATA-USB коробки с SunPlus внутри видимо работают. :)

Xander
16-01-2007, 13:43
:)
Что ж, остается только порекомендовать контейнер - это Vantec NexStar3 NST-360SU-BK.

Duke
16-01-2007, 17:58
Занятно. Скажите, он обратно сам раскручивается потом при обращении, т.е отмонтировать ничего не надо?
Завтра ближе к вечеру протестирую все три своих внешних диска ;)

Xander
16-01-2007, 18:58
Занятно. Скажите, он обратно сам раскручивается потом при обращении, т.е отмонтировать ничего не надо?
Завтра ближе к вечеру протестирую все три своих внешних диска ;)
Да, при первом обращении сам раскручивается, естественно при этом небольшие тормоза, но никаких неприятных эффектов.

dfayruzov
16-01-2007, 19:13
Host scsi0: usb-storage
Vendor: Cypress Semiconductor
Product: USB2.0 Storage Device
Serial Number: DEF10C9308EE
Protocol: Transparent SCSI
Transport: Bulk
GUID: 04b468300000def10c9308ee
Attached: Yes


видимо, не работают )

Stas
17-01-2007, 09:13
Олег дал программу для остановки внешнего диска ,я её скачал
а куда её устанавливать? и как?
ещё раз извините за глупый вопрос

Oleg
17-01-2007, 10:16
На роутере (например в телнет сессии) сделайте так:



cd /tmp
wget http://oleg.wl500g.info/bin/scsi-stop
chmod +x scsi-stop
./scsi-stop /dev/discs/disc0/disc


Если диск остановился - Вам повезло. Можете глянуть, кто производитель чипа.

Stas
17-01-2007, 11:06
Пишет chmod:scsi-stop:No such file or directory
-sh: ./scsi-stop: Not found

Oleg
17-01-2007, 11:28
А wget ошибок не вернул?

Stas
17-01-2007, 11:29
нет ,написал 100% и цифру не помню какую

Duke
17-01-2007, 14:33
Vizo Luxon + WD1600SD - не работает

Host scsi0: usb-storage
Vendor: JMicron
Product: JM20338 SATA, USB Combo
Serial Number: 8D88CA892915
Protocol: Transparent SCSI
Transport: Bulk
GUID: 152d233800008d88ca892915

Sarotech Cutie OTG FHD-254UM + WD400VE - не работает

Host scsi3: usb-storage
Vendor: Unknown
Product: USB 2.0 Storage Device
Serial Number: 00000000000123456789
Protocol: Transparent SCSI
Transport: Bulk
GUID: 040256370000000123456789

Western Digital Pocket Passport - хрен поймешь, я не слышу как он крутится :p

Host scsi4: usb-storage
Vendor: Western Digital
Product: External HDD
Serial Number: DEF10C04AFC1
Protocol: Transparent SCSI
Transport: Bulk
GUID: 105808000000def10c04afc1

Oleg
17-01-2007, 14:37
нет ,написал 100% и цифру не помню какую
Значит попробуйте его ещё раз запустить. Факт то, что файла такого нет.

Stas
17-01-2007, 15:12
Значит попробуйте его ещё раз запустить. Факт то, что файла такого нет.

Проверил в папке tmp лежит scsi-stop (cd /tmp ,потом ls)
Далее вышел из телнета ,потом опять зашел телнетом
и дал команду ./scsi-stop /dev/discs/disc0/disc
Пишет: -sh: ./scsi-stop /dev/discs/disc0/disc: not found

dfayruzov
17-01-2007, 18:06
/tmp/scsi-stop /dev/discs/disc0/disc

Xander
18-01-2007, 13:47
Олег, скажите пожалуйста, scsi-stop - это часть scsi-idle? Вы не меняли исходники?

Oleg
18-01-2007, 13:51
Олег, скажите пожалуйста, scsi-stop - это часть scsi-idle? Вы не меняли исходники?
Нет, не менял. Просто откомпилировал.

Xander
18-01-2007, 14:01
Нет, не менял. Просто откомпилировал.
Спасибо. Попробую их демон запустить.

Oleg
18-01-2007, 14:03
Он не заработает. В ядре нет нужного патча.

neprosto
03-08-2007, 12:24
Добрый день !

Есть 500gp и внешний case 3,5, все настроено и работает. проверка scsi-stop дала положительный р-т - SpinDown винта осуществился ;).
Поскольку винт работает круглосуточно, а реально нагрузка на на него не велика (сеть 3 человека, фильмы смотрят только днем), то возникла идея гасить винт или по расписанию, или более грамотно было бы гасить при отсутсвии нагрузки (обращений) в течении хх мин/час.
С первым проблем нет cron + комманда scsi-stop.... Со вторым... не хватает данных о последнем обращении к винту. Где и как их можно надыбать ?

Mam(O)n
03-08-2007, 17:42
/proc/stat

Вот тут (http://wl500g.info/showpost.php?p=47135&postcount=10) есть готовый скриптик.

neprosto
03-08-2007, 21:43
О ! благодарю ! похоже ответ в самую точку ;)

Mam(O)n
03-08-2007, 22:01
Кстати, не поделишься моделью бокса, для статистики? А то не всяк умеет винты останавливать.

neprosto
04-08-2007, 07:31
Да, конечно Vipower VPA-35018 (SATA-USB)


cat /proc/scsi/usb-storage-0/0

Host scsi1: usb-storage
Vendor: Sunplus Technology Inc.
Product: USB to Serial-ATA bridge
Serial Number: SAMSUNG HDS0MUJ1KP216348
Protocol: Transparent SCSI
Transport: Bulk
GUID: 04fc0c15315ffffffffffff9
Attached: Yes

TDA
04-08-2007, 07:44
Добрый день !

то возникла идея гасить винт или по расписанию, или более грамотно было бы гасить при отсутсвии нагрузки (обращений) в течении хх мин/час.


Странно но до сих пор(на основании данных изготовителей винтов) я считал что частые старт стопы винт как раз и убивают, а круглосуточная работа(при условии должного охлаждения) более благоприятна для него.......

кстатит ноутбучные винты фирмы fuji при простое сами отключаються ;)

zygoth
04-08-2007, 16:45
делать остановку имеет смысл только если внешний винт используется только как хранилище для файлов. если на нём лежит своп или он замонтирован в /opt, он будет практически сразу же раскручиваться после остановки. такой режим постоянной остановки-раскрутки действительно вреден для винтов.

neprosto
04-08-2007, 16:54
Ну почему же частые ? Знаем мы цикл старт стоп не несет ничего хорошего :D Но тем не менее я считаю, если к винту за истекшие 6 - 10ч (в зависимости от времени суток) не было ни одного обращения - гасить. ИМХО.

Grumbler
19-08-2007, 07:50
wl-500gp с последней прошивке от Олега (7g)
hdd сигейт 320 Гб
box stlab S-151 (SATA)

проблема в следующем:
штатно охлаждение в коробке не предусмотрено
есть место под вентилятор габаритами 29х29 мм (написано что опционально есть охлаждение, но в боксе его нет)


заранее спасибо

P.S. кстати может у кого есть такая коробка, у вас он не греется?




Вентилятор скорее всего там 40х40х10. Прикрутить его нет никакой проблемы. Запитать лучше от 12 ти вольт (подпаять к разъему питания диска) можно вывести выключатель. Только на 12ти вольтах он будет свистеть. На 5ти вольтах - не будет охлаждать совсем. Я покупал коробочку от Tsunami - c 80x80x15 вентилятором.

Проблема остановки диска в простое - очень актуальна. И хотя тут всё больше отправляют "в лес" - т.е. к базовым топикам, которые прочитаны уже вдоль и поперек, но в которых, за недостатком подготовки ничего не понятно, а почитать то (например про консольные программы Linux) нечего - призываю СТАРЕЙШИН - поделитесь информацией!!!

Grumbler
27-08-2007, 09:29
так в вебменю есть кнопка eject, после этого и вытаскиваем диск.


Не работает. Диск продолжает крутится. Видимо это только для Флэшек.

Мне вообще любопытно - как роутер выключать правильно. Это-ж компьютер - его нельзя просто вынуть из розетки, как я сейчас делаю уходя на работу. Он же сломаться может.

TDA
27-08-2007, 11:13
Не работает. Диск продолжает крутится. Видимо это только для Флэшек.

Мне вообще любопытно - как роутер выключать правильно. Это-ж компьютер - его нельзя просто вынуть из розетки, как я сейчас делаю уходя на работу. Он же сломаться может.

А он и будет крутиться - питание от разьема никто не отключал вот он и крутиться...

Выключать - если на винт ничего не писалось(а для ноутбучного собсно и без разницы) то просто выдернуть из розетки ИМХО нормально, а вот роутер с кучей доп совта на винте уже желательно заходить в консоль и halt ;)

Grumbler
27-08-2007, 12:28
А он и будет крутиться - питание от разьема никто не отключал вот он и крутиться...

Выключать - если на винт ничего не писалось(а для ноутбучного собсно и без разницы) то просто выдернуть из розетки ИМХО нормально, а вот роутер с кучей доп совта на винте уже желательно заходить в консоль и halt ;)

Позволю себе не согласится. У меня коробочка TSUNAMI с 80 мм вентилятором. Так вот, когда из под WINDOWS я отключаю USB HDD Storage (безопасным отключением устройства) - вентилятор крутится, но диск - останавливается, что явно ощущается на ощупь "пропаданием" вибрации. А если прислушиватся - то слышно, как останавливается двигатель на "винте" (я слушал стетоскопом). Кроме того - я останавливал на работающем диске этот вентилятор (вставлял карандаш) - винчестер останавливается, слышно более чем явно. В случае с "Edject" на роутере - винчестер продолжает крутится. Фактически ничего не происходит. Даже нет характерного щелчка, который слышен при сохранении настроек роутера и перезагрузке.

Касательно команды "halt" - я, в доступном мне справочнике такой команды для Linux не нашел. Нашел:

shutdown [опции] время [сообщения] SysVinit
/sbin stdin stdout -file --opt --help --version
Команда shutdown останавливает или перезапускает систему
Linux; только суперпользователь может выполнять ее. Ниже
приведен пример команды, которая остановит работу системы через
10 минут, послав сообщение "scheduled maintenance" (плановое
обслуживание) всем работающим в системе пользователям.
# shutdown -h +10 "scheduled maintenance"
Я так понимаю - эта команда аналог выключения системы в Windows?

Если всё таки лучше использовать "halt" - не подскажете с какими ключами или где почитать поподробней?

Правда у меня на винчестере нет никакого програмного обеспечения. Я так и не понял, как это ставится. А команды, описанные в "настройках... с нуля" - выдают ошибку. Видимо нужно создавать доп. разделы и (или) монтировать каталоги. Я даже этот диск не смог отформатировать в Ext3, как рекомендовано - пользовался Парагоновским пакетом.

TDA
28-08-2007, 01:09
Полное название коробочки пожалуйста(сам ищу подобную)..
Ну команда унмоунт по идее уж точно его удалит...
halt это не из головы, а сего форума - не знаю чем отличаеться от этих но роутер рубин на раз(может просто ввести и посмотреть чем задавать вопросы? ;) ) ключей к ней вроде и нет...
Форматировать всякими парагонами - читаем ВНИМАТЕЛЬНО - не рекомендуеться более того подтверждаю на личном опыте - ничего кроме глюков это не даст...
Установка прог итп - делал почти все как написанно в "настройке с нуля" - мануал для обязьян ибо если сделать все буква в букву - точно работает(другое дело что я немного экспериминтировал - помучался зато смог сделать все под себя ;) )

Grumbler
28-08-2007, 07:45
Полное название коробочки пожалуйста(сам ищу подобную)..


Коробочка - http://www.fcenter.ru/foto.shtml?60158:89058.

halt - ввел, погас светодиод сети и "Air". "Wan" и "1" - продолжнали гореть. Это нормально?
Как после команды "halt" програмно запустить роутер? Он ведь из телнета "пропадает". Это вообще возможно, или только выключить и включить обратно питание? А это не вредно для роутера?

Я не смог по инструкции отформатировать винчестер. Пробовал несколько раз, команды копировал из форума. Скорее всего потому, что не создавался swap раздел, который, как написано, нужен для форматирования HDD - поэтому и пришлось пользоваться Парагоном. Как создать swap - я не понял в принципе. Его ведь нужно создать как логический раздел, а потом еще смонтировать (а форматировать - нужно?). Как - я из инструкции не понял, поэтому и не особо пытался.

unmount - что бы знать, что демонтировать, нужно сначала узнать, что смонтировано. А то опять будет писать телнет, какие то слова, но нефига не понятно, что с этим делать. И потом, описано, что сначала нужно "убить" ftp - иначе он не даст демонтировать диск?! А SAMBA - нужно отключать?

Пока работает так.

Теперь задача №1 - заставить HDD "засыпать". Как?

TDA
28-08-2007, 12:17
еслиб у роутера был монитор он бы наверное написал "а теперь питание можете выключить" :D

Я пошел своим путем - удалил на винте все разделы затем подрубив через бокс к компу загрузился с установочного диска с какойто мандривой - она сама увидела пустой винт и предложила его развить - корневой раздел + своп в интерфейсе напомниающим парагоновский сделал легко ;)

Для полноценного извлечения винта нужно отрубиться самбу фтп и тока потом умоунт - легче выключить тогда уж :(
Дай команду df - он сам покажет что и куда смонтированно - потом umount "путь который показал df" в общем все просто...

Соседние ветки почитай - если твой бокс умеет передавать команду "сна" то там скриптик был но я предпочел основной винт всетаки держать при деле(там сайт и своп - врядли он так часто будет простаивать) а вот вторым будет WD mybook - эта коробочка сама отрубает винт при простое ;)

Grumbler
29-08-2007, 03:32
Соседние ветки почитай - если твой бокс умеет передавать команду "сна" то там скриптик был но я предпочел основной винт всетаки держать при деле(там сайт и своп - врядли он так часто будет простаивать) а вот вторым будет WD mybook - эта коробочка сама отрубает винт при простое ;)

Сейчас начнете злится.

Что такое скрипт, и как его запустить - скопировать строки в окно телнета или сохранить в файл (какой файл, имя, расширение) и его запустить (опять же - как запустить этот файл)?

Кроме того, в англоязычной версии форума было сообщение, что он не работает. Вернее останавливает, но диск тут же запускается опять (предположительно Самбой).

TDA
29-08-2007, 11:08
Кроме того, в англоязычной версии форума было сообщение, что он не работает. Вернее останавливает, но диск тут же запускается опять (предположительно Самбой).

Поэтому для основного винта програмные методы непригодны - если бокс сам не останавливает винт то никак...
в качестве варианта - если смотреть винт какойнит mhdd то там вроде есть опции экономии энергии - может с ними что то и можно ну и ноутбучный винт - тот например что я таскаю вместо флешки тоже сам останавливаеться при отсутсвии активности..

neprosto
03-09-2007, 18:43
Програмно остановить шпиндель и тем самым выключить хд можно - сделайте поиск по scsi-stop. Единственный минус - не совсеми боксами работает

Grumbler
05-09-2007, 19:48
Попробовал установить scsi-stop как описано в http://wl500g.info/showpost.php?p=47135&postcount=10
- не получается.
1. Ввожу как указано - cd usr/local/sbin
Ответ: - sh: cd: can't cd to ust/local/sbin
2. Пробую: cd usr/sbin
пообую: ls
Выводит список:
bpalogin httpd nas robocfg
brctl igmpproxy nas4not showmount
busybox_httpd infosvr nfsd smbd
chat ip nmbd snmpd
chroot iptables ntpclient stupid-ftpd
crond iptables-restore nvram tc
dnsmasq l2tp-control p910nd tcpdump
dropbear l2tpd portmap telnetd
dropbearconvert lockd pppd upnp
dropbearkey lpd pppoe-relay waveserver
et mii-tool pptp wl
exportfs mini_sendmail radvd wlconf
ez-ipupdate mountd rcamd

Пробую: wget http://oleg.wl500g.info/bin/scsi-stop
получаю: wget: scsi-stop: Read-only file system.

Пробую: cd /
ls
Получаю
bin etc lib mnt proc tmp var
dev home linuxrc opt sbin usr www

Перехожу в usr - ls
X11R6 codepages lib sbin
bin etc local tmp

пробую: cd local
пробую: ls
получаю: root

Понимаю, что дальше пробовать бесполезно.

Прошу помощи. Желательно пошаговую инструкцию.
В линуксе ничего не смыслю. Прочел несколько статей. Нашел справочник команд.

Mam(O)n
05-09-2007, 19:52
Grumbler, читай внимательнее, ибо первая команда значится
cd /usr/local/sbin

upd:
Сам невнимательно прочитал твой пост :o
У тебя нет не создан каталог /usr/local/sbin, дай команду:
mkdir /usr/local/sbin

GearST
05-09-2007, 21:50
подтверждаю сразу начинает снова раскручивать, на харде и свап и опт

Grumbler
06-09-2007, 04:21
У тебя нет не создан каталог /usr/local/sbin, дай команду:
mkdir /usr/local/sbin

А после создания каталога нужно:
flashfs save
flashfs commit
flashfs enable?


И как узнать, сколько там места?

Вечером попробую...
Спасибо за подсказку!

Grumbler
06-09-2007, 08:24
Немного о flashfs и иже с ним. Здесь я хочу рассказать, что было мной изведано относительно данного явления.

Все знания были получены мной в результате проб и ошибок и на полное соответствие с действительностью не претендуют.


Спасибо Добрый Человек ;) , но вопрос - нужно ли выполнять после создания каталога эти три команды?

Хорошо, что хоть начали отвечать. А то как об стену бъешся - нифига не понятно. И опасение - как бы что не "сломать" в роутере. Только вроде бы наладилось... И жалко диска - используется часа 2 в сутки, крутится всё время. Я бы его вручную отключал, но остальные пользователи - не сумеют потом запустить (блондинки, хотя - если я не очень то понимаю, им и не положено вообще)...
Никаких программ на диске нет, свапа - тоже. Так, что его можно останавливать (и нужно).



При первом создании flashfs эту команду необходимо запустить во избежание недоразумений.


Ааа - понял! Нужно задавать эти три строки если раньше такой файл не создавался.

GearST
06-09-2007, 15:21
а что так тяжело почитать настройку с нуля? там все разжеванно

Mam(O)n
06-09-2007, 15:50
Ааа - понял! Нужно задавать эти три строки если раньше такой файл не создавался.

Чегой то я сомневаюсь, что ты понял. Причем здесь 3 строки. Если ты делаешь что-нибудь в /usr/local и чтоб эти изменения остались после перезагрузки их нужно сохранить во флешь с помощью 3-х команд: flashfs save && flashfs commit && flashfs enable



но вопрос - нужно ли выполнять после создания каталога эти три команды?

еще не догадался? ;)

Grumbler
06-09-2007, 16:47
а что так тяжело почитать настройку с нуля? там все разжеванно

Я её раз 20 прочел. Что то понял - роутер работает, локальная сеть провайдера в моей домашней сети есть на всех компьютерах. Даже телевиденье показывает. Диск к USB подключил, расшарил.
А вот это - с созданием каталогов, установкой программ - не очевидно!!!
Человеку знакомому с консолью Линукса - может быть и понятно, а мне нет!!! Я и пытаюсь найти людей, готовых помочь.
Форумы, по моему, для этого и существуют?!

Grumbler
08-10-2007, 13:12
Так! Появилось время.
Собрался с духом и выполнил тест - будет ли останавливаться мой диск - выполнил http://wl500g.info/showpost.php?p=47135&postcount=10 - до места где указан тест на остановку. Диск останавливается.

Информация по устройству:
Коробка - Tsunami "S-3500" для 3.5" ATA/SATA HDD (рекомендую, с 80 мм вентилятором, что редкость!!!)
HDD - WD 200 Gb IDE (отформатирован в ext3 - "парагоном")

Результаты cat /proc/scsi/usb-storage-0/0:

Host scsi0: usb-storage
Vendor: Sunplus Technology Inc.
Product: USB to Parallel-ATA bridge
Serial Number: WDC WD2000WD-WMAL81303578
Protocol: Transparent SCSI
Transport: Bulk
GUID: 04fc0c056b58fffffffffff9
Attached: Yes

Перезагрузился без сохранения.

Создал usr/local/sbin
кстати, в "настройке с нуля" - не очевидно, что этот каталог создается. В п.4 указано "если нужно..."
А я посчитал, что мне не нужно "установить SSH-сервер" и пропустил этот пункт. Поэтому утверждение, что "всё разжевано" (привет GearST) неверно в общем. Верно только если ставить ВСЁ как указано. Без исключения.
Далее перешел в этот каталог и:

[Driver@wl500gp sbin]$ wget http://oleg.wl500g.info/bin/scsi-stop
Connecting to oleg.wl500g.info[158.250.11.254]:80
scsi-stop 100% |*****************************| 5768 00:00 ETA
[Driver@wl500gp sbin]$ chmod a+x scsi-stop
[Driver@wl500gp sbin]$ /usr/local/sbin/scsi-stop /dev/scsi/host0/bus0/target0/lu
n0/disc
[Driver@wl500gp sbin]$ cat > scsi-stop.sh
#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=30
BOUNDARY=1200
SCSISTOP=/usr/local/sbin/scsi-stop
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS=
|\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/
awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime second
s" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done
Тут как указано - <press Ctrl-C>
[Driver@wl500gp sbin]$ chmod a+x scsi-stop.sh
[Driver@wl500gp sbin]$ ./scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &
[Driver@wl500gp sbin]$ ./scsi-stop.sh: ./scsi-stop.sh: 39: Syntax error: end of
file unexpected (expecting "done").

Вышел ничего не сохранив, reboot'ом, из за "Syntax error:" - в тексте скрипта этот "done" есть, а система ругается.

Попробовал снова. Но выходить не стал, сохранил полученное. Перезагрузил роутер. Запустил

./scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &

Признаков остановки диска (ждал 20 минут до остановки) не обнаружил (при тесте, было явно слышно щелчок и как останавливается диск).

Кроме того, файл /tmp/scsi-stop.log - не образуется. Я его просто не нашел. Может нужно создать?


[Driver@wl500gp /tmp]$ ls
dnsmasq.log nas.lan.conf resolv.conf syslog.log
etc nas.lan.pid stupid-ftpd.bye syslog.log.0
filter_rules nas.wan.conf stupid-ftpd.conf udhcpc
harddisk nat_rules stupid-ftpd.log var
local ppp stupid-ftpd.mtd wanstatus.log
Прошу помощи...

Grumbler
09-10-2007, 20:02
Решил попробовать еще раз.
Нашел на форуме сообщение http://wl500g.info/showpost.php?p=61733&postcount=37
попробовал, получилось так:

[Driver@wl500gp sbin]$ ps | grep scsi
93 Driver SW [scsi_eh_0]
171 Driver 380 R grep scsi

Вернулся к инструкции и попробовал еще раз, но после вставки кода скрипта нажал Enter, и только после этого Ctrl-C.

Потом ввел:

./scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &

Снова посмотрел:

[Driver@wl500gp sbin]$ ps | grep scsi
93 Driver SW [scsi_eh_0]
172 Driver 496 S /bin/sh ./scsi-stop.sh /dev/scsi/host0/bus0/target0/l
183 Driver 380 S grep scsi

Стер на диске файл, подумал, может быть нужно как то инициировать действия, что бы получить запись в лог. Посмотрел в /tmp

[Driver@wl500gp /tmp]$ ls
dnsmasq.log nas.lan.conf resolv.conf stupid-ftpd.mtd
etc nas.lan.pid scsi-stop.log syslog.log
filter_rules nas.wan.conf stupid-ftpd.bye udhcpc
harddisk nat_rules stupid-ftpd.conf var
local ppp stupid-ftpd.log wanstatus.log

Засек время - через 20 минут диск остановился.

Интересно - после перезагрузки роутера, нужно опять вводить команду запуска скрипта?

Или включить его в какой ни будь "post-boot" или "post-mount"?

А как его создать? В "инструкции с нуля" описано применение MC - я его ставить только для этого не хочу. В остальном он мне не нужен (может быть пока, но скорее всего - совсем)
Можно ли командой (находясь в каталоге /usr/local/sbin)

cat > post boot
<./scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &>
<press Ctrl-C>
chmod +x /usr/local/sbin/post-mount

Или лучше использовать команду

/usr/local/sbin/scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc & из за возможных проблем (см. в начале этого поста) с роутером.

Grumbler
10-10-2007, 13:11
Как в анекдоте.

Создал файл /usr/local/sbin/post-boot
Присвоил права на исполнение командой

chmod +x /usr/local/sbin/post-boot
Содержимое файла:

#!/bin/sh
./scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &
Сохранил

flashfs save && flashfs commit && flashfs enable

reboot

после перезагрузки


[Driver@wl500gp /]$ ps | grep scsi
93 Driver SW [scsi_eh_0]
161 Driver 380 R grep scsi

Созданный файл перемещал в /tmp/harddisk/t/ - а там, уже из под windows в total commandere редактировал.
Потом перемещал обратно.
Ввожу команду, переместившись в каталог /urs/local/sbin/,

./scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc & вручную - процесс запускается и работает.

Пробовал вставлять в post-boot строку

/usr/local/sbin/scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &
Всё равно - не работает.

Создал post-mount с содержимым:

#!/bin/sh
/usr/local/sbin/scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &
Присвоил ему права на исполнение.
Сохранил.
Перезагрузил.
Получил:

[Driver@wl500gp root]$ ps | grep scsi
93 Driver SW [scsi_eh_0]
133 Driver 500 S /bin/sh /usr/local/sbin/scsi-stop.sh /dev/scsi/host0/
223 Driver 380 R grep scsi

Одно непонятно, почему у этого парня - http://wl500g.info/showpost.php?p=61733&postcount=37
это работает в post-boot?

SinSel
21-02-2008, 15:23
Поскажите, как заставить уходить жесткий диск в спящий режим после продолжительного простоя?

Спасибо за ответы!

PupsDRVR
21-02-2008, 16:45
Поскажите, как заставить уходить жесткий диск в спящий режим после продолжительного простоя?

Спасибо за ответы!

Для ответа на вопрос в поиске набрать ключевое слово scsi-stop и получить информацию (http://wl500g.info/search.php?searchid=1196281).:)

SinSel
22-02-2008, 06:22
Спасибо, очень помог. А то даже не знал куда копать!

SkySlider
23-02-2008, 20:54
а у меня scsi-stop не проканало :(

alexcccp
28-03-2008, 13:27
да спасибо диск останавливается

вот только вопрос в другом срузу же секунд через 5 -10 начинает, раскручивается

из-за чего он его раскручивает
своп отлюючил
осталось opt\ папки на харде может из-за них

щас пришла в голову мысль может из-за самбы или фтп сижу на работе проверить возможности нету

скрипом тот, что был выложен в довесок не побывал
свопа тоже лишатся, не хочется


коробка вот эта http://www.nix.ru/autocatalog/hdd_accessories/Gembird_EE3-U2-3_3.5_HDD_Aluminum_51388.html стоила 512 рубля

диск старый сегейт на 80 GB
позже скажу подробней

bmenee
14-04-2008, 10:52
подскажите внешний usb2 винт оптимальный по Физическому Размеру и Цене мегабайта (400-1000 гб)
провереный с этим роутером, с внешним питанием

PupsDRVR
14-04-2008, 11:02
подскажите внешний usb2 винт оптимальный по Физическому Размеру и Цене мегабайта (400-1000 гб)
провереный с этим роутером, с внешним питанием

Абсолютно точно будет работать этот (http://www.seagate.com/ww/v/index.jsp?locale=ru-RU&name=freeagent-desktop-500gb-usb2.0-external-hd&vgnextoid=dc984296f3c22110VgnVCM100000f5ee0a0aRCRD&vgnextchannel=8d3f26bbdae90110VgnVCM100000f5ee0a0a RCRD&reqPage=Model) диск. Но есть грабли (http://wl500g.info/showpost.php?p=84298&postcount=596), не надо включать режим энергосбережения, иначе проснуться может с ошибками (долго просыпается по времени). Но это не самое тихое решение, ночью в спальне весьма слышен...

Cranch
14-04-2008, 18:16
подскажите внешний usb2 винт оптимальный по Физическому Размеру и Цене мегабайта (400-1000 гб)
провереный с этим роутером, с внешним питанием

У меня на одном из моих роутеров прекрасно работает связка WD5000AAKS + Tsunami S-3500Fan (и просыпается после scsi-stop корректно ;)).

Из холодных кейсов цена гигабайта у этой связки оптимальна, хотя сейчас, вроде бы, и 750-е трехблинники у того же WD доступны - для следующего апгрейда буду искать именно такой.

bmenee
15-04-2008, 11:18
купил seagate freeagent pro 1tb, отформатировал используя win32 порт e2fsprogs (входит в состав ext2fsd):


Z:\hdd\ext3\Ext2Fsd-0.46pre3\Ext2Fsd>mke2fs.exe -j f:
mke2fs 1.40.6 (09-Feb-2008)
f: is not a block special device.
Proceed anyway? (y,n) y
Warning: 256-byte inodes not usable on older systems
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61054976 inodes, 244190000 blocks
12209500 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
7453 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


При подключении пишет:


Apr 15 14:03:59 kernel: hub.c: new USB device 01:03.2-1, assigned address 2
Apr 15 14:03:59 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Apr 15 14:03:59 kernel: Vendor: Seagate Model: FreeAgent Pro Rev: 4109
Apr 15 14:03:59 kernel: Type: Direct-Access ANSI SCSI revision: 02
Apr 15 14:03:59 kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Apr 15 14:03:59 kernel: SCSI device sda: 1953525168 512-byte hdwr sectors (-99306 MB)
Apr 15 14:03:59 kernel: Partition check:
Apr 15 14:03:59 kernel: p1
Apr 15 14:04:02 kernel: EXT3-fs: unsupported inode size: 256

вопрос - какие надо использовать параметры mke2fs что бы все сработало?

-I 128 или ещё какие то параметры нужны?

Desash
22-05-2008, 19:01
Помогите сил уже нет. Есть WL500gp, есть данный диск на 320Gb, который постоянно отваливается. Порылся в Интернете нашел это http://www.theinquirer.net/gb/inquirer/news/2007/12/06/seagate-snubs-linux, а вот тут решение http://alienghic.livejournal.com/382903.html.

Установил я в общем этот sdparm, запускаю
sdparm -a /dev/scsi/host1/bus0/target0/lun0/disc
с целью увидеть служебные флаги своего диска и в результате ничего, ни сообщения об ошибке, ни того самого списка.:(

Может есть у кого-нибудь какие-нибудь соображения??

Desash
22-05-2008, 19:20
Помогите, сил уже нет. Есть WL500gp и есть данный диск на 320 Гб, который постоянно отваливается. Порылся в интернете и нашел вот это http://www.theinquirer.net/gb/inquirer/news/2007/12/06/seagate-snubs-linux, а вот тут решение проблемы http://alienghic.livejournal.com/382903.html.

В общем установил я этот sdparm, запускаю
sdparm -a /dev/scsi/host0/bus0/target0/lun0/disc
с целью увидеть все доступные служебные флаги диска и ничего не происходит, ни появляется список флагов, ни сообщение об ошибке.
Ничего понять не могу :confused:

Может кто-нибудь сталкивался??

Grumbler
19-06-2008, 10:18
Сменил прошивку на 1.9.2.7-10. Винт перестал засыпать. Повторил процедуру установки scsi-stop, вставил строку запуска скрипта в post-mount (http://wl500g.info/showpost.php?p=65510&postcount=20). Перезапустил роутер - автозапуск не сработал. Повторил процедуру еще раз, и еще раз - уже в post-boot - автозапуск не работает.
Запуская вручную -
/usr/local/sbin/scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc & получаю работающий скрипт.

Что я делаю не так? Почему не срабатывает автозапуск?

Добавил на следующий день.

Всё таки это мистика. Сегодня еще 3 раза удалял post-mount, 3 раза создавал его снова. На 3ий раз - заработало...

Aeron.Dae
26-07-2008, 00:14
Собственно сабж.
Asus WL-500gP V2, Seagate FreeAgent, прошивка 10-ая от Олега.
Кто знает, как это сделать без лишней возни с ipkg и сторонними пакетами? Не хочется ставить cron и каждые 5 минут touch'ить диск.

DemonGloom
26-07-2008, 06:52
Вроде как программа, идущая в комплекте с винтом позволяет это делать...

EugeenB
26-07-2008, 09:12
Собственно сабж.
Asus WL-500gP V2, Seagate FreeAgent, прошивка 10-ая от Олега.
Кто знает, как это сделать без лишней возни с ipkg и сторонними пакетами? Не хочется ставить cron и каждые 5 минут touch'ить диск.Не интересовался ещё этими вопросами, но в будующем - придётся столкнуться. Думаю смотреть в сторону hdparm.

Aeron.Dae
26-07-2008, 09:40
Вроде как программа, идущая в комплекте с винтом позволяет это делать...
Вот уж спасибо =) Я привык, что на дисках шлак всякий лежит, а тут Power Settings, то-то он каждые 15 минут стопорился.
Еще раз спасиб.

Novik
02-09-2008, 08:43
-- Deleted -- Акелла опоздал с рекомендациями...

Alaric
25-09-2008, 20:09
Привет всем!
Собственно вопрос в следующем:
Имеется wl-500w с подключнным к нему хардом Seagate FreeAgent Pro 1Tb. Прошивка Олеговская, 10. Жесткий разбит на 2 раздела, оба в ext3.
Так вот, теоретически сиагейт в простое через n мин диск паркует, и под когда он подключен к компу все так и есть. А вот при подключении к роутеру жужжит сутки напролет и греется :mad:
Видимо роутер зачем-то его дергает...:confused:
Кто что посоветует? :)
P.S. swap'а на него я не ставил, прог тоже... Только самба.

Vollsky
25-09-2008, 21:57
Привет всем!
Собственно вопрос в следующем:
Имеется wl-500w с подключнным к нему хардом Seagate FreeAgent Pro 1Tb. Прошивка Олеговская, 10. Жесткий разбит на 2 раздела, оба в ext3.
Так вот, теоретически сиагейт в простое через n мин диск паркует, и под когда он подключен к компу все так и есть. А вот при подключении к роутеру жужжит сутки напролет и греется :mad:
Видимо роутер зачем-то его дергает...:confused:
Кто что посоветует? :)
P.S. swap'а на него я не ставил, прог тоже... Только самба.

Вот здесь все прекрасно описано: http://wl500g.info/showpost.php?p=47135&postcount=10

PupsDRVR
26-09-2008, 05:26
Привет всем!
Собственно вопрос в следующем:
Имеется wl-500w с подключнным к нему хардом Seagate FreeAgent Pro 1Tb. Прошивка Олеговская, 10. Жесткий разбит на 2 раздела, оба в ext3.
Так вот, теоретически сиагейт в простое через n мин диск паркует, и под когда он подключен к компу все так и есть. А вот при подключении к роутеру жужжит сутки напролет и греется :mad:
Видимо роутер зачем-то его дергает...:confused:
Кто что посоветует? :)
P.S. swap'а на него я не ставил, прог тоже... Только самба.

Как я вас понимаю (http://wl500g.info/showpost.php?p=84298&postcount=596) :). В итоге купил себе WD Passport на 250 гигов и распял пермычку под питание, чтобы диск головками не щелкал, все теперь работает без проблем много месяцев.

Alaric
26-09-2008, 09:24
Vollsky
Спасибо большое, буду пытаться)))
PupsDRVR
Мне, к сожалению, 250 не хватит ;) Так что диск - по-любому 3,5"

PupsDRVR
26-09-2008, 09:46
PupsDRVR
Мне, к сожалению, 250 не хватит ;) Так что диск - по-любому 3,5"

Есть ещё такой же паспорт на 400 гигов. А с тем диском вы тишины не получите, это по определению. Что касается режима энергосбережения, то Seagate FreeAgent поддерживает это на апаратном уровне, под него есть родная утилита, была изначально на диске записана, если хлопнули её, то с сайта скачайте, которая позволяет выставить время остановки при бездействии. Так что по предыдущей ссылке не стоит даже заморачиваться, все гораздо проще.

Alaric
26-09-2008, 14:16
PupsDRVR
На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется :)
По ссылке (http://wl500g.info/showpost.php?p=47135&postcount=10) я сделал, жесткий выключается, но обратно уже не включается :D:D:D
Соответственно буду мозговать дальше)))
П.С. что куплено - то куплено, дороги назад уж нет...



Такая вот есть идея: поставить помимо scsi-stop scsi-start, и прописать запуск шпинделя в скрипте при первом же обращении...
Наподобие этого:


#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=30
BOUNDARY=1200
SCSISTOP=/usr/local/sbin/scsi-stop
SCSISTART=/usr/local/sbin/scsi-start
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
if(stopped==1); then
$SCSISTART $1
fi
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done
Так как я в этом деле мягко говоря не очень, может кто-нибудь сказать - поправка верная?

PupsDRVR
26-09-2008, 18:01
PupsDRVR
На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется :)
По ссылке (http://wl500g.info/showpost.php?p=47135&postcount=10) я сделал, жесткий выключается, но обратно уже не включается :D:D:D
Соответственно буду мозговать дальше)))
П.С. что куплено - то куплено, дороги назад уж нет...



Такая вот есть идея: поставить помимо scsi-stop scsi-start, и прописать запуск шпинделя в скрипте при первом же обращении...
Наподобие этого:


#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=30
BOUNDARY=1200
SCSISTOP=/usr/local/sbin/scsi-stop
SCSISTART=/usr/local/sbin/scsi-start
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
if(stopped==1); then
$SCSISTART $1
fi
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done
Так как я в этом деле мягко говоря не очень, может кто-нибудь сказать - поправка верная?

Вы по моим стопам идете, я все это уже проходил (начиная с этого поста почитайте ) :) (http://wl500g.info/showpost.php?p=85221&postcount=598). Если найдете решение, дайте знать.

Vollsky
26-09-2008, 19:55
PupsDRVR

Такая вот есть идея: поставить помимо scsi-stop scsi-start, и прописать запуск шпинделя в скрипте при первом же обращении...
Наподобие этого:


#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=30
BOUNDARY=1200
SCSISTOP=/usr/local/sbin/scsi-stop
SCSISTART=/usr/local/sbin/scsi-start
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
if(stopped==1); then
$SCSISTART $1
fi
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done
Так как я в этом деле мягко говоря не очень, может кто-нибудь сказать - поправка верная?
Отмеченная стока будет работать только после старта диска, а это уже лишне. В этом скрипте ничего менять не нужно - он для остановки диска, а стартовать нужно по другому. Например cron.

Vollsky
27-09-2008, 02:06
PupsDRVR
На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется :)
По ссылке (http://wl500g.info/showpost.php?p=47135&postcount=10) я сделал, жесткий выключается, но обратно уже не включается :D:D:D
Соответственно буду мозговать дальше)))
П.С. что куплено - то куплено, дороги назад уж нет...

Как вариант: из Web можно разбудить все диски кодом
<?php
exec("fdisk -l",$data);
for ($i=0; $i< count($data);$i++) :
print "$data[$i]<br>";
endfor;
?>

Alaric
27-09-2008, 18:22
Vollsky
Хм... Спасибо за советы, буду пробовать)
PupsDRVR
Выход должен быть... его не может не быть... :)

Alaric
28-09-2008, 19:02
Свою проблему (http://wl500g.info/showpost.php?p=113013&postcount=983) я решил процентов так на 70...
1) Помимо жесткого диска воткнул в роутер флешку на 128 Мб
2) Подключил ее в /opt
3) Установил ipkg
4) Установил scsi-idle (он уже есть скомпилированный, в списке пакетов)
5) Основываясь на этом (http://wl500g.info/showpost.php?p=47135&postcount=10) материале, запустил такой вот скриптик:

#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=5
BOUNDARY=1200
BOUNDARY2=1215
SCSISTOP=/opt/sbin/scsi-stop
SCSISTART=/opt/sbin/scsi-start
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
umount -l /tmp/mnt/disc0_1
umount -l /tmp/mnt/disc0_2
mount /dev/discs/disc0/part1 /tmp/mnt/disc0_1
mount /dev/discs/disc0/part2 /tmp/mnt/disc0_2
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Remount... Ready to stop..." > $LOGFILE
stopped=1
str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`

fi

if /usr/bin/[ $cooltime -ge $BOUNDARY2 -a $stopped -eq 1 ]; then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=2
fi
else
if /usr/bin/[ $cooltime -ne 0 -a $stopped -eq 2 ]; then
$SCSISTART $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Start disk... Ready to use" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done
Соответсвенно, висит в бакграунде.
Результат:
Жесткий отключается через n мин простоя.
Чтобы диск запустился, требуется зайти на диск, подождать время PERIOD + время раскрутки шпинделя, и желаемое будет получено)))
Не густо, но и то хлеб... (без команды scsi-start у меня вообще никак не запускается)
Буду думать дальше)))
P.S. Чуть подправил скрипт...

Serge_K
28-09-2008, 21:54
Далее допустим, захожу в шару самбы, отображается структура диска из кеша. Чтобы диск запустился, требуется 1-2 раза нажать "обновить"...
Не густо, но и то хлеб... (без команды scsi-start вообще никак не запускается)
Буду думать дальше)))
Чего-то Вы усложняете. Я взял вариант scsi-stop Олега. Скрипт - на базе этого. Глушится через сколько мне надо, раскручивается при первом обращении безо всяких scsi-start.

Partos
23-10-2008, 14:37
Уже более полугода исправно трудится WL-500W в связке с Seagate USB винтом на 750ГБ. Но что-то меня тут заинтересовало, а почему винт крутится постоянно? Все-таки, наверное это не совсем правильно, можно было бы остановить его, когда к нему нет обращений, как это происходит в Windows к примеру? (прошу сразу прощения за подобное сравнение)

lagshmi
23-10-2008, 14:41
Уже более полугода исправно трудится WL-500W в связке с Seagate USB винтом на 750ГБ. Но что-то меня тут заинтересовало, а почему винт крутится постоянно? Все-таки, наверное это не совсем правильно, можно было бы остановить его, когда к нему нет обращений, как это происходит в Windows к примеру? (прошу сразу прощения за подобное сравнение)

какой размер винта? на сколько я помню 2.5 вообще не останавливаются:-)

DemonGloom
23-10-2008, 15:09
какой размер винта? на сколько я помню 2.5 вообще не останавливаются:-)

Насколько помню - 750гб только в 3.5" формате.
Во вторыхх 2.5" винту вполне успешно спят (не в роутере, но и в нем иногда тоже)

Serge_K
23-10-2008, 15:10
какой размер винта? на сколько я помню 2.5 вообще не останавливаются:-)

Не вводите людей в заблуждение! Зависит от бокса.

Serge_K
23-10-2008, 15:11
Уже более полугода исправно трудится WL-500W в связке с Seagate USB винтом на 750ГБ. Но что-то меня тут заинтересовало, а почему винт крутится постоянно? Все-таки, наверное это не совсем правильно, можно было бы остановить его, когда к нему нет обращений, как это происходит в Windows к примеру? (прошу сразу прощения за подобное сравнение)

Ищите по слову scsi-stop на форуме. Это возможно, но не со всеми...

lagshmi
23-10-2008, 15:16
Ищите по слову scsi-stop на форуме. Это возможно, но не со всеми...

мне не удалось остановить. если вы поможите то буду благодарен:-)
и какая зависимость между диком и боксом???
п.с. у меня диск 2.5 не помню коробку

Serge_K
23-10-2008, 15:23
мне не удалось остановить. если вы поможите то буду благодарен:-)
и какая зависимость между диком и боксом???
п.с. у меня диск 2.5 не помню коробку

От коробки зависит только. Если не удалось - то в ней дело.
Посмотрите
http://wl500g.info/showthread.php?t=7996&highlight=scsi-stop

lagshmi
23-10-2008, 15:47
у меня коробка Vantec NexStar3 NST-260U2-BK
http://di1.shopping.com/images1/pi/e2/70/a1/25722916-177x150-0-0_.jpg

Serge_K
23-10-2008, 15:55
у меня коробка Vantec NexStar3 NST-260U2-BK
http://di1.shopping.com/images1/pi/e2/70/a1/25722916-177x150-0-0_.jpg

Важно на каком чипе она.
Вы поиском по scsi-stop посмотрите: найдете, как посмотреть на каком чипе у Вас, найдете также и список поддерживаемых/неподдерживаемых чипов.

lagshmi
23-10-2008, 19:44
root@DD-WRT:~# cat /proc/scsi/usb-storage-0/0
Host scsi0: usb-storage
Vendor: Prolific Technology Inc.
Product: Mass Storage Device
Serial Number: 0
Protocol: Transparent SCSI
Transport: Bulk
GUID: 067b25060000000000000000
Attached: Yes


отвечает
root@DD-WRT:/tmp# ./scsi-stop /dev/discs/disc0/disc
/dev/discs/disc0/disc is not a SCSI block device:rolleyes:

SpiderX
29-10-2008, 18:30
Господа, а вот как быть в такой же ситуации, но в условиях, что


Вроде как программа, идущая в комплекте с винтом позволяет это делать...
Программы никакой не шло, hutil скачанный с офф.сайт ничем не помог - может только Acoustic Managment`ом заниматься, никакого Power Managment`a там и близко нет.

hdparm тут нам не помощник, а жаль, остается, конечно, вариант "каждые 5 минут touch'ить диск", но как бы тоже не хотелось, хоть и крон стоит :)

Может есть какие-то универсальные утилиты, чтобы отрубить spindown\standby режим вообще?
Кто-то кроме Aeron.Dae и DemonGloom задавался вообще вопросом?

Винт: Vendor: SAMSUNG Model: HM160HI

Slav_on
29-10-2008, 19:22
У меня нестандартное решение данной проблемы.

Имею следующий набор:
HDD 2,5" Samsung - 80 Гб - 5400 об/мин - IDE
HDD-бокс Transcend StoreJet 2.5 S/R (http://www.transcendusa.com/products/ModDetail.asp?ModNo=89&LangNo=0#)
Подключён к роутеру через активный USB-хаб. Не каких утилит по остановке или не остановке диска в комплекте с боксом небыло, я вначале ломал голову как мне отключить засыпание, а потом придумал просто не отключать отдачу в rTorrent и все ОК ;-). Диск не засыпает т.к. постоянно что-то копируется и считывается.

Вот такое решения придумал я для себя.

Stekov
30-10-2008, 08:49
Та же фигня с Seagate FreeAgent.
Причем при подключении он на столько мало активен что роутер не успевает его засечь в девайсах.

Причем было так что иногда он просыпался и какое-то время работал нормально, а иногда просто при старте на секунд 30 запускался и тух.

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

Archim
30-10-2008, 10:09
Тем, у кого Seagate: покопайтесь на сайте производителя в разделе Support. Найдёте нужные программы. Всё настраивается двумя щелчками мышки.

kodmis
30-10-2008, 12:33
У меня внешний диск Western Digital My Book Premium Edition (WDG1C2500E)
Тоже засыпает после 10 мин неактивности. Причем производитель заявляет (http://wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/std_adp.php?p_faqid=1376&p_created=1117733984&p_sid=JkEcEDhj&p_accessibility=0&p_redirect=&p_lva=&p_sp=cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX 3Jvd19jbnQ9MzQsMzQmcF9wcm9kcz0yMjgsMjA5LDIxMCZwX2N hdHM9MCZwX3B2PTMuMjEwJnBfY3Y9JnBfc2VhcmNoX3R5cGU9Y W5zd2Vycy5zZWFyY2hfZm5sJnBfcGFnZT0xJnBfc2VhcmNoX3R leHQ9cG93ZXI*&p_li=&p_topview=1) что эта фича не отключается.
Приходится постоянно touch'ить диск через cron :(

tiny
30-10-2008, 19:45
Винт Fujitsu на 2.5 дюйма с внешним блоком питания. + флешка Вот такая беда:

Nov 3 22:10:01 /opt/sbin/cron[209]: (admin) CMD (/opt/etc/cron.scripts/wakeuphdd.sh)
Nov 3 22:15:01 /opt/sbin/cron[213]: (admin) CMD (/opt/etc/cron.scripts/wakeuphdd.sh)
Nov 3 22:20:01 /opt/sbin/cron[217]: (admin) CMD (/opt/etc/cron.scripts/wakeuphdd.sh)
Nov 3 22:25:01 /opt/sbin/cron[221]: (admin) CMD (/opt/etc/cron.scripts/wakeuphdd.sh)
Nov 3 22:27:18 kernel: usb.c: USB disconnect on device 01:03.2-2 address 3
Nov 3 22:27:18 nmbd[119]: [2008/11/03 22:27:18, 0] nmbd/nmbd.c:sig_term(65)
Nov 3 22:27:18 nmbd[119]: Got SIGTERM: going down...
Nov 3 22:27:19 kernel: hub.c: new USB device 01:03.2-2, assigned address 4
Nov 3 22:27:20 USB storage: removed
Nov 3 22:27:28 kernel: kjournald starting. Commit interval 5 seconds
Nov 3 22:27:28 kernel: EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Nov 3 22:27:28 kernel: EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,16), internal journal
Nov 3 22:27:28 kernel: EXT3-fs: mounted filesystem with ordered data mode.
Nov 3 22:27:28 kernel: JBD: no valid journal superblock found
Nov 3 22:27:28 kernel: EXT3-fs: error loading journal.
Nov 3 22:27:28 kernel: MSDOS FS: Using codepage 950
Nov 3 22:27:28 kernel: MSDOS FS: IO charset cp950
Nov 3 22:27:28 kernel: FAT: bogus logical sector size 0
Nov 3 22:27:28 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Nov 3 22:27:28 kernel: FAT: freeing iocharset=cp950
Nov 3 22:27:28 kernel: FAT: bogus logical sector size 0
Nov 3 22:27:28 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Nov 3 22:27:28 kernel: VFS: Can't find ext3 filesystem on dev sd(8,2).
Nov 3 22:27:28 kernel: MSDOS FS: Using codepage 950
Nov 3 22:27:28 kernel: MSDOS FS: IO charset cp950
Nov 3 22:27:28 kernel: FAT: bogus logical sector size 65535
Nov 3 22:27:28 kernel: VFS: Can't find a valid FAT filesystem on dev 08:02.
Nov 3 22:27:28 kernel: FAT: freeing iocharset=cp950
Nov 3 22:27:28 kernel: FAT: bogus logical sector size 65535
Nov 3 22:27:28 kernel: VFS: Can't find a valid FAT filesystem on dev 08:02.
Nov 3 22:27:28 /opt/sbin/cron[239]: (CRON) STARTUP (V5.0)
Nov 3 22:29:27 kernel: usb.c: USB disconnect on device 01:03.2-2 address 4
Nov 3 22:29:28 kernel: hub.c: new USB device 01:03.2-2, assigned address 5
Nov 3 22:29:37 kernel: JBD: no valid journal superblock found
Nov 3 22:29:37 kernel: EXT3-fs: error loading journal.
Nov 3 22:29:37 kernel: MSDOS FS: Using codepage 950
Nov 3 22:29:37 kernel: MSDOS FS: IO charset cp950
Nov 3 22:29:38 kernel: FAT: bogus logical sector size 0
Nov 3 22:29:38 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Nov 3 22:29:38 kernel: FAT: freeing iocharset=cp950
Nov 3 22:29:38 kernel: FAT: bogus logical sector size 0
Nov 3 22:29:38 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Nov 3 22:29:38 kernel: VFS: Can't find ext3 filesystem on dev sd(8,2).
Nov 3 22:29:38 kernel: MSDOS FS: Using codepage 950
Nov 3 22:29:38 kernel: MSDOS FS: IO charset cp950
Nov 3 22:29:38 kernel: FAT: bogus logical sector size 65535
Nov 3 22:29:38 kernel: VFS: Can't find a valid FAT filesystem on dev 08:02.
Nov 3 22:29:38 kernel: FAT: freeing iocharset=cp950
Nov 3 22:29:38 kernel: FAT: bogus logical sector size 65535
Nov 3 22:29:38 kernel: VFS: Can't find a valid FAT filesystem on dev 08:02.
Nov 3 22:29:38 /opt/sbin/cron[251]: (CRON) STARTUP (V5.0)
Nov 3 22:30:01 /opt/sbin/cron[253]: (admin) CMD (/opt/etc/cron.scripts/wakeuphdd.sh)
Означает ли это что проблемы с питанием? (внешний usb-шный блок питания на 1000МА)
swap и файловые системы примонтированы через /etc/fstab

Dao_Dezi
31-10-2008, 08:56
А вот такая последовательность не помогает?

hdparm -B 255 /dev/путь/к/диску
(либо -B 254, если не получится)
hdparm -S 0 /dev/путь/к/диску

SpiderX
01-11-2008, 17:28
hdparm не работает через USB.

tiny
03-11-2008, 21:45
У меня проблема непонятно в чем. Решаю одни проболемы, появляются другие. Сейчас роутер спокойно держит стресс-тест на работу с гигабайтными файлами по самбе, но иногда тих отваливается сам.

rmrfchik
10-11-2008, 20:58
Воспользовался http://oleg.wl500g.info/bin/scsi-stop, остановил диск, обратно он не запускается:
Device 08:01 not ready.
I/O error: dev 08:01, sector 10264
EXT3-fs error (device sd(8,1)): ext3_readdir: directory #2 contains a hole at offset 0
и т.д.
Прошивка последняя от Олега, wl500w, диск
$ cat /proc/scsi/usb-storage-0/0
Host scsi0: usb-storage
Vendor: Seagate
Product: FreeAgent Pro
Serial Number: 3QJ0A0AJ
Protocol: Transparent SCSI
Transport: Bulk
GUID: 0bc23110fffffff93b30a0b3
Attached: Yes
Port: 2
Bus: 01:03.2-2


T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0bc2 ProdID=3110 Rev= 0.00
S: Manufacturer=Seagate
S: Product=FreeAgent Pro
S: SerialNumber= 3QJ0A0AJ
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Serge_K
07-02-2009, 21:17
lly, перелез на прошивку на новом ядре неделю назад - всё стабильно вроде. Спасибо!
Только вот сегодня обнаружил, что scsi-stop работать перестал, диск не останавливается. Попробовал:

/usr/local/sbin/scsi-stop /dev/scsi/host0/bus0/target0/lun0/disc

И получил:

/dev/scsi/host0/bus0/target0/lun0/disc is not a SCSI block device

На Олеговой десятке все работало.

theMIROn
07-02-2009, 21:23
Для экспериментаторов: в новом busybox'е немного неисправен insmod для ядер 2.4, поэтому модуль wl.o не загружается с Segmentation fault (т.е. вы остаетесь без WiFi)
какую версию busybox используете? если 1.13 stable, то ту фиксы к ней http://busybox.net/downloads/fixes-1.13.2/, в том числе для modprobe и depmod.
Для insmod временно можно использовать старый сорц.

Только вот сегодня обнаружил, что scsi-stop работать перестал, диск не останавливается.Там патч нужен еще к ядру, гляну

theMIROn
09-02-2009, 19:02
Только вот сегодня обнаружил, что scsi-stop работать перестал, диск не останавливается. Попробовал:
/usr/local/sbin/scsi-stop /dev/scsi/host0/bus0/target0/lun0/disc
И получил:
/dev/scsi/host0/bus0/target0/lun0/disc is not a SCSI block device
На Олеговой десятке все работало.
работающие scsi-stop & scsi-start на wl500g.googlecode.com
http://wl500g.googlecode.com/files/scsi-startstop-mipsel.tbz2


Updated:
Ну в общем я это... того... часовню... развалил... гы =)

P.S. К самопальному локальному pppoe серверу на базе OpenSUSE коннектится, а больше мне не на чем тестировать.c pptp/l2tp не проверял?

Serge_K
09-02-2009, 19:28
работающие scsi-stop & scsi-start в аттаче

theMIROn, спасибо за оперативность! Навскидку попробовал: диск останавливается, при обращении раскручивается. Потестю подробнее... А scsi-start зачем? Я знаю, что он в scsi-idle входит, но предназначения его не понял...
P.S. Эх, мужики, был бы я хоть чуть-чуть в линухе... Помог бы вам в вашем благородном деле, а так - могу лишь тестить в меру своего скудного юзерского разумения.:)

lly
09-02-2009, 20:06
работающие scsi-stop & scsi-start в аттаче (lly, гугл отказывается принимать аплоад. попробуй выложить)
выложил.

c pptp/l2tp не проверял?
не успел еще настроить OpenVPN.



P.S. Эх, мужики, был бы я хоть чуть-чуть в линухе... Помог бы вам в вашем благородном деле, а так - могу лишь тестить в меру своего скудного юзерского разумения.:)
И это говорит человек с 686 постами? :rolleyes:
Сдаётся мне, что тестить тебя учить не надо и работать с телнетом тоже :)

theMIROn
18-02-2009, 16:11
1. additional modules - а как они устанавливаются и что в них входит? Я видел конечно названия директорий внутри, но как-то не очень понял... Ставятся все махом или надо выбирать? Что-то про них не нашел ничего... некоторые модули уже есть в прошивке, потому что используются. некоторые можно добавить дополнительно при наличии флешки/hdd в /opt/lib/modules/2.4.37/



2. не понял про scsi_start/stop, кроме того, что лежать они должны видимо в /usr/local/sbin/. Не понял кто их запускает (система по аналогии с post и pre файлами??? Когда? Сама по событию либо по команде пользователя?)scsi_start/stop - это исполняемые файлы, останавливающие и запускающие usb hdd, которые подключаются к роутеру как блочные scsi устройства. Запускаются вручную, или по cron-у, например. Некоторые переходники usb-ide/sata не реагируют на эти команды, некоторые usb hdd имеют свойство засыпать (останавливаться) самостоятельно. На форуме есть соответствующие темы
Если не понятно зачем это, то не стоит и использовать. Возможность раскрутки usb hdd, если оно уснуло, в прошивку была добавлена.

p.s в последние бинарники прошивок с wl500g.googlecode.com в /usb/sbin уже включены tcpdump, scsi-stop и scsi-start на общий размер 355'782 байта

Dao_Dezi
02-03-2009, 03:00
Собрал таки прошивку сам. 141ую. Простите за ламерский вопрос - а то, что моя прошивка меньше (3637248 байт - супротив 3751936 байт) - это нормально? Могу предполагать, что это может быть связано с разными компиляторами на хостах, но так ли это? Делал по инструкции.

theMIROn
02-03-2009, 03:57
Собрал таки прошивку сам. 141ую. Простите за ламерский вопрос - а то, что моя прошивка меньше (3637248 байт - супротив 3751936 байт) - это нормально? Могу предполагать, что это может быть связано с разными компиляторами на хостах, но так ли это? Делал по инструкции.
это связано с тем, что в прошивку при сборке добавляется tcpdump, scsi-start и scsi-stop

theMIROn
02-03-2009, 07:02
Чвой-то пошукал, но так и не нашёл... А как внедрить бинарий в подготавливаемую прошивку?

взять здесь http://code.google.com/p/wl500g/downloads/list
положить в gateway/mipsel-uclibc/target и выполнить две комманды:
mksquashfx-lzma и asustrx
Передаваемые параметры посмотреть в gateway/Makefile
все гораздо проще. взять там, где сказал al37919 и подложить в src/router/Addon
тогда в процессе сборки оно автоматом закинется в /usr/sbin
p.s в архиве scsi-startstop-mipsel.tbz2 scsi-start и scsi-stop лежат отдельными бинарниками для отдельного и независимого использования.
при включении в прошивку лучше для scsi-stop создать символьную ссылку на scsi-start, фактически бинарник один и тот же. зато минус почти 5 кб.

it@it
25-03-2009, 21:41
Asus WL500gp подключен внешний диск TRANSCEND StoreJet 2.5, в качестве питающего шнура подошла зарядка от NOKIA (5.7в 800mA) (ЧЕРЕЗ usb пощелкивало:))
все работает FTP, торренты но! постоянная работа диска не устраивает
Scsi-stop увы не работает, halt вырубает все.
Нашел интересную ссылку
http://sg.danny.cz/sg/sdparm.html#mozTocId166213
Уважаемые гуру возможно ли как то использовать sdparm (там сборки различные есть debian package ) для отключения?

it@it
25-03-2009, 21:50
Asus WL500gp подключен внешний диск TRANSCEND StoreJet 2.5, в качестве питающего шнура подошла зарядка от NOKIA (5.7в 800mA) (ЧЕРЕЗ usb пощелкивало:))
все работает FTP, торренты но! постоянная работа диска не устраивает
Scsi-stop увы не работает, halt вырубает все.
Нашел интересную ссылку
http://sg.danny.cz/sg/sdparm.html#mozTocId166213
Уважаемые гуру возможно ли как то использовать sdparm (там сборки различные есть debian package ) для отключения?
в винде работает так
sdparm.exe --command=stop h:где h номер диска

Marks
25-03-2009, 22:28
Asus WL500gp подключен внешний диск TRANSCEND StoreJet 2.5, в качестве питающего шнура подошла зарядка от NOKIA (5.7в 800mA) (ЧЕРЕЗ usb пощелкивало:))
все работает FTP, торренты но! постоянная работа диска не устраивает
Scsi-stop увы не работает, halt вырубает все.
Нашел интересную ссылку
http://sg.danny.cz/sg/sdparm.html#mozTocId166213
Уважаемые гуру возможно ли как то использовать sdparm (там сборки различные есть debian package ) для отключения?
в винде работает так
sdparm.exe --command=stop h:где h номер диска
Скомпилировал, пробуйте.
P.S.Потом только подумал :) - остановить-то он может и сможет, а вот запустить?

DfDf
25-03-2009, 22:59
Скомпилировал, пробуйте.
P.S.Потом только подумал :) - остановить-то он может и сможет, а вот запустить?

sdparm.exe --command=start :)

it@it
26-03-2009, 08:37
Cпасибо сегодня обязательно попробую правильно я понимаю последовательность действий?
1.Копирую все прикрепленные файлы в соответствующие папки
2.

-ipkg update
-ipkg install sdparm

3.Смотрю
-fdisk -l
4.
-sdparm --command=stop /dev/scsi/host0/bus0/target0/lun0/part1

?

Marks
26-03-2009, 09:14
Cпасибо сегодня обязательно попробую правильно я понимаю последовательность действий?
1.Копирую все прикрепленные файлы в соответствующие папки
2.

-ipkg update
-ipkg install sdparm

3.Смотрю
-fdisk -l
4.
-sdparm --command=stop /dev/scsi/host0/bus0/target0/lun0/part1

?Не совсем. Это не пакет, а просто архив, надо просто распаковать. Причём не на хард, который надо остановить, а в роутер - например в /usr/local/sbin . А дальше - как повезёт - будет он работать без подмонтированного винта или нет - не знаю, т.к. компилировался с оптваревским uclibc :)

Hohmach
26-03-2009, 10:51
У меня тоже TRANSCEND StoreJet 2.5 и с ним scsi-stop на 1.9.2.7-d работает прекрасно.

it@it
26-03-2009, 11:15
У меня тоже TRANSCEND StoreJet 2.5 и с ним scsi-stop на 1.9.2.7-d работает прекрасно.

Под этой маркой выпускается много моделей у меня один из самых первых вот такой
http://news.ferra.ru/hard/2005/08/22/51259/
внутри диск IDE Fugitsu
есть модели sata может у вас другая модель.

PS:Хотя здесь дело в чипе нужно смотреть идентификатор

Hohmach
26-03-2009, 11:33
Под этой маркой выпускается много моделей
Действительно, у меня другой (http://wl500g.info/showpost.php?p=135098&postcount=12)

it@it
27-03-2009, 19:07
Вобщем после тестов вывод такой: если чип не поддерживает остановку мотора то не scsi-stop не sdparm не .........еще что то не поможет:mad:

GRemi_Lt
29-03-2009, 14:39
Ситуация такая - WL-500gx с прошивкой Олега 1.9.2.7-7g, ext. USB диском 80 Gb и stupid-ftpd иногда "засыпает" wireless (хотя wl isup показывает isup is 1 (on).)
Это я привязываю к тому как начал экспериментировать с временной остановкой (spin-down) USB диска. Теперь использую метод "Shell-only scsi-idle without kernel patch" из страницы http://www.nslu2-linux.org/wiki/FAQ/SpinDownUSBHarddisks#method2 (этот вариант практически единственный который у меня работает).
В post-boot для этого вставил строчку:

/tmp/local/sbin/scsi-stop.sh /dev/scsi/host0/bus0/target0/lun0/disc &

Если в post-boot'е и закомментировать эту строчку к сожалению ничего не меняется.. flashfs save и т.д. если что делаю..
Время через которое "засыпает" wireless непрогнозируется. Тогда подключаюсь или мобилкой N95 через GSM и PUTTY на web интерфейс (или через чей-то свободный WEP wl) и посылаю комманды wl radio off и wl radio on - это помогает, но иногда ненадолго..
Помогите пожалство советом так как я уже совсем "заколебался"..
Этого spin-down не хочется отказаться, так как мой HDD довольно заметно греется. hdparm не сумел заставить работать..
За ранее благодарю за совет. Help me а то хана :))

theMIROn
08-04-2009, 16:56
так пусть стопается, какие проблемы то? шума меньше

azhur
08-04-2009, 18:09
Видимо проблема в том, что он потом не просыпается.
А так - действительно пусть спит.

theMIROn
08-04-2009, 19:36
Видимо проблема в том, что он потом не просыпается.
А так - действительно пусть спит.
в прошивке из подписи портировал раскрутку уснувших дисков из 2.6 ядра, должно раскручиваться
проверяйте

mimohod
02-06-2009, 10:18
К WL500gP v1 подключен HDD Seagate FreeAgent Desk 1,5Tb единственный раздел отформатирован в EXT3, swap и /opt смонтированны на флэшке 4Gb. Прошивка Олега 1.9.2.7-10.7. Диск работает через встроенную Самбу.
На HDD выставлен спящий режим 15мин., отказаться от которого не могу, т.к. диск оказался весьма шумным. При попытке записи на диск в спящем режиме, возникает ошибка, в лог выдается:
Jun 2 12:51:12 kernel: Device 08:11 not ready.
Jun 2 12:51:12 kernel: I/O error: dev 08:11, sector 720
Jun 2 12:51:12 kernel: EXT3-fs error (device sd(8,17)): read_inode_bitmap: Cannot read inode bitmap - block_group = 0, inode_bitmap = 90
Jun 2 12:51:12 kernel: Device 08:11 not ready.
Jun 2 12:51:12 kernel: I/O error: dev 08:11, sector 0
Jun 2 12:51:12 kernel: EXT3-fs error (device sd(8,17)) in ext3_new_inode: IO failure
Jun 2 12:51:12 kernel: Device 08:11 not ready.
Jun 2 12:51:12 kernel: I/O error: dev 08:11, sector 0 Для успешной записи на диск, необходимо предварительно что-то с него прочесть. С командой scsi-stop ситуация аналогичная (засыпает отлично - просыпается только на чтение).

Перелопатив форум, понял что реальных решений данной проблеммы нет. Хоть диск на улицу вывешивай как газовый балон в деревне. Или все-таки кому то удалось успешно решить данную проблему?

vectorm
02-06-2009, 12:37
К WL500gP v1 подключен HDD Seagate FreeAgent Desk 1,5Tb единственный раздел отформатирован в EXT3, swap и /opt смонтированны на флэшке 4Gb. Прошивка Олега 1.9.2.7-10.7. Диск работает через встроенную Самбу.
На HDD выставлен спящий режим 15мин., отказаться от которого не могу, т.к. диск оказался весьма шумным. При попытке записи на диск в спящем режиме, возникает ошибка, в лог выдается:
Jun 2 12:51:12 kernel: Device 08:11 not ready.
Jun 2 12:51:12 kernel: I/O error: dev 08:11, sector 720
Jun 2 12:51:12 kernel: EXT3-fs error (device sd(8,17)): read_inode_bitmap: Cannot read inode bitmap - block_group = 0, inode_bitmap = 90
Jun 2 12:51:12 kernel: Device 08:11 not ready.
Jun 2 12:51:12 kernel: I/O error: dev 08:11, sector 0
Jun 2 12:51:12 kernel: EXT3-fs error (device sd(8,17)) in ext3_new_inode: IO failure
Jun 2 12:51:12 kernel: Device 08:11 not ready.
Jun 2 12:51:12 kernel: I/O error: dev 08:11, sector 0 Для успешной записи на диск, необходимо предварительно что-то с него прочесть. С командой scsi-stop ситуация аналогичная (засыпает отлично - просыпается только на чтение).

Перелопатив форум, понял что реальных решений данной проблеммы нет. Хоть диск на улицу вывешивай как газовый балон в деревне. Или все-таки кому то удалось успешно решить данную проблему?
Попробуйте эту прошивку:
http://wl500g.info/showthread.php?t=17136
В ней вроде как решили проблему с засыпающими дисками.

mimohod
02-06-2009, 13:47
Попробуйте эту прошивку:
http://wl500g.info/showthread.php?t=17136
В ней вроде как решили проблему с засыпающими дисками.
Спасибо, попробую!
А ADOS на нее встанет?

vectorm
02-06-2009, 13:56
Спасибо, попробую!
А ADOS на нее встанет?
Это модификация прошивки Олега, туда в основном все должно встать.

nik_ns-5
28-01-2010, 17:22
Всем привет, у меня стоит DIR-320 прошитой от Олега 1.9.2.7-d-r1087 с внешним HDD 160 G. После полной установки по инструкции все работает нормально, но через некоторое время отсутствия работы с диском (несколько часов), все полностью отрубается, да так, что невозможно даже логи посмотреть.Помогает только пере подключение питания. Думаю, что дело в засыпании HDD, но диск вроде штатный для системного блока, но если дело в этом, то подскажите пожалуйста какие-нибудь команды для управления питания HDD или другие способы.

Wolfgun
29-01-2010, 07:59
scsi-stop, scsi-start есть в прошивки.

Noobeum
29-01-2010, 09:50
ВАЖНО по внешних жестким дискам:

1) Крайне рекомендуется использовать диск с внешним питанием. Для дисков 2.5 если возможно - использовать два USB, а лучше - внешнее питание. Для дисков 3.5 - внешнее питание.
2) Для дисков 3.5" крайне рекомендуется использовать охлаждение. Обдув: встроенный в корпус диска или внешний. Можно сделать самому из блока питания для телефона и вентилятора для компьютера.
3) Рекомендуется разбивать диск вручную, средствами роутера. По опыту скажу, что разбитое линухом не всегда корректно видится роутером (если видится вообще), но разбитое роутером видно всегда, иногда даже writeable.
4) В параметрах питания диска установить значения отключения питания NEVER (чаще всего решается утилитой от производителя диска или корпуса) Однако данная функция не всегда присутствует в пустых корпусах.

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

Существует проблема перегрева жесткого диска (особенно 3.5", особенно с плохой вентиляцией), когда свап расположен на диске. Можно попытаться ее вызвать, например, активно скачивая с диска по фтп или самбе на компьютер или же запустить на полную какой нибудь халявный огромный торрент. хороший пример - скачать весь дебиан (линукс дистриб) целиком, установив скорость торрента на максимум. Можно совмещать. Такие пляски помогут выявить перегрев и предпринять некоторые действия для неповторения ситуации:
-ограничение скорости торрента
-ручное регулирование нагрузки торрента
-ограничение скорости фтп, самбы

От себя скажу, что после установки охлаждения, отключение дисков из-за перегрева полностью прекратилось.
ЗДЕСЬ (http://wl500g.info/showpost.php?p=180877&postcount=2229) я описал основные ямы в нелегком деле подключения внешних дисков.

nik_ns-5
29-01-2010, 13:12
ЗДЕСЬ (http://wl500g.info/showpost.php?p=180877&postcount=2229) я описал основные ямы в нелегком деле подключения внешних дисков.


Большое спасибо. Все это естественно обсуждалось здесь много раз, и данные замечания были мною учтены (3.5 с внешним отдельным питанием), кроме обдува, но мне просто незачем обдув, он у меня стоит на открытом месте, вот только программы подходящей не нашлось для того чтобы проверить отключения питания, хотя вы сами говорили, что в некоторых дисках такая опция отсутствует.
Ну, вот даже сегодня, при утреннем включении, просто ничего не работает, просто ничего...Я даже не знаю в каком месте логи достать,т.к. все недоступно. Приходится возвращаться к заводским настройкам и все заново. Ну, это просто невыносимо(((

Noobeum
29-01-2010, 15:21
Ну, вот даже сегодня, при утреннем включении, просто ничего не работает, просто ничего...Я даже не знаю в каком месте логи достать,т.к. все недоступно. Приходится возвращаться к заводским настройкам и все заново. Ну, это просто невыносимо(((
возможно перегрев или подобные траблы с отключением свапа, если свап на диске. роутер каким бы он ни был, не переподлючает диски автоматом.

nik_ns-5
29-01-2010, 16:52
возможно перегрев или подобные траблы с отключением свапа, если свап на диске. роутер каким бы он ни был, не переподлючает диски автоматом.

Кстати, у меня также возникали мысли по-поводу падающего свапа, возможно самым надежным способом работы с диском, это - вынести свап на отдельную флешку. Как вам такая идея?

V_oron
22-04-2010, 18:05
в прошивке из подписи портировал раскрутку уснувших дисков из 2.6 ядра, должно раскручиваться
проверяйте
У меня не работает :( Необходима дополнительная настройка? Можно ли изменить настройки ядра так, чтобы система выжидала больше времени перед генерацией ошибки? Тогда бы диск успел бы "раскрутиться".

theMIROn
22-04-2010, 20:39
У меня не работает :( Необходима дополнительная настройка? Можно ли изменить настройки ядра так, чтобы система выжидала больше времени перед генерацией ошибки? Тогда бы диск успел бы "раскрутиться".

модель hdd какая? ну и что в системном логе?

V_oron
22-04-2010, 22:08
Охотно сообщаю :)
Модель диска: 1000Gb Seagate FreeAgent ST310005FDD2E1-RK
Лог (из веб-морды) ниже.
Попробовал cron`ом делать touch файлу на диске раз в 9 минут. Не помогло.

Хотя, похоже, я зря Вас побеспокоил категоричным заявлением. Да, хард засыпает при простое и можно получить ошибку ввода\вывода. Но роутер зависает при скачивании торрента (55Гб) в rtorrent. Хешеирования рпи этом проходит без проблем.



Jan 1 03:00:03 syslogd started: BusyBox v1.15.1
Jan 1 03:00:03 kernel: klogd started: BusyBox v1.15.1 (2009-10-04 18:20:08 MSD)
Jan 1 03:00:03 kernel: CPU revision is: 00029029
Jan 1 03:00:03 kernel: Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes.
Jan 1 03:00:03 kernel: Primary data cache 16kB, 2-way, linesize 16 bytes.
Jan 1 03:00:03 kernel: Linux version 2.4.37.6 (root@localhost) (gcc version 3.4.6) #1 2009-10-04 18:23:22 MSD
Jan 1 03:00:03 kernel: Setting the PFC to its default value
Jan 1 03:00:03 kernel: Determined physical RAM map:
Jan 1 03:00:03 kernel: memory: 02000000 @ 00000000 (usable)
Jan 1 03:00:03 kernel: On node 0 totalpages: 8192
Jan 1 03:00:03 kernel: zone(0): 8192 pages.
Jan 1 03:00:03 kernel: zone(1): 0 pages.
Jan 1 03:00:03 kernel: zone(2): 0 pages.
Jan 1 03:00:03 kernel: Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,ext3 noinitrd init=/linuxrc console=ttyS0,115200
Jan 1 03:00:03 kernel: CPU: BCM5354 rev 2 pkg 0 at 240 MHz
Jan 1 03:00:03 kernel: Using 120.000 MHz high precision timer.
Jan 1 03:00:03 kernel: Calibrating delay loop... 237.56 BogoMIPS
Jan 1 03:00:03 kernel: Memory: 30072k/32768k available (1752k kernel code, 2696k reserved, 236k data, 88k init, 0k highmem)
Jan 1 03:00:03 kernel: Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Jan 1 03:00:03 kernel: Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Jan 1 03:00:03 kernel: Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Jan 1 03:00:03 kernel: Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Jan 1 03:00:03 kernel: Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
Jan 1 03:00:03 kernel: Checking for 'wait' instruction... unavailable.
Jan 1 03:00:03 kernel: POSIX conformance testing by UNIFIX
Jan 1 03:00:03 kernel: PCI: no core
Jan 1 03:00:03 kernel: PCI: Fixing up bus 0
Jan 1 03:00:03 kernel: Linux NET4.0 for Linux 2.4
Jan 1 03:00:03 kernel: Based upon Swansea University Computer Society NET3.039
Jan 1 03:00:03 kernel: Initializing RT netlink socket
Jan 1 03:00:03 kernel: Starting kswapd
Jan 1 03:00:03 kernel: Journalled Block Device driver loaded
Jan 1 03:00:03 kernel: devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
Jan 1 03:00:03 kernel: devfs: boot_options: 0x1
Jan 1 03:00:03 kernel: NTFS driver v1.1.22 [Flags: R/O]
Jan 1 03:00:03 kernel: pty: 256 Unix98 ptys configured
Jan 1 03:00:03 kernel: Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
Jan 1 03:00:03 kernel: ttyS00 at 0xb8000300 (irq = 3) is a 16550A
Jan 1 03:00:03 kernel: ttyS01 at 0xb8000400 (irq = 3) is a 16550A
Jan 1 03:00:03 kernel: HDLC line discipline: version $Revision: 3.7 $, maxframe=4096
Jan 1 03:00:03 kernel: N_HDLC line discipline registered.
Jan 1 03:00:03 kernel: loop: loaded (max 8 devices)
Jan 1 03:00:03 kernel: PPP generic driver version 2.4.2
Jan 1 03:00:03 kernel: PPP Deflate Compression module registered
Jan 1 03:00:03 kernel: PPP BSD Compression module registered
Jan 1 03:00:03 kernel: MPPE/MPPC encryption/compression module registered
Jan 1 03:00:03 kernel: PPPoL2TP kernel driver, V0.15.1
Jan 1 03:00:03 kernel: PPTP driver version 0.8.4
Jan 1 03:00:04 kernel: usb.c: registered new driver usbdevfs
Jan 1 03:00:04 kernel: usb.c: registered new driver hub
Jan 1 03:00:04 dnsmasq[69]: started, version 2.51test3 cachesize 150
Jan 1 03:00:04 dnsmasq[69]: compile time options: no-IPv6 GNU-getopt no-RTC no-DBus no-I18N DHCP no-scripts no-TFTP
Jan 1 03:00:04 dnsmasq-dhcp[69]: DHCP, IP range 192.168.1.100 -- 192.168.1.110, lease time 1d
Jan 1 03:00:04 dnsmasq[69]: read /etc/hosts - 6 addresses
Jan 1 03:00:04 dnsmasq-dhcp[69]: read /etc/ethers - 4 addresses
Jan 1 03:00:04 kernel: usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
Jan 1 03:00:04 kernel: usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
Jan 1 03:00:04 kernel: usb.c: new USB bus registered, assigned bus number 1
Jan 1 03:00:04 kernel: hub.c: USB hub found
Jan 1 03:00:04 kernel: hub.c: 2 ports detected
Jan 1 03:00:04 kernel: ehci_hcd 00:03.1: PCI device 14e4:471a
Jan 1 03:00:04 kernel: ehci_hcd 00:03.1: irq 6, pci mem b8003800
Jan 1 03:00:04 kernel: usb.c: new USB bus registered, assigned bus number 2
Jan 1 03:00:04 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4
Jan 1 03:00:04 kernel: hub.c: USB hub found
Jan 1 03:00:04 kernel: hub.c: 2 ports detected
Jan 1 03:00:05 kernel: usb.c: registered new driver usblp
Jan 1 03:00:05 kernel: printer.c: v0.13: USB Printer Device Class driver
Jan 1 03:00:05 kernel: usb.c: registered new driver audio
Jan 1 03:00:05 kernel: audio.c: v1.0.1:USB Audio Class driver
Jan 1 03:00:05 kernel: SCSI subsystem driver Revision: 1.00
Jan 1 03:00:06 kernel: hub.c: new USB device 00:03.1-1, assigned address 2
Jan 1 03:00:06 kernel: hub.c: USB hub found
Jan 1 03:00:06 kernel: hub.c: 2 ports detected
Jan 1 03:00:06 kernel: Initializing USB Mass Storage driver...
Jan 1 03:00:06 kernel: usb.c: registered new driver usb-storage
Jan 1 03:00:06 kernel: USB Mass Storage support registered.
Jan 1 03:00:06 kernel: Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
Jan 1 03:00:06 portmap[91]: user rpc not found, reverting to user bin
Jan 1 03:00:07 kernel: hub.c: new USB device 00:03.1-1.2, assigned address 3
Jan 1 03:00:07 statd[93]: Version 1.0.7 Starting
Jan 1 03:00:07 statd[93]: statd running as root. chown /var/lib/nfs/sm to choose different user
Jan 1 03:00:07 kernel: vlan1: Setting MAC address to 00 24 8c 7f 43 78.
Jan 1 03:00:07 kernel: VLAN (vlan1): Underlying device (eth0) has same MAC, not checking promiscious mode.
Jan 1 03:00:08 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Jan 1 03:00:08 kernel: Vendor: Seagate Model: FreeAgent Rev: 0138
Jan 1 03:00:08 kernel: Type: Direct-Access ANSI SCSI revision: 02
Jan 1 03:00:08 kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Jan 1 03:00:08 kernel: SCSI device sda: 1953525166 512-byte hdwr sectors (1000205 MB)
Jan 1 03:00:08 kernel: Partition check:
Jan 1 03:00:08 kernel: /dev/scsi/host0/bus0/target0/lun0: p1
Jan 1 03:00:08 dhcp client: deconfig: lease is lost
Jan 1 03:00:09 admin: post-firewall: firewall is edited
Jan 1 03:00:09 admin: post-firewall: routes_editing called
Jan 1 03:00:10 dnsmasq[69]: read /etc/hosts - 6 addresses
Jan 1 03:00:10 dnsmasq-dhcp[69]: read /etc/ethers - 4 addresses
Jan 1 03:00:10 dnsmasq[69]: using nameserver 81.17.156.254#53
Jan 1 03:00:10 dnsmasq[69]: using nameserver 10.254.2.4#53
Jan 1 03:00:10 dhcp client: bound IP : 10.3.0.3 from 10.3.0.1
Jan 1 03:00:10 pppd[182]: Plugin rp-pppoe.so loaded.
Jan 1 03:00:10 pppd[182]: RP-PPPoE plugin version 3.10 compiled against pppd 2.4.5
Jan 1 03:00:10 pppd[183]: pppd 2.4.5 started by admin, uid 0
Jan 1 03:00:10 pppd[183]: Using interface ppp0
Jan 1 03:00:10 pppd[183]: local IP address 10.64.64.64
Jan 1 03:00:10 pppd[183]: remote IP address 10.112.112.112
Jan 1 03:00:11 pppd[183]: Starting link
Jan 1 03:00:11 admin: post-boot: started
Jan 1 03:00:12 admin: post-boot: hosts_editing called
Jan 1 03:00:22 kernel: kjournald starting. Commit interval 5 seconds
Jan 1 03:00:22 kernel: EXT3-fs warning: mounting fs with errors, running e2fsck is recommended
Jan 1 03:00:22 kernel: EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal
Jan 1 03:00:22 kernel: EXT3-fs: recovery complete.
Jan 1 03:00:22 kernel: EXT3-fs: mounted filesystem with ordered data mode.
Jan 1 03:00:22 USB storage: ext3 fs at /dev/discs/disc0/part1 mounted to /tmp/mnt/disc0_1
Jan 1 03:00:22 admin: post-mount: started
Jan 1 03:00:27 kernel: Adding Swap: 131064k swap-space (priority -1)
Jan 1 03:00:27 /opt/sbin/cron[218]: (CRON) STARTUP (V5.0)
Jan 1 03:00:28 su: + none admin:rtorrentuser
Jan 1 03:00:28 su: + none admin:rtorrentuser
Jan 1 03:00:28 su: + none admin:rtorrentuser
Jan 1 03:00:28 admin: routes_editing: routes edited
Jan 1 03:00:30 admin: routes_editing: routes edited
Jan 1 03:00:32 admin: hosts_editing: /tmp/etc/hosts edited
Jan 1 03:00:46 pppd[183]: Timeout waiting for PADO packets
Jan 1 03:00:51 pppd[183]: PPP session is 20669 (0x50bd)
Jan 1 03:00:51 pppd[183]: Connected to 00:1b:2b:87:2c:1a via interface vlan1
Jan 1 03:00:51 pppd[183]: Connect: ppp0 <--> vlan1
Jan 1 03:00:53 pppd[183]: CHAP authentication succeeded
Jan 1 03:00:53 pppd[183]: CHAP authentication succeeded
Jan 1 03:00:53 pppd[183]: peer from calling number 00:1B:2B:87:2C:1A authorized
Jan 1 03:00:53 pppd[183]: Local IP address changed to 77.233.195.6
Jan 1 03:00:53 pppd[183]: Remote IP address changed to 81.17.157.122
Jan 1 03:00:53 dropbear[253]: Child connection from 192.168.1.1:60409
Jan 1 03:00:54 pppd[183]: Open ICMP 77.233.195.6 -> 10.112.112.112
Jan 1 03:00:56 dnsmasq[69]: read /etc/hosts - 13 addresses
Jan 1 03:00:56 dnsmasq-dhcp[69]: read /etc/ethers - 4 addresses
Jan 1 03:00:56 dnsmasq[69]: using nameserver 81.17.156.254#53
Jan 1 03:00:56 dnsmasq[69]: using nameserver 10.254.2.4#53
Jan 1 03:00:58 admin: post-firewall: firewall is edited
Jan 1 03:00:58 admin: post-firewall: routes_editing called
Jan 1 03:00:58 PPPoE: connected to ISP
Jan 1 03:01:19 admin: routes_editing: routes edited

terrabyte
17-08-2010, 18:19
Подскажите пожалуйста что где поправить чтоб заставить винт не парковать головки часто. Имеется винт внешний Сигейт подключен к роутеру. Наблюдаю стук головок. Винт с питание внешним. При подключении к ББ стука нет. Предполагаю что виновата система в роутере. Читал про команду в Linux которая отключает парковку головок винчестера. Есть идеи как это сделать на роутере DIR-320?

ryzhov_al
17-08-2010, 18:30
man hdparm
Искать APM features.

terrabyte
17-08-2010, 18:38
Извините а подробнее можно?

igor77777
18-10-2010, 13:19
Попалась на глаза такая заметка (http://habrahabr.ru/blogs/sysadm/106273/), о том что винты WD шалят, и с переодичностью раз в 8сек паркуют головки. Просмотрев комментарии получалось, что этим страдают не только WD'шки, но винты других производителей.

В общем раз такое дело, решил посмотреть как поживает мой новый винт, поставленный буквально неделю назад.
Поставил smartmontools.
запускаю:

smartctl -d usbjmicron /dev/discs/discb/disc -a
...
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 193
193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 4772
...

т.е. получается, что мой винт паркуется 4772/193=24.7 раз в час, или каждые 2 минуты.
Это конечно не каждые 8 секунд, но все же много это или мало?
И вообще, зачем ему парковать если он лежит на полке?
Кроме-то, на этом винте лежит раздел со swap'ом, и получается что он как-бы отваливается каждые 2 минуты? или нет?
Ещё в свете этого вспомнил тему: Ошибка "page allocation failure" на прошивках RT-N16-1.9.2.7-rtn-rXXXX (http://wl500g.info/showthread.php?t=24875)

Какие будут мнения у общественности?

igor77777
24-10-2010, 06:50
После перехода rtn-ветку, описал(fstab) монтирование дисков по UUID.
После этого всплыла проблема.
"Типовой" pre-mount перестал проверять диски.
Ниже предлагаю вариант pre-mount, который учитывает вариант монтирования дисков по UUID.

#!/bin/sh

swapon -a
# Проверяем диски, если нужно (test drives)
# Вариант для случая монтирования по UUID
for i in `awk '/ext3/{print($1)}' /etc/fstab | cut -c6- ` ; do
i2=`blkid | grep $i | awk -F: '{print($1)}'`
if [ -b $i2 ] ; then
grep -q $i2 /proc/mounts || e2fsck -p $i2 2>&1 | logger -t e2fsck
else
logger -t fstab "$i as $i2 is not attached"
fi
done

А мой нынешний fstab выглядит примерно так:

#device Mountpoints FStype Options Dumo Pass#
LABEL=swap1 none swap sw 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /opt ext3 rw,noatime 1 1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext3 rw,noatime 1 1

Внимание! Более универсальный вариант находится здесь. Работает в случаях LABEL, UUID и непосредственный путь. (http://wl500g.info/showpost.php?p=216179&postcount=2867)


PS: Жаль, что на моё предыдущее сообщение, про рост счетчика парковок (http://wl500g.info/showpost.php?p=214006&postcount=2832) - тишина. А ведь, судя по статьям и инете - это проблема современых бюджетных винтов. А нас, у кого они работают 24х7, эта проблема коснется в первую очередь, когда по окончани гарантийного срока, они начнут выходить из строя.

Iguana
03-11-2010, 19:51
Попалась на глаза такая заметка (http://habrahabr.ru/blogs/sysadm/106273/), о том что винты WD шалят, и с переодичностью раз в 8сек паркуют головки. Просмотрев комментарии получалось, что этим страдают не только WD'шки, но винты других производителей.

В общем раз такое дело, решил посмотреть как поживает мой новый винт, поставленный буквально неделю назад.
Поставил smartmontools.
запускаю:

smartctl -d usbjmicron /dev/discs/discb/disc -a
...
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 193
193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 4772
...

т.е. получается, что мой винт паркуется 4772/193=24.7 раз в час, или каждые 2 минуты.
Это конечно не каждые 8 секунд, но все же много это или мало?
И вообще, зачем ему парковать если он лежит на полке?
Кроме-то, на этом винте лежит раздел со swap'ом, и получается что он как-бы отваливается каждые 2 минуты? или нет?
Ещё в свете этого вспомнил тему: Ошибка "page allocation failure" на прошивках RT-N16-1.9.2.7-rtn-rXXXX (http://wl500g.info/showthread.php?t=24875)

Какие будут мнения у общественности?

Мнения следущие: надо с этим что-то делать, мой новый хард:
Model Family: Western Digital Scorpio Blue Serial ATA family
Device Model: WDC WD5000BEVT-00A0RT0 (купил месяц назад) за 200 часов работы, 110 вкыл/выкл питания 11800 парковок :eek: (паркуется при простое более 5-ти сек. :eek:). Производитель гарантирует 300 тысяч парковок, т. е. мой винт уже использовал 5% своего ресурса :(
Сначала на нём был ОПТ и своп (где-то неделю), потом ОПТ я перенёс на флешку, поскольку винт используется как медиа-хранилище и пользуются им не более 1-2 часа в сутки (через 10 мин. он сам отключается)
В Вашем случае, скорее всего, просто где-то простоев больше, где-то меньше, а паркуется диск достаточно быстро, помонеторь смартконтролем, узнаете о нём много интересного... :D
На сегодняшний день есть несколько вариантов:
1. Какой-нибудь прогой, которая может писать в регистры харда (HDDscan, Victoria, MHDD) отключить или установить на 5-10 мин время парковки при простое (диск, правда, надо подключить напрямую к компу)
2. (сам, пока, пользуюсть) установить hdparm и после монирования выполнить hdparm -B255 /dev/sdb (у меня подключен вторым, поэтому у меня sdb, для подключенного первым, соответственно, /dev/sda)
Теперь диск не паркуеся при простое вообще, а при простое более 10-ти минут - отключается (по питанию - уходит в слип) :p

igor77777
04-11-2010, 07:06
Мнения следущие: надо с этим что-то делать
Спасибо за понимание проблемы.




В Вашем случае, скорее всего, просто где-то простоев больше, где-то меньше, а паркуется диск достаточно быстро, помонеторь смартконтролем, узнаете о нём много интересного... :D
На сегодняшний день есть несколько вариантов:
1. Какой-нибудь прогой, которая может писать в регистры харда (HDDscan, Victoria, MHDD) отключить или установить на 5-10 мин время парковки при простое (диск, правда, надо подключить напрямую к компу)

Пытался с помощью Victoria, ни чего сделать не смог. Возможно делал не всё или не то. Однако заметил, что даже на винте подключенном к ББ - этот счетчик продолжает расти. Единственное, когда его рост приостанавливался, это когда я запускал seek на первой закладке. Т.е. я так понимаю шла активная работа с диском.
Может подкажите, какия параметры можно так подкрутить.
Подключить диск к ББ - не проблема.



2. (сам, пока, пользуюсть) установить hdparm и после монирования выполнить hdparm -B255 /dev/sdb (у меня подключен вторым, поэтому у меня sdb, для подключенного первым, соответственно, /dev/sda)
Теперь диск не паркуеся при простое вообще, а при простое более 10-ти минут - отключается (по питанию - уходит в слип) :p
А тут можно по подробнее.
Куда вписать эту команду? post-mount?

А поскольку у меня ещё есть и флешка с /opt, то нужно как-то определять как определился винт: sda или sdb. Есть идеи как это сделать?

Iguana
04-11-2010, 13:24
Пытался с помощью Victoria, ни чего сделать не смог. Возможно делал не всё или не то. Однако заметил, что даже на винте подключенном к ББ - этот счетчик продолжает расти. Единственное, когда его рост приостанавливался, это когда я запускал seek на первой закладке. Т.е. я так понимаю шла активная работа с диском.

Sorry, на счёт Виктории - она не сохраняет т. е. программирует, но до отключение питания :confused:
HDDscan - тоже не сохраняет, MHDD - я ещё не пробовал...


Может подкажите, какия параметры можно так подкрутить.
Подключить диск к ББ - не проблема.
Для WD-шных винтов 100%-ный результат: wdidle (http://files.hddguru.com/download/Software/Western%20Digital/) написать wdidle /d (установит таймер в максимальное значение) или wdidle /sxxx, где xxx - количество секунд до парковки головок.
Обсуждение: Винты WD (http://forum.ixbt.com/topic.cgi?id=11:39956-90)


А тут можно по подробнее.
Куда вписать эту команду? post-mount?
hdparm -B255 /dev/sdb (у меня подключен вторым)


А поскольку у меня ещё есть и флешка с /opt, то нужно как-то определять как определился винт: sda или sdb. Есть идеи как это сделать?
Как по мне - лучше зафиксировать порядок монтирования носителей ;)

igor77777
05-11-2010, 15:46
А поскольку у меня ещё есть и флешка с /opt, то нужно как-то определять как определился винт: sda или sdb. Есть идеи как это сделать?
Как по мне - лучше зафиксировать порядок монтирования носителей ;)
Согласен, но когда наблюдал за SMART, то заметил, что у меня диски (флешка и винт) не всегда определяются в одном порядке. Т.е. не всегда флешка = sda, а винт = sdb

Как можно зафиксировать sda и sdb за определнными устройствами?

igor77777
10-11-2010, 17:56
Вернулся к проблеме роста счетчика паковки винта.
В общем, на hdparm получаю такое:

hdparm -B 255 /dev/discs/disca/disc

/dev/discs/disca/disc:
setting Advanced Power Management level to disabled
HDIO_DRIVE_CMD failed: Invalid argument
HDIO_DRIVE_CMD(identify) failed: Invalid argument

после этого винт может отвалиться.
Причем помогает только отключение питания.
Ну или smartctl перестает работать и проверить, продолжает расти счетчик или нет, не представляется возможным.


Чтобы это могло значить?

Iguana
10-11-2010, 21:24
Вернулся к проблеме роста счетчика паковки винта.
В общем, на hdparm получаю такое:

hdparm -B 255 /dev/discs/disca/disc

/dev/discs/disca/disc:
setting Advanced Power Management level to disabled
HDIO_DRIVE_CMD failed: Invalid argument
HDIO_DRIVE_CMD(identify) failed: Invalid argument

после этого винт может отвалиться.
Причем помогает только отключение питания.
Ну или smartctl перестает работать и проверить, продолжает расти счетчик или нет, не представляется возможным.


Чтобы это могло значить?
У меня hdparm выдаёт тоже самое, но на диске, который новый и глючный (Коробка Transcend StoreJet, диск WD ) - работало...
На том, который сейчас (коробка WD диск WD), не работает :confused:
Я где-то читал, что hdparm надо запускать до монтировния диска, попробуйте, соответственно smartctl будет запускаться после hdparm и, скорее всего, будет работать...
Я hdparm запускаю вручную послк поной загрузки рутера...

igor77777
11-11-2010, 04:04
У меня hdparm выдаёт тоже самое, но на диске, который новый и глючный (Коробка Transcend StoreJet, диск WD ) - работало...

Вот у меня тоже Transcend StoreJet, только диск Fujitsu.



Я где-то читал, что hdparm надо запускать до монтировния диска, попробуйте, соответственно smartctl будет запускаться после hdparm и, скорее всего, будет работать...

Вот мне кажется, что так и надо делать, но тогда получается, что hdparm нужно ставить во флеш-роутера. Тогда hdparm можно будет запускать в pre-mount.



Я hdparm запускаю вручную послк поной загрузки рутера...
Т.е. Вы его запускаете на смонтированном диске?

Кстати, а где у Вас swap?

Iguana
11-11-2010, 07:02
Вот мне кажется, что так и надо делать, но тогда получается, что hdparm нужно ставить во флеш-роутера. Тогда hdparm можно будет запускать в pre-mount.

Либо перед монтированием нужного. В нашем случае, в post-boot размонтируем нужный диск, запускаем hdparm, монтируем снова...


Т.е. Вы его запускаете на смонтированном диске?

Да


Кстати, а где у Вас swap?
Swap на флешке, но, за ненадобностью, он отключен.
Конфигурация у меня такая: Transcend JetFlash 2Gb: Swap & /OPT + StoreJet 500Gb (диск WD): /tmp/mnt/harddisk, последнюю неделю вместо 500Gb (уехал в сервис :() подключен WD 250Gb (диск WD)

Iguana
11-11-2010, 21:48
В ветке -rtn есть такая незатейливая утилика, для отключения/включения HDD...
Попробовал остновить/запустить диск:


22:45:03 11-11-2010 (warning|kern|kernel) program scsi-stop is using a deprecated SCSI ioctl, please convert it to SG_IO
22:46:19 11-11-2010 (info|daemon|smartd) smartd[438]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 108 to 109
22:54:55 11-11-2010 (warning|kern|kernel) program scsi-start is using a deprecated SCSI ioctl, please convert it to SG_IO
22:54:55 11-11-2010 (info|kern|kernel) usb 1-2: USB disconnect, address 3
22:54:56 11-11-2010 (err|kern|kernel) scsi 1:0:0:0: rejecting I/O to dead device
22:54:56 11-11-2010 (err|kern|kernel) Buffer I/O error on device sdb1, logical block 535
22:54:56 11-11-2010 (warning|kern|kernel) lost page write due to I/O error on sdb1
22:54:56 11-11-2010 (err|kern|kernel) scsi 1:0:0:0: rejecting I/O to dead device
22:54:56 11-11-2010 (err|kern|kernel) Buffer I/O error on device sdb1, logical block 535
22:54:56 11-11-2010 (warning|kern|kernel) lost page write due to I/O error on sdb1
22:54:56 11-11-2010 (err|kern|kernel) scsi 1:0:0:0: rejecting I/O to dead device
22:54:56 11-11-2010 (err|kern|kernel) Buffer I/O error on device sdb1, logical block 0
22:54:56 11-11-2010 (warning|kern|kernel) lost page write due to I/O error on sdb1
22:54:56 11-11-2010 (emerg|user|storage) storage: removed
22:55:30 11-11-2010 (info|kern|kernel) usb 1-2: new high speed USB device using ehci_hcd and address 4
22:55:30 11-11-2010 (info|kern|kernel) usb 1-2: configuration #1 chosen from 1 choice
22:55:30 11-11-2010 (info|kern|kernel) scsi2 : SCSI emulation for USB Mass Storage devices
22:55:32 11-11-2010 (notice|kern|kernel) scsi 2:0:0:0: Direct-Access WD 2500BEVExternal 1.02 PQ: 0 ANSI: 0
22:55:32 11-11-2010 (notice|kern|kernel) sd 2:0:0:0: [sdb] 488397168 512-byte hardware sectors (250059 MB)
22:55:32 11-11-2010 (notice|kern|kernel) sd 2:0:0:0: [sdb] Write Protect is off
22:55:32 11-11-2010 (debug|kern|kernel) sd 2:0:0:0: [sdb] Mode Sense: 00 00 00 00
22:55:32 11-11-2010 (err|kern|kernel) sd 2:0:0:0: [sdb] Assuming drive cache: write through
22:55:32 11-11-2010 (err|kern|kernel) sd 2:0:0:0: [sdb] Assuming drive cache: write through
22:55:32 11-11-2010 (info|kern|kernel) sdb: sdb1
22:55:32 11-11-2010 (notice|kern|kernel) sd 2:0:0:0: [sdb] Attached SCSI disk
22:55:40 11-11-2010 (notice|user|e2fsck) e2fsck: WD250Gb: recovering journal
22:55:40 11-11-2010 (notice|user|e2fsck) e2fsck: WD250Gb: clean, 43324/30539776 files, 51251844/61049000 blocks
22:55:40 11-11-2010 (info|kern|kernel) kjournald starting. Commit interval 5 seconds
22:55:40 11-11-2010 (info|kern|kernel) EXT3 FS on sdb1, internal journal
22:55:40 11-11-2010 (info|kern|kernel) EXT3-fs: mounted filesystem with ordered data mode.

Результат не радует :(
Диск остановился, но назад не завёлся (движок не раскрутился, счётчик попыток запуска шпинделя не увеличился), при этом "истерично" пытался распарковать головы :mad:
Вопрос к энтузиастам: возможно ли её сконвертировать в SG_IO?
В репозитории нашел: scsi-idle, но к ней есть сл. коммент: SCSI disks and a daemon that spins down drives when idle - kernel patch needed for spin-up
Хотябы в планах есть патчить эту штуку, али нет?
Для ядра 2.4, вроде как, есть: scsi-idle-2.4.23.tar.gz (http://lost-habit.com/scsi-idle-2.4.23.tar.gz)

max2007
10-04-2011, 18:10
Установил Sdparm
Даю в консоли команду

sdparm --command=stop /dev/dev/discs/discb/part1
В ответ получаю ошибку

open error: /dev/dev/discs/discb/part1 [read/write]: No such file or directory
Подскажите что делаю не так , как всё исправить ??? Спасибо !!!

max2007
10-04-2011, 19:18
С недавних пор стал обладателем RT-N16 поставил на него доп.софт (Программы для чайника) на флешку в 2 гига , также к роутеру подключен внешний винт 1000 GB WD WD10EARS в кармане AgeStar SUB3AHT .
Винт служит файловым хранилищем он розшарен по самбе , плюс ко всему настроен FTP сервер (из прошивки) для доступа в винту из интернета (для брательника) Всё настроено благодаря факам и статьям на этом форуме , за что форуму и всем авторам статей низкий поклон.
Собственно сама проблема : HDD работает 24/7 , а пользуимся ми им только вечером после роботы (смотрим фильмы по сети HD плеером) , тоесть хотелось бы чтобы винт работал только в определённое время (например с 16:00 до 1:00 )
Я установил и испытал програмку sdparm , как оказалось она отлично останавливает винт

sdparm --command=stop /dev/discs/discb/part1
и запускает его

sdparm --command=start /dev/discs/discb/part1
Теперь надо написать скрипт который бы проверял время каждые 5 минут и если оно больше чем 16:00 то он бы запускал HDD
потом самбу

/opt/etc/init.d/S08samba start
И потом если время больше чем 1:00 то он бы останавливал самбу

/opt/etc/init.d/S08samba stop
и останавливал бы HDD

Ну вот примерно так , хотя я уверен что это всё можно сделать наверно немного поумней , я не програмист и всех тонкостей не знаю, может даже надо было бы отмонтировать ,и примонтировать HDD при отключении и включении оного. Собственно прошу помощи знающих людей в написании такого скрипта , все логи и выводи коман выложу по просьбе если они потребуются . Спасибо !!!

tempik
10-04-2011, 19:28
С недавних пор стал обладателем RT-N16 поставил на него доп.софт (Программы для чайника) на флешку в 2 гига , также к роутеру подключен внешний винт 1000 GB WD WD10EARS в кармане AgeStar SUB3AHT .
Винт служит файловым хранилищем он розшарен по самбе , плюс ко всему настроен FTP сервер (из прошивки) для доступа в винту из интернета (для брательника) Всё настроено благодаря факам и статьям на этом форуме , за что форуму и всем авторам статей низкий поклон.
Собственно сама проблема : HDD работает 24/7 , а пользуимся ми им только вечером после роботы (смотрим фильмы по сети HD плеером) , тоесть хотелось бы чтобы винт работал только в определённое время (например с 16:00 до 1:00 )
Я установил и испытал програмку sdparm , как оказалось она отлично останавливает винт

sdparm --command=stop /dev/discs/discb/part1
и запускает его

sdparm --command=start /dev/discs/discb/part1
Теперь надо написать скрипт который бы проверял время каждые 5 минут и если оно больше чем 16:00 то он бы запускал HDD
потом самбу

/opt/etc/init.d/S08samba start
И потом если время больше чем 1:00 то он бы останавливал самбу

/opt/etc/init.d/S08samba stop
и останавливал бы HDD

Ну вот примерно так , хотя я уверен что это всё можно сделать наверно немного поумней , я не програмист и всех тонкостей не знаю, может даже надо было бы отмонтировать ,и примонтировать HDD при отключении и включении оного. Собственно прошу помощи знающих людей в написании такого скрипта , все логи и выводи коман выложу по просьбе если они потребуются . Спасибо !!!

crond вам вруки ... поиск поможет...

max2007
10-04-2011, 19:34
crond вам вруки ... поиск поможет...
Я знаю что такое crond и умею пользоваться форумом и поиском , но я не програмист и не имею представления как писать скрипты поэтому и обратился за помощью

tempik
10-04-2011, 19:40
Я знаю что такое crond и умею пользоваться форумом и поиском , но я не програмист и не имею представления как писать скрипты поэтому и обратился за помощью
Причем здесь программирование ... у вас есть четыре строки которые вы сами привели:
1) Остановка самбы
2) Остановка винта
3) Запуск винта
4) Запуск самбы ...
Теперь читаем про крон и создаем четыре задания в нужное вам время ...

max2007
10-04-2011, 19:56
Читал я про крон , и честно говоря для меня это тёмный лес , нехватает у меня мозгов как заставить его это всё работать

tempik
10-04-2011, 20:12
Читал я про крон , и честно говоря для меня это тёмный лес , нехватает у меня мозгов как заставить его это всё работать
например в post-mount вписать строки:


mkdir -p /var/spool/cron/crontabs
/usr/sbin/crond
echo "1 12 * * * нужная_вам_команда" | /usr/bin/crontab -

это пример использования встроенного крона ....
подробное описание первых 5-ти полей здесь (http://www.codenet.ru/webmast/php/cron.php)

max2007
10-04-2011, 21:18
Огромное спасибо за помощь , но помоему я сам нашёл кое что что мне поможет.
Как токо испытаю отпишусь.

Создал два файла
/opt/etc/avtostart
/opt/etc/avtostop

с таким содержимым
avtostart

#!/bin/sh
sdparm --command=start /dev/discs/discb/part1
sleep 15
/opt/etc/init.d/08samba start

avtostop

#!/bin/sh
/opt/etc/init.d/08samba stop
sleep 15
sdparm --command=stop /dev/discs/discb/part1
Сделал их исполняемыми , при запуске этих файлов из консоли всё отрабатывает нормально (хотелось бы что то добавить в эти файлы чтобы их исполнение отображалось в системном логе ,но не хватает на это мозгов , буду благодарен за подсказку что в них надо дописать)

добавляю в crontab запись

56 22 * * * root sh /opt/etc/avtostart
Если я правильно понял эта запись должна запустить файл avtostart в 22:56 но это почемуто не происходит . Поправте меня что я делаю не правильно ???

tempik
10-04-2011, 21:28
Создал два файла
/opt/etc/avtostart
/opt/etc/avtostop

с таким содержимым
avtostart

#!/bin/sh
sdparm --command=start /dev/discs/discb/part1
sleep 15
/opt/etc/init.d/08samba start

avtostop

#!/bin/sh
/opt/etc/init.d/08samba stop
sleep 15
sdparm --command=stop /dev/discs/discb/part1
Сделал их исполняемыми , при запуске этих файлов из консоли всё отрабатывает нормально (хотелось бы что то добавить в эти файлы чтобы их исполнение отображалось в системном логе ,но не хватает на это мозгов , буду благодарен за подсказку что в них надо дописать)

добавляю в crontab запись

56 22 * * * root sh /opt/etc/avtostart
Если я правильно понял эта запись должна запустить файл avtostart в 22:56 но это почемуто не происходит . Поправте меня что я делаю не правильно ???
Во всех скриптах запускаемых из крона пути должны быть полными ...
sdparm должен быть с путем от "/"
З.Ы. Добавление записи в сислог поиск по "logger"

max2007
10-04-2011, 21:53
Во всех скриптах запускаемых из крона пути должны быть полными ...
sdparm должен быть с путем от "/"
Огромное спасибо за подсказку , всё завелось
Теперь также нужно создать скрипт который бы проверял сколько сейчас времени сравнивал его с диапазоном заданого времени 1:00-16:00 и если реальное время входит в диапазон заданого времени то он бы запускал скрипт avtostop

/opt/etc/avtostop start
а если реальное время не входит в диапазон заданого времени то он бы запускал скрипт avtostart

/opt/etc/avtostart start

Запуск этого скрипта я бы добавил в пост-моун
Это нада например для того если я перегружу роутер или например отключится електричество , то после загрузки роутера в зависимости от того какое время винт с самбой или остановится или запустится.
Спасибо !!!

A1ex
10-04-2011, 22:02
a S08samba умеет стоп делать? Да и размонтировать раздел перед выключением не помешает

killall smbd
killall nmbd
sleep 2
umount -r /dev/discs/discb/part1
sleep 5
sdparm --command=stop /dev/discs/discb

max2007
10-04-2011, 22:14
a S08samba умеет стоп делать? Да и размонтировать раздел перед выключением не помешает
Да самба умеет делать стоп с этим проблем нет
За розмонтирование спасибо ,во токо вопрос как его потом правильно подмонтировать если не трудно подкинте скриптик и для монтирования , а то я ещё не волшебник , просто пытаюсь научится . Спасибо !!!

З.Ы. Добавление записи в сислог поиск по "logger"
В очередной раз спасибо за подсказку
теперь скрипты выглядят так
avtostart

#!/bin/sh
/opt/bin/sdparm --command=start /dev/discs/discb/part1 | logger &
sleep 15
/opt/etc/init.d/08samba start | logger &
avtostop

#!/bin/sh
/opt/etc/init.d/08samba stop | logger &
sleep 15
/opt/bin/sdparm --command=stop /dev/discs/discb/part1 | logger &
и всё теперь прекрастно логируется ;)

A1ex
10-04-2011, 22:26
Если изначально монтировалось по fstab, то

mount /dev/discs/discb/part1

max2007
10-04-2011, 22:40
Я так понемаю , что если в консоли дать команду

umount -r /dev/discs/discb/part1
то HDD должен отмонтироватся. А он чёто не хотит , вот такую ошибку выдаёт :(

umount: can't umount /dev/discs/discb/part1: Invalid argument

A1ex
10-04-2011, 22:53
так уже наверное отмонтировано ... что mount говорит?

max2007
10-04-2011, 22:59
так уже наверное отмонтировано ... что mount говорит?
Вот это говорит

[root@RT-N16 root]$ mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devfs on /dev type tmpfs (rw,noatime)
devpts on /dev/pts type devpts (rw)
tmpfs on /tmp type tmpfs (rw,noatime)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda2 on /opt type ext3 (rw,noatime,data=ordered)
/dev/sda3 on /tmp/mnt/disca_3 type ext3 (rw,noatime,data=ordered)
/dev/sdb1 on /tmp/mnt/discb_1 type ext3 (rw,noatime,data=ordered)
[root@RT-N16 root]$

A1ex
10-04-2011, 23:28
для размонтирования можно указать /dev/sdb1 или /tmp/mnt/discb_1 , а монтировать
mount /dev/sdb1 /tmp/mnt/discb_1 -o rw,noatime

al37919
11-04-2011, 05:13
для того, чтобы размонтировать файловую систему следует закрыть все процессы, которые имеют на ней открытые файлы, что довольно сложно.

Кстати, было другое решение подобной проблемы, а именно автоматическое отключение диска после N минут отсутствия обращений к нему с автоматическим включением когда он потребуется:
http://wl500g.info/showpost.php?p=47135&postcount=10

max2007
11-04-2011, 17:25
Спасибо всем за помощ , вечером после роботы буду дальше розбератся

Написал 2 файлика
/opt/etc/avtostart

#!/bin/sh
# Запуск HDD
/opt/bin/sdparm --command=start /dev/discs/discb/part1 | logger &
sleep 10
# Монтирование HDD
mount /dev/sdb1 /tmp/mnt/discb_1 -o rw,noatime
sleep 5
# Запуск samba
/opt/etc/init.d/08samba start | logger &

/opt/etc/avtostop

#!/bin/sh
# Остановка samba
/opt/etc/init.d/08samba stop | logger &
sleep 15
# Отмонтирование HDD
umount -r /tmp/mnt/discb_1
sleep 5
# Остановка шпинделя HDD
/opt/bin/sdparm --command=stop /dev/discs/discb/part1 | logger &
И для их запуска в нужное мне время добавил в /opt/etc/crontab

00 17 * * * root sh /opt/etc/avtostart
30 01 * * * root sh /opt/etc/avtostop
Всё работает ,всем огромное спасибо за помощь
Также решил протестировать scsi-stop . Установил его
прверел его роботу с моим диском командой

/opt/etc/scsi-stop /dev/discs/discb/disc
Как оказалось scsi-stop не хочет дружить с моим диском , вернул ошибку

/dev/discs/discb/disc is not a SCSI block device
Очень обидно ,так как очень хотелось заюзать скрипт который при простое HDD его автоматом отключает и при обращении к нему его автоматом запускает
Вот собственно сам скрипт

#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=30
BOUNDARY=1200
SCSISTOP=/usr/local/sbin/scsi-stop
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done
Вот тема с описанием (http://wl500g.info/showpost.php?p=47135&postcount=10)
Былобы не плохо если бы ктото из знающих людей подправил скриптик для роботы с sdparm Спасибо !!!!

A1ex
11-04-2011, 22:12
А почему совместили мою тему с этой они не как не подходят друг к другу , эта тема "Как сделать, что бы внешний HDD не останавливался?"
А моя как раз на оборот должна называтся.Как то это не правильно :mad:каламбурчик вышел ;) ... заставляет задуматься, а нужен ли этот скази-стоп, если народ не знает как от него избавиться ;).

/opt/etc/scsi-stop /dev/discs/discb/disc
хм ... /opt/etc странное место для бинарника. И зачем он в опт, если есть
/usr/sbin/scsi-stop .Вот его и надо запускать
/usr/sbin/scsi-stop /dev/sdbа /dev/disks это архаизм со старого ядра, если я чего не путаю.

max2007
11-04-2011, 22:25
каламбурчик вышел ... заставляет задуматься, а нужен ли этот скази-стоп, если народ не знает как от него избавиться .
Ну как говорится у кого что болит

/usr/sbin/scsi-stop .Вот его и надо запускать
Спасибо ,помогло ,токо команда у меня такая

/usr/sbin/scsi-stop /dev/discs/discb/disc
и по такой тоже останавливается

/usr/sbin/scsi-stop /dev/discs/discb/part1
Вот токо назревает вопрос а какой командой стартовать диск ???


а /dev/disks это архаизм со старого ядра, если я чего не путаю
Не знаю почему так

al37919
12-04-2011, 06:23
раскручиваться он должен сам при попытке обращения к диску

A1ex
12-04-2011, 07:21
Вот тема с описанием (http://wl500g.info/showpost.php?p=47135&postcount=10) Это скрипт для старого ядра. Для 2.6 тут http://wl500g.info/showpost.php?p=203696&postcount=173.
#!/bin/sh
if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
/bin/echo 1>&2 "example: $0 sda"
exit 1
fi

#Check every 30 seconds for disk io changes
PERIOD=30
#if no changes are found during 5 minutes -> disk spindown
BOUNDARY=300
SCSISTOP=/usr/sbin/scsi-stop
LOGFILE=/tmp/scsi-$1.log

str=`/bin/grep $1 /proc/diskstats`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep $1 /proc/diskstats`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then
$SCSISTOP /dev/$1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done

max2007
12-04-2011, 16:37
Это скрипт для старого ядра. Для 2.6 тут

Огромнейшее спасибо ,всё завелось и отлично работает ;)

Да вот обнаружилось в системный лог выдаёт вот такую ошибку

program scsi-stop is using a deprecated SCSI ioctl, please convert it to SG_IO
хотя всё вроде работает,может кто подскажет как избавится от этой ошибки .

A1ex
13-04-2011, 13:09
хотя всё вроде работает,может кто подскажет как избавится от этой ошибки .Просить энтузиастов поправить. Тут (http://wl500g.info/showpost.php?p=216522&postcount=5618) уже спрашивали. Могу из томаты бинарник выложить.

al37919
13-04-2011, 19:16
было бы полезнее добавить напоминалку сюда:
http://code.google.com/p/wl500g/issues/list

max2007
13-04-2011, 19:22
было бы полезнее добавить напоминалку сюда:
http://code.google.com/p/wl500g/issues/list
Я бы с радостью , но вот мой английский на очень-очень низком уровне
так что пускай знающие люди отпишутся

MMX2
12-03-2012, 11:28
Кто-нибудь пытался поставить такое на нашу прошивку:
http://www.studenikin.ru/IdleSpindownOnTomato.asp
Скрипт заявлен под Tomato, встанет ли на rt-n16 c прошивкой Энтузиастов без перекомпиляции?
Собственно интерес у меня к нему обусловлен тем, что у меня 3 диска подключены к асусу, из них один используется постоянно, а остальные пару раз в неделю. Вот и задумался об отключение дисков на время простоя.

ryzhov_al
12-03-2012, 11:51
Скрипт заявлен под Tomato, встанет ли на rt-n16 c прошивкой Энтузиастов без перекомпиляции?Зачем нужен томатовский скрипт, когда всё есть под нашу прошивку? Пожалуйста, воспользуйтесь поиском.

MMX2
12-03-2012, 17:45
Кто-нибудь пытался поставить такое на нашу прошивку:
http://www.studenikin.ru/IdleSpindownOnTomato.asp
Скрипт заявлен под Tomato, встанет ли на rt-n16 c прошивкой Энтузиастов без перекомпиляции?
Собственно интерес у меня к нему обусловлен тем, что у меня 3 диска подключены к асусу, из них один используется постоянно, а остальные пару раз в неделю. Вот и задумался об отключение дисков на время простоя.

Спасибо! Работает!Видимо у меня генетическая несовместимость по поиском на нашем форуме - ничего, что мне нужно не могу найти.

dAsro
29-03-2012, 10:18
Работает:
AgeStar SCB3AH1T + WD20EARS

Host scsi1: usb-storage
Vendor: JMicron
Product: JM20336 SATA, USB Combo
Serial Number: DCAA02055098
Protocol: Transparent SCSI
Transport: Bulk

Dext
13-03-2013, 08:09
Имеется внешний жесткий диск 3Q U223 500Gb (внутри Seagate Momentus ST9500325AS) подключенный к Asus RT-N16 с Tomato USB на борту.
Жесткий диск засыпает даже с отключенной опцией остановки HDD при неактивности. Погуглив выяснил, что нужно отключить APM диска, установил hdparm, ввел команду hdparm -B 255 /dev/sda, в ответ получил, что APM отключена. Через некоторое время диск все равно уснул. Посмотрел все параметры hdparm, нашел Set standby (spindown) timeout. Ввел команду hdparm -S 0 /dev/sda, в ответ получил setting standby to 0 (off). Зараза, все равно засыпает. Что ему еще надо? Может контроллер usb to sata дает команду на остановку?
Кто сталкивался, подскажите где копать?

Rucha
14-03-2013, 08:01
Некоторые диски засыпают невзирая ни на какие настройки. Но оно может и к лучшему, как правило, такие диски не расчитаны на 24/7 режим работы.

Dext
15-03-2013, 08:46
Некоторые диски засыпают невзирая ни на какие настройки. Но оно может и к лучшему, как правило, такие диски не расчитаны на 24/7 режим работы.
Честно говоря не представляю, почему жесткий диск не сможет работать в режиме 24/7, при условии, конечно, нормального температурного режима. А вот постоянные остановки и раскрутки шпинделя, парковка головок (а у меня это происходит раз по 30 в день) - это очень плохо.
Пока решил проблему добавлением задания в крон на копирование небольшого файлика каждые 10 минут.

Rucha
15-03-2013, 09:12
Для 24/7 существуют специальные модели и ширпотребные диски в коробках таких не содержат. Старт-стоп, конечно, тоже сокращает срок службы, так что тут скользкий момент и зависит от модели использования - как часто осуществляется доступ к диску.

Чело
12-04-2013, 21:00
Ребята, помогите пожалуйста.

1) DIR-320-3.0.5-r4923M + ЖД + hdparm.
ядро 2.6.22 и команда
hdparm -B ххх /dev/sda
вручную выполняется и работает, но как известно до первого обесточивания.

как сделать чтобы она выполнялась автоматически при каждом монтировании диска?

2) DIR-320-1.9.2.7-d-r3591M + ЖД + hdparm.
ядро 2.4.37 и хотя hdparm успешно установлен фактически не работает потому что не видит диск.
пробовал всячески sdA-Z (1-9) и т.п.

как это победить?

в общем задача: на ядре 2.4.37 автоматом выполнять hdparm -B ххх /dev/sda

я чайник, просидев несколько дней-закипел, и к вам на поклон). надеюсь на помощь. спасибо.

Hohmach
13-04-2013, 05:55
Ребята, помогите пожалуйста.

1)как сделать чтобы она выполнялась автоматически при каждом монтировании диска?
UserScripts (http://code.google.com/p/wl500g/wiki/UserScripts?wl=ru)


2) DIR-320-1.9.2.7-d-r3591M + ЖД + hdparm.
http://oleg.wl500g.info/bin/

Чело
13-04-2013, 08:59
спасибо за ответ, но очень прошу для чайника подробнее разжевать.

1)пробовал текстовым редактором добавить
#!/bin/sh
hdparm -B ххх /dev/sda
в post-mount, но не работает, как именно такая команда должна выглядеть?

2) что именно с этим нужно сделать, чтобы hdparm видел диски и работал с ними?
http://oleg.wl500g.info/bin/

dlukanidin
13-04-2013, 09:17
спасибо за ответ, но очень прошу для чайника подробнее разжевать.

1)пробовал текстовым редактором добавить
#!/bin/sh
hdparm -B ххх /dev/sda
в post-mount, но не работает, как именно такая команда должна выглядеть?

2) что именно с этим нужно сделать, чтобы hdparm видел диски и работал с ними?
http://oleg.wl500g.info/bin/
1. Создаёте папку /tmp/local/sbin
2. Создаёте файл post-mount
3. Меняете у созданного файла атрибут на исполняемый
4. Сохраняете флэш рам
5. Перезагружаетесь

Если hdparam не выводит никаких сообщений в лог, можно добавить соответственно logger

Hohmach
13-04-2013, 19:59
hdparm.mipsel?
а как?

Вопрос не мальчика, но мужа.
cd /tmp/local/
wget http://oleg.wl500g.info/bin/hdparm.mipsel
flashfs save && flashfs commit && flashfs enable

Чело
14-04-2013, 15:57
Так ведь уже установлено во флэш, разве нет?

мне кажется нет, просто скачено туда.
если я ошибаюсь, то как ее использовать?

например при установке
ipkg install hdparm
загружается и устанавливается свежайшая версия проги, которая хоть и успешно устанавливается но не видит диски на старом ядре.

Hohmach
15-04-2013, 08:14
ipkg install hdparm
Это не пакет, это бинарник.

mv /tmp/local/hdparm.mipsel /tmp/local/hdparm
chmod +x /tmp/local/hdparm
flashfs save && flashfs commit

Чело
15-04-2013, 11:16
Hohmach, я очень благодарен вам за помощь!
и хотя я все сделал как вы писали, hdparm не найден:(
вытягивать из вас по строчке уже стыдно, поэтому решил плюнуть на старое ядро.

пожалуйста помогите с первым вопросом:

1) DIR-320-3.0.5-r4923M + ЖД + hdparm.
ядро 2.6.22
команда
hdparm -B ххх /dev/sda
вручную выполняется и работает как требуется, но нужно ее поставить на автоматическое выполнение.

делал это: (спс dlukanidin)
1. Создаёте папку /tmp/local/sbin
2. Создаёте файл post-mount
3. Меняете у созданного файла атрибут на исполняемый
4. Сохраняете флэш рам
5. Перезагружаетесь
нет эффекта:(
это
http://wl500g.info/showthread.php?18096-НАСТРОЙКА-ASUS-WL-500gP-DURAK-EDITIONS&p=128992#post128992
и это
http://vectormm.net/routers/routery-asus/5-nachalnaya-nastrojka-routera.html
не работает.:mad:

пожалуйста, для совсем идиота, напишите полностью как должен выглядеть скрипт и куда его положить чтобы выполнялась одна единственная команда:
hdparm -B ххх /dev/sda

Hohmach
15-04-2013, 11:40
mkdir /usr/local/sbin
echo "#!/bin/sh" > /usr/local/sbin/post-boot
echo "hdparm -B ххх /dev/sda" >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot

Чело
15-04-2013, 20:18
mkdir /usr/local/sbin
echo "#!/bin/sh" > /usr/local/sbin/post-boot
echo "hdparm -B ххх /dev/sda" >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot

выполнил все это - не работает.

сделал все тоже самое с post-mount - не работает.

Factory Default + только hdparm, все повторил - не работает.

вручную в putty - работает.

что не так?:confused:

dlukanidin
15-04-2013, 22:56
выполнил все это - не работает.

сделал все тоже самое с post-mount - не работает.

Factory Default + только hdparm, все повторил - не работает.

вручную в putty - работает.

что не так?:confused:

Скорее всего на момент выполнения post-mount ещё не смонтировался внешний диск
Сделайте чуть по другому - из post-mount или post-boot запустите скрипт который сначала проверяет наличие диска, а потом уже запускает hdparam. Что то типа такого:


post-mount:
#!/bin/sh
hdparamstart &

hdparamstart:
#!/bin/sh
max_time=20
# wait for disk mount to $max_time sec
for i in $(seq $max_time); do
dir=$(ls -d /tmp/mnt/*/*)
[ "$dir" != "" ] && break
sleep 1
done
hdparm -B ххх /dev/sda

Не уверен, что (ls -d /tmp/mnt/*/*) это правильно, писал это для совершенно другой ситуации где было важно наличие на диске определённого каталога, а попробовать сейчас не на чем, в общем это должна быть команда которая выдаёт не пустую строку если диск подключен и пустую в обратном случае.
Возможно (mount | grep sda) ???

don-pedro
16-04-2013, 08:07
Скорее всего на момент выполнения post-mount ещё не смонтировался внешний диск
Может ли такое быть? Ведь "post-mount" - это "после-монтирования" )

dlukanidin
16-04-2013, 17:32
Может ли такое быть? Ведь "post-mount" - это "после-монтирования" )

По идее не может, но мне не приходят на ум другие причины, по которым не выполняется после ребута, а выполняется из putty. Отличие ИМХО скорее всего в таймауте, а это в свою очередь означает, что не закончились некоторые переходные процессы с диском.
Возможно это и не монтирование, а диск просто не готов остановиться сразу после монтирования. Может достаточно и просто sleep 3 вставить например перед запуском hdparam, но это уже - такие костыли из брёвен (если причину не определить, то такой таймаут может зависеть от слишком большого числа факторов и работать только для Вашей конфигурации аппаратуры). Ищите и пробуйте.
P.S. Вот ещё мысль пришла, Диск смонтировался, Вы его останавливаете, а после этого ещё какая то операция с диском производится системой (например какое то отложенное чтение корневого каталога файловой системой, это только предположение), как результат он снова запускается сразу, а Вы этого даже не успеваете увидеть, но команда остановки отменяется.
Может всё таки использовать скрипты с первых страниц этой темы, которые останавливают диск, если в течении некоторого времени не было обращений к нему?

Чело
18-04-2013, 10:25
снится мне сон...

post-boot - слишком рано
post-mount - допустим не корректно отрабатывает, странно но допустим,
но pre-shutdown то железно должен отработать!
проснулся, сделал, не работает.:)

получается диск и монтирование не при чем, это в принципе не рабатает, либо не пашут стартовые скрипты либо команда "кривая".

нет никаких сомнений что вся проблема от "неровности" моих рук и недостатке опыта в деле "линоксо-укрощения", но с другой стороны все делаю под зорким руководством старших опытных товарищей, и вы бы заметили явную лажу.

что еще пробовал:





post-mount:
#!/bin/sh
hdparamstart &

hdparamstart:
#!/bin/sh
max_time=20
# wait for disk mount to $max_time sec
for i in $(seq $max_time); do
dir=$(ls -d /tmp/mnt/*/*)
[ "$dir" != "" ] && break
sleep 1
done
hdparm -B ххх /dev/sda



не помогло,


Может достаточно и просто sleep 3 вставить

пихал слипы куда надо и куда не надо разной продолжительности

не отпустило,


Last edited by Omega; 16-04-2013 at 00:53. Причина: неудивительно, нужно указывать полные пути до файлов ;) а выполняли всё это в vi или в блокноте с его переводами строк? :)

делал исключительно в vi и в putty т.к. по другому просто не умею.
какие пути не полные? что исправить?

пробовал поновей прошивку r5010M,
перекидывал все "хозяйство" на флешку, а ЖД чистый в холостом ходу - прежняя ситуация.
пробовал на лету:
подключаю ЖД и начинаю вручную запускать команду, примерно на 5 секунде она уже проходит и применяется.

вывод: не умею заставить работать стартовые скрипты.

может что-то еще кроме этого


mkdir /usr/local/sbin
echo "#!/bin/sh" > /usr/local/sbin/post-boot
echo "hdparm -B ххх /dev/sda" >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot

нужно чтобы они работали?

уже не знаю какую еще исполнить пляску с ударными инструментами!:confused:

П.С. часто пишут про каретку windows, ее вообще можно увидеть глазами? в vi она видна?

ildar
18-04-2013, 10:55
Чело

Чтобы убедится в отработке post-mount, добавь туда

echo "post-mount started" > /tmp/local/test
После ребута посмотришь появился /tmp/local/test или нет.
Я думаю post-mount при загрузки не отрабатывает.

/usr/local/sbin/pre-boot - исполняется до основной инициализации, в момент, когда ещё не подгружены никакие модули ядра, но уже развёрнут flashfs и скопирован начальный образ для /etc из /usr/etc.
/usr/local/sbin/post-boot - исполняется после того, как устройство закончило загрузку и запустило все сервисы, за исключением связанных с веб-камерой и usb дисками (они запустятся примерно через 10 секунд после этого при "обработке" hot plug событий, когда АСУСовский обработчик до них доберётся)
/usr/local/sbin/post-mount - отрабатывает, когда устройство завершает монтирование usb дисков, с тем чтобы Вы могли запустить свои сервисы, которые эти диски используют
/usr/local/sbin/pre-shutdown - работает перед перезагрузкой системы
/usr/local/sbin/post-firewall - исполняется всякий раз, после того как устройство меняет внутренние правила с помощью команд iptables, с тем, чтобы Вы могли внести свои изменения в firewall
пропиши свой код в post-boot, все должно отработать.

И еще тут

hdparm -B ххх /dev/sda
укажи полный путь до hdparm, например /tmp/local/hdparm (я не знаю где он у тебя находится).

dlukanidin
18-04-2013, 13:23
снится мне сон...
подключаю ЖД и начинаю вручную запускать команду, примерно на 5 секунде она уже проходит и применяется.

1. В Putty ->


mkdir /usr/local/sbin


2. Копируем hdparm в папку /usr/local/sbin

3. В Putty ->


echo "#!/bin/sh" > /usr/local/sbin/post-boot
echo "/usr/local/sbin/stophd &" >> /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/post-boot
echo "#!/bin/sh" > /usr/local/sbin/stophd
echo "sleep 7" >> /usr/local/sbin/stophd
echo "logger \"HD stopped\"" >> /usr/local/sbin/stophd
echo "/usr/local/sbin/hdparm -B ххх /dev/sda" >> /usr/local/sbin/stophd
chmod +x /usr/local/sbin/stophd
flashfs save && flashfs commit && flashfs enable
reboot

Попробуйте так что ли. Посмотрите, приблизительно через 7 сек после перезагрузки роутера, в логе должна появиться соответствующая строка.
Если не появится, то вручную запустите stophd и посмотрите что напишет. Проверьте также параметр XXX должен быть или xxx. Для работы с файлами в роутере удобно использовать программу WINSCP (http://winscp.net/eng/docs/lang:ru).

Чело
21-04-2013, 07:58
Ребята, вы все тут просто волшебники, Оно заработало!
Спасибо за помощь всем.

в общем проверка показала, что post-mount прекрасно работает, а вот команда
hdparm -B ххх /dev/sda,
которая отлично выполняется вручную в Putty там не срабатывает, как и подозревалось с самого начала.:rolleyes:

#!/bin/sh
/opt/sbin/hdparm -B ххх /dev/sda - то что нужно, если hdparm устанавливался ipkg install hdparm.

в итоге: периодическая коррекция параметра АРМ ЖД и контроллер диска сам выполняет всю работу, что является идеальным и изящным решением.

Первый вопрос решен, но пока все не разошлись вернусь ко второму. :D


2) DIR-320-1.9.2.7-d-r3591M + ЖД + hdparm.
ядро 2.4.37 и хотя hdparm успешно установлен, фактически не работает, потому что не видит диск.
пробовал всячески sda-z, (1-9), hda, /dev/scsi/host0/bus0/target0/lun0/disc и т.п.
как это победить?

осилив, наконец, использование более ранней версии hdparm


http://oleg.wl500g.info/bin/

ситуация не изменилась, диски не видит, в лучшем случае неверные аргументы.

может кто помнит, как это побеждалось?