Poweroff dei dischi in fase di spegnimento

Da LugMan TNG.

Quanto riportato valle sicuramente per SlackWare 10.2 sulla quale è stato rilevato il problema esposto in seguito, ma vale a priori anche per altre distribuzioni tra cui Ubuntu 7 o superiore.

Questa pagina è tuttora in sviluppo in quanto attualmente la SlackWare è alla versione 12.1 e occorre verificare se il problema persiste (se di problema si può parlare).

Problema

Supponendo di collegare un disco usb si nota che quando il sistema viene spento le partizioni vengono smontate, ma non i dischi (non di root) non vengono spenti. Per sopperire a questo, si supponga di avere a titolo di esempio un computer con disco IDE (/dev/hda) sul quale risiede la partizione di root. Si supponga di avere anche un disco USB esterno (magnetio) con più partizioni e di averlo collegato, ed eventualmente montato alcune delle sue partizioni.

Soluzione

La soluzione proposta è di editare il file /etc/rc.d/rc.0 (che dovrebbe essere un un link a /dev/rc.d/rc.6) nelle sue ultime righe. Aprendolo, si nota che in fondo al file vi sono le istruzioni seguenti:

if [ "$command" = "reboot" ]; then
  echo "Rebooting."
  reboot
else
  poweroff
fi

Quindi aggiungere nella sezione di poweroff:

if [ "$command" = "reboot" ]; then
  echo "Rebooting."
  reboot
else
  sync                #questo per precauzione
  umount /dev/sd*     #smonto tutte le partizioni, anche se dovrebbero essere già smontate
  echo "Unmounting and Ejecting SCSI disk..."
  for i in /dev/sd?   #seleziono tutti i dischi SCSI
  do
    eject $i
  done   
  poweroff
fi

Chiaramente questo è solo un consiglio in relazione ad una specifica configurazione del sistema. E' comunque possibile scrivere qualche cosa di più robusto.