Re: Festplatte auf Existenz testen

Autor: Markus Hochholdinger <Markus_at_hochholdinger.net>
Datum: Wed, 2 May 2012 22:59:44 +0200
Hallo Werner,

Am 02.05.2012 um 22:49 Uhr schrieb Werner Holtfreter <Holtfreter_at_gmx.de>:
> Am Mittwoch, den 02.05.2012, 21:46 +0200 schrieb Markus Hochholdinger:
> > Am 27.04.2012 um 13:59 Uhr schrieb Werner Holtfreter <Holtfreter_at_gmx.de>:
[..]
> Eine interne Festplatte soll auf eine SATA-Festplatten im trägerlosen
> Rahmen kopiert werden, *WENN* sie im Rechner steckt. Die Ziel-Festplatte
> kann wechseln, nur der SATA-Anschluss bleibt immer der gleiche.

also kann man davon ausgehen, dass udev funktioniert, wenn der Link 
/dev/disk/by-path/.. da ist.


> Nach meiner Kenntnis wird /dev/sdX dynamisch vergeben und kann sich
> durch Wettlaufeffekte beim Booten ändern. Ganz sicher ändert sie sich,
> wenn die Zahl der eingebauten Festplatten variiert, was hier ständig
> vorkommt. Die einzig zuverlässige Art der Adressierung schien mir daher
> by-path zu sein.

Ja, sdX kann sich ändern, /dev/disk/by-path/.. wird aber der symbolische Link 
zum jeweilgen sdX-Device sein!


> Naheliegender Weise könnte ich einfach ein paar Bytes von der Festplatte
> lesen und mit der Fehlerbehandlung verzweigen. Ich frage nur, ob es
> einen einfachen, besseren Weg gibt. Im Idealfall wird dabei auch eine
> vorhandene defekte Platte als vorhanden erkannt, um nicht vorhanden und
> defekt unterscheiden zu können.

Es wäre jedenfalls der sicherere Ansatz, da Du damit mehrer Fehlerfälle 
abdeckst.


> Hier das bisher genutzte Script. Interessant vielleicht, das man auch cp
> statt dd nehmen kann!

Ein
  test -e "$ziel"
sollte Dir anzeigen, ob die Festplatte vom System erkannt wurde. Also z.B. mit

if [ -e "$ziel" ]
then
  dobackup
else
  echo "Festplatte $ziel nicht angeschlossen."
  exit 1
fi


> #! /bin/sh -e
> 
> quelle="/dev/disk/by-path/pci-0000:00:09.0-scsi-2:0:0:0"
>   ziel="/dev/disk/by-path/pci-0000:00:09.0-scsi-3:0:0:0"
> 
> /sbin/hdparm -S 60 $ziel
> # in 5-s-Einheiten, 5 * 120 = 600 s = 10 min
> # in 5-s-Einheiten, 5 *  60 = 300 s =  5 min
> echo "dauert 126 min"
> echo $(date -I;date +%T)" Festplatten werden jetzt kopiert"
> nice -n 19 ionice -c 3 cp $quelle $ziel
> echo $(date -I;date +%T)" Festplatten werden jetzt verglichen"
> nice -n 19 ionice -c 3 diff -s $quelle $ziel
> /sbin/hdparm -y $ziel
> sleep 25
> aplay /usr/share/sounds/speech-dispatcher/test.wav 2> /dev/null
> echo $(date -I;date +%T)" Wechsellaufwerk wurden angehalten, FERTIG"

-- 
Gruß
                                                          \|/
       eMHa                                              (o o)
------------------------------------------------------oOO--U--OOo--
 Markus Hochholdinger
 e-mail  mailto:Markus_at_Hochholdinger.net             .oooO
 www     http://www.hochholdinger.net                (   )   Oooo.
------------------------------------------------------\ (----(   )-
Ich will die Welt verändern,                           \_)    ) /
aber Gott gibt mir den Quelltext nicht!                      (_/


-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 02.05.2012

Dieses Archiv wurde generiert von hypermail 2.2.0 : 02.05.2012 CEST