turn on/off hard disks

Giorgos Keramidas keramida at ceid.upatras.gr
Tue Oct 26 12:22:08 EEST 2004


On 2004-10-26 01:41, Alaios <alaios at yahoo.com> wrote:
>Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
>>On 2004-10-25 23:13, Alaios <alaios at yahoo.com> wrote:
>>> Kapoioi skliroi diskoi sto sistima mou den xrisimopoiountai
>>> pote.... ara thelo na tous kleiso..
>>
>> Psakse ligo na deis ti kanei to `hdparm'.
>>
>>> Ti energeis tha prepei na kano prin to kleisimo tous (p.x syncing)
>>> kai meta to anoigma tous??
>>
>> Den ksero an uparxei kapoios tropos na tous 'anoikseis' pali
>> automata, alla ena einai sigouro.  An kanena partition tou diskou
>> den einai mounted, mporeis me to hdparm na ton steileis se poweroff
>> mode oti ora theleis.
>>
>>> Mporo na toys kleino kai teleios kata to boot.. koinos na po ston
>>> pirina oti paizeis mono me ayton ton disko?  An nai pos?
>>
>> E ok, polla thes.  Ena rc-script pou trexei peripou kata to telos tou
>> boot kai kanei akribws oti tha ekanes ki esu me to xeri den einai
>> arketo?  Prepei o pyrhnas na ta kanei ola? :P
>
> Exeis dikio.. Sigoura oxi ola apo ton pirina... alla to arxeio pou
> diaxeirizetai tous diskous einai sto init 1?

Σε single-user mode τρέχουν μόνο τα scripts που έχεις ρυθμίσει εσύ να τρέχουν
σε αυτό το mode.  Για παράδειγμα, στο Slackware, μόνο τα scripts του καταλόγου
`/etc/rc.S' θα τρέξουν πριν ο πυρήνας ξεκινήσει ένα interactive shell στην
κονσόλα του συστήματος.

Θα μπορούσες, θεωρητικά, να βάλεις κάποιο δικό σου shell script σε αυτό τον
κατάλογο (ή στον αντίστοιχο που έχει το δικό σου distribution), αλλά δεν είναι
καλή ιδέα.  Σε αυτό το σημείο, ο πυρήνας δεν έχει κάνει ακόμα mount όλα τα
filesystems και είναι πιο δύσκολο να δεις αν κάποιο partition τελικά θα γίνει
mount κάποια στιγμή.

Καλύτερα στο rc.local σου να βάλεις κάτι σαν:

:   # Ελεγχος για δίσκους που όλα τους τα partitions είναι unmounted.
:   # Πριν τρέξει αυτό το μέρος του script θα πρέπει να έχουν τελειώσει
:   # οι boot διαδικασίες που κάνουν mount δίσκους.
:
:   TMPDIR=${TMPDIR:-/tmp}
:   _tmpfile=$( mktemp "${TMPDIR}/mtab-XXXXXX.tmp" )
:   _unused_disks=""
:   _disks=$( dmesg | grep '^hd[a-z]' | grep attached | cut -d: -f1 )
:   for _d in ${_disks} ; do
:	_partitions=$( fdisk -l /dev/${_disk} | \
:	    grep '^/dev' | awk '{print $1}' )
:	_plist=""
:	for _part in ${_partitions} ; do
:	    grep -q "${part}" "${_tmpfile}" && \
:	    _plist="${_plist} ${_part}"
:	done
:	# Αν κανένα από τα partitions του _disk δεν είναι mounted to _plist
:	# θα πρέπει να είναι ακόμη ένα κενό string.
:	if [ ! X"${_plist}" = X"" ]; then
:	    _unused_disks="${_unused_disks} ${_disk}"
:	fi
:   done
:   /bin/rm -f "${_tmpfile}"
:
:   #
:   # Κλείσιμο όλων των δίσκων που δε χρησιμοποιούνται.
:   #
:
:   echo "Turning off unused disks:"
:   rc=0
:   for _disk in ${_unused_disks} ; do
:	hdparm -Y "/dev/${_disk}" >/dev/null 2>&1
:	if [ $? -ne 0 ]; then
:	    echo ""
:	    echo "ERROR: SOME DISKS MIGHT STILL BE TURNED ON." >&2
:	    break
:	fi
:	echo -n " ${_disk}"
:   done
:   echo ""




More information about the Linux-greek-users mailing list