Page 6 of 15 FirstFirst ... 45678 ... LastLast
Results 76 to 90 of 212

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

  1. #76
    Join Date
    Apr 2008
    Location
    Географический центр Европы
    Posts
    263
    Quote Originally Posted by Aeron.Dae View Post
    Собственно сабж.
    Asus WL-500gP V2, Seagate FreeAgent, прошивка 10-ая от Олега.
    Кто знает, как это сделать без лишней возни с ipkg и сторонними пакетами? Не хочется ставить cron и каждые 5 минут touch'ить диск.
    Не интересовался ещё этими вопросами, но в будующем - придётся столкнуться. Думаю смотреть в сторону hdparm.
    С уважением, Евгений.
    [ASUS WL500g Premium (v1) 1.9.2.7-10] + [512MB USBFlash] + [8GB USBFlash] + [USB BlueTooth DBT-122] + [USB->RS232]

  2. #77
    Quote Originally Posted by DemonGloom View Post
    Вроде как программа, идущая в комплекте с винтом позволяет это делать...
    Вот уж спасибо =) Я привык, что на дисках шлак всякий лежит, а тут Power Settings, то-то он каждые 15 минут стопорился.
    Еще раз спасиб.

  3. #78

    Question .

    -- Deleted -- Акелла опоздал с рекомендациями...

  4. #79

    Энергосбережение ЖМД

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

  5. #80
    Quote Originally Posted by Alaric View Post
    Привет всем!
    Собственно вопрос в следующем:
    Имеется wl-500w с подключнным к нему хардом Seagate FreeAgent Pro 1Tb. Прошивка Олеговская, 10. Жесткий разбит на 2 раздела, оба в ext3.
    Так вот, теоретически сиагейт в простое через n мин диск паркует, и под когда он подключен к компу все так и есть. А вот при подключении к роутеру жужжит сутки напролет и греется
    Видимо роутер зачем-то его дергает...
    Кто что посоветует?
    P.S. swap'а на него я не ставил, прог тоже... Только самба.
    Вот здесь все прекрасно описано: http://wl500g.info/showpost.php?p=47135&postcount=10

  6. #81

    Question .

    Quote Originally Posted by Alaric View Post
    Привет всем!
    Собственно вопрос в следующем:
    Имеется wl-500w с подключнным к нему хардом Seagate FreeAgent Pro 1Tb. Прошивка Олеговская, 10. Жесткий разбит на 2 раздела, оба в ext3.
    Так вот, теоретически сиагейт в простое через n мин диск паркует, и под когда он подключен к компу все так и есть. А вот при подключении к роутеру жужжит сутки напролет и греется
    Видимо роутер зачем-то его дергает...
    Кто что посоветует?
    P.S. swap'а на него я не ставил, прог тоже... Только самба.
    Как я вас понимаю . В итоге купил себе WD Passport на 250 гигов и распял пермычку под питание, чтобы диск головками не щелкал, все теперь работает без проблем много месяцев.

  7. #82
    Vollsky
    Спасибо большое, буду пытаться)))
    PupsDRVR
    Мне, к сожалению, 250 не хватит Так что диск - по-любому 3,5"

  8. #83
    Quote Originally Posted by Alaric View Post
    PupsDRVR
    Мне, к сожалению, 250 не хватит Так что диск - по-любому 3,5"
    Есть ещё такой же паспорт на 400 гигов. А с тем диском вы тишины не получите, это по определению. Что касается режима энергосбережения, то Seagate FreeAgent поддерживает это на апаратном уровне, под него есть родная утилита, была изначально на диске записана, если хлопнули её, то с сайта скачайте, которая позволяет выставить время остановки при бездействии. Так что по предыдущей ссылке не стоит даже заморачиваться, все гораздо проще.

  9. #84
    PupsDRVR
    На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется
    По ссылке я сделал, жесткий выключается, но обратно уже не включается
    Соответственно буду мозговать дальше)))
    П.С. что куплено - то куплено, дороги назад уж нет...



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

    Code:
    #!/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
    Так как я в этом деле мягко говоря не очень, может кто-нибудь сказать - поправка верная?
    Last edited by Alaric; 26-09-2008 at 15:10.

  10. #85
    Quote Originally Posted by Alaric View Post
    PupsDRVR
    На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется
    По ссылке я сделал, жесткий выключается, но обратно уже не включается
    Соответственно буду мозговать дальше)))
    П.С. что куплено - то куплено, дороги назад уж нет...



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

    Code:
    #!/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
    Так как я в этом деле мягко говоря не очень, может кто-нибудь сказать - поправка верная?
    Вы по моим стопам идете, я все это уже проходил (начиная с этого поста почитайте ) . Если найдете решение, дайте знать.

  11. #86
    Quote Originally Posted by Alaric View Post
    PupsDRVR

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

    Code:
    #!/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.

  12. #87
    Quote Originally Posted by Alaric View Post
    PupsDRVR
    На счет утилиты я знаю, и в ней то все настроено, и даже при работе с компом режим энергосбережения активируется
    По ссылке я сделал, жесткий выключается, но обратно уже не включается
    Соответственно буду мозговать дальше)))
    П.С. что куплено - то куплено, дороги назад уж нет...
    Как вариант: из Web можно разбудить все диски кодом
    PHP Code:
    <?php
                    exec
    ("fdisk -l",$data);
                    for (
    $i=0$icount($data);$i++) :
                    print 
    "$data[$i]<br>";
                    endfor;
    ?>

  13. #88
    Vollsky
    Хм... Спасибо за советы, буду пробовать)
    PupsDRVR
    Выход должен быть... его не может не быть...
    Asus WL-500W 1.9.2.7-10 + Seagate FreeAgent PRO 1Tb

  14. #89

    Post Итак...

    Свою проблему я решил процентов так на 70...
    1) Помимо жесткого диска воткнул в роутер флешку на 128 Мб
    2) Подключил ее в /opt
    3) Установил ipkg
    4) Установил scsi-idle (он уже есть скомпилированный, в списке пакетов)
    5) Основываясь на этом материале, запустил такой вот скриптик:
    Code:
    #!/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. Чуть подправил скрипт...
    Last edited by Alaric; 05-10-2008 at 21:21.
    Asus WL-500W 1.9.2.7-10 + Seagate FreeAgent PRO 1Tb

  15. #90
    Join Date
    Aug 2007
    Location
    Moscow, Russia
    Posts
    976
    Quote Originally Posted by Alaric View Post
    Далее допустим, захожу в шару самбы, отображается структура диска из кеша. Чтобы диск запустился, требуется 1-2 раза нажать "обновить"...
    Не густо, но и то хлеб... (без команды scsi-start вообще никак не запускается)
    Буду думать дальше)))
    Чего-то Вы усложняете. Я взял вариант scsi-stop Олега. Скрипт - на базе этого. Глушится через сколько мне надо, раскручивается при первом обращении безо всяких scsi-start.

Page 6 of 15 FirstFirst ... 45678 ... LastLast

Similar Threads

  1. Подключение внешнего жесткого диска WD MyBook 3TiB (LBD)
    By Ilmarranen in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 40
    Last Post: 22-06-2014, 09:36
  2. выбор внешнего Hdd
    By TIk in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 104
    Last Post: 15-03-2009, 20:42

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •