Linux'ta harici sabit sürücünün devrilmeye zorlanması (ahududu pi)


16

Şu anda harici bir sabit disk usb ile bağlı bir Raspberry Pi kullanarak bir ev sunucusu kuruyorum. Ancak, sabit diskim boştayken asla dönmeyecektir.

Zaten sağlanan ipuçları çalıştı raspberrypi.org olmadan herhangi bir başarı ....

1.)

sudo hdparm -S5 /dev/sda

İadeler

/dev/sda:
 setting standby to 5 (25 seconds)
SG_IO: bad/missing sense data, sb[]:  70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2.)

sudo hdparm -y /dev/sda

İadeler

/dev/sda:
 issuing standby command
SG_IO: bad/missing sense data, sb[]:  70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

... ve 3.)

sudo sdparm --flexible --command=stop /dev/sda

İadeler

/dev/sda: HDD         1234

... sürücünün devrilmesi olmadan.

Aşağıdaki donanımı kullanıyorum:

  • Inateck FDU3C-2 çift Bağlantı Noktalı USB 3.0 HDD bağlantı istasyonu
  • Western Digital WD10EZRX Yeşil 1 TB

Gönderilen aşağı çekme sinyallerinin üzerine yazılan / kaybolan / yok sayılan bir yer olabilir mi?


1
Güncelleme: Menioned Inateck yerleştirme istasyonu, sabit diskleri klonlamak ve HDD'ler için bir ana / kaynak ve bir bağımlı / lavabo bağlantı noktası sağlamak üzere bir işleve sahiptir. HDD'yi bağımlı bağlantı noktasına takarken, yukarıda belirtilen komutlar egzersiz. Bu, ana bağlantı noktasında aşağı inme sorununu sınırlar.
user258346

1
Bunun bir çözüm olduğunu düşünüyorsanız, kendi çözümünüzü kabul etmelisiniz. Corny görünse de, aynı sorunu olan gelecekteki okuyucular için yararlıdır.
MariusMatutiae

1
Elbette senaryonuzda kullandığınız komutun belirttiğinizle aynı olmadığını fark ediyorsunuz, değil mi? hdparm -y / dev / sda ...
MariusMatutiae

Yanıtlar:


4

HD-boşta şansım olmadı; koştu ama çalışmadı. Aşağıdaki senaryoyu yazdım:

#!/bin/bash
# This script looks for recent disk access, and if nothing has changed, puts /dev/"drive" into spindown mode.
# This should be used only is the hdparm power management function is not working.
# Call this script with cron or manually as desired
#
#
#
# Change which drive this script looks at by changing the drive variable below:
drive="sda"
#
#
current=`date`
caller=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
filename="/tmp/diskaccess.txt"
if [ -f "$filename" ]; then
    stat_old=`cat "$filename" | tr -dc "[:digit:]"`
    stat_new=`cat /sys/block/"$drive"/stat | tr -dc "[:digit:]"`
    if [ "$stat_old" == "$stat_new" ]; then
        stat="0"
        echo "The disk hasn't been used; spinning down /dev/$drive"
        echo $stat_old
        hdparm -y /dev/$drive > /dev/null
    else
        stat="1"
        echo $stat_old
        echo $stat_new
        echo "The drive has been used..."
        echo $stat_new > $filename
    fi
else
    echo "/tmp/diskaccess.txt file does not exist; creating it now."
    echo $stat_new > $filename
fi
echo $stat " - " $drive " - " $current " - by: " $caller >> /tmp/diskaccesslog.txt

4
hdparm -yİşe yaramadığını düşündüm .
Cristian Ciupitu

Teşekkürler, mükemmel çalışıyor. WD blue sabit diskim kullanılmadığında şimdi dönüyor. Sizce cron'un senaryoyu çağırması için makul bir aralık nedir? Şimdilik her 15 dakikada bir diyorum.
Tarator

5

Evet, mümkündür ancak önemsiz değil, bazı özel geliştirme çalışmaları gerektirecektir ve kod, kasanızın İÇİNDEKİ USB-> SATA köprü yongasına özgü olacaktır.

Anlaşma, USB köprüsünün bir elektrikli dönüştürücüden daha fazlası olarak hizmet vermesidir. USB'ye bağlı bir HDD, farklı bir komut setine sahip bir SCSI sürücüye öykünür. Standart okuma / yazma / arama komutları her zaman çeviri yaparken daha egzotik döndürme / küçültme yapmaz. Çoğu çip bunu yapmaz. Ayrıca, evrensel bir çip seviyesi API'sı DEĞİLDİR. Bu yüzden kodu yazsaydım, USB köprü çipi için bir programlama kılavuzuna sahip olmalıydım.

Alt satırda, çip üzerinde programlama özellikleri yoksa ve ATA ve SCSI komut seti ve geçiş komutlarını kapsülleme bilmiyorsanız, o zaman onsuz yapmanız gerekir. Çok fazla iş ve standart yok.


5

Gönderdiğiniz sinyallerin ihmal edilmesi tamamen mümkündür. Çıktısını vermediniz

sudo hdparm -I /dev/sdX

bu bize disk yeteneklerini söylerdi, ancak birçok disk bu komutlara yanıt vermez.

Neyse ki, buradan indirebileceğiniz çok uygun bir yardımcı program, hd-rölanti var, belirli bir süre geçtikten sonra bir disk dönüşünü zorlamanıza izin veriyor. Program özellikle Debian için geliştirilmiştir, ancak genel olarak Linux üzerinde çalışır, böylece kurulumu sizin için çok kolay olmalıdır. Umarım bir ARM mimarisi üzerinde de çalışır, test edemediğim bir şey.

Düzenleme: Raspbian'a doğru bir şekilde derlenir ve kurulur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.