[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: { DriveReady SeekComplete Error } (quelques précisions) [LONG] [encore plus long]





Yves Dessertine wrote:

Je viens de compiler le 2.4.11, j'en ai profité pour relire les
«Help»'s : CONFIG_IDEDISK_MULTI_MODE

Essaie plutôt de faire un kernel 2.4.12, le patch 2.4.11 est marqué
"don't use" !!! Le problème vient peut-être de là !!!


Chez moi, c'est un kernel 2.4.10 (j'utilise toujours les kernel-source de la sid). Peut-on télécharger manuellement un autre kernel et le compiler "à la

debian" ?


Bien sur, c'est ce que je fais tout le temps pour tester les -preX de Linus ou les -acX d'Alan Cox. Il me semble que le package de source du noyau ne fait que les installer au bon endroit ...



[snip]


Le problème ne survient donc pas LORS de la désactivation du swap, mais entre celle-ci et le démontage. Examun rapide de /etc/init.d/umountfs (forme abrégée) :

#####################################################
echo -n "Deactivating swap... "
swapoff -a
echo "done."

#	Turn off write caching on all IDE devices. Systems that
#	do poweroff-on-halt might otherwise still be writing
#	stuff to disk when the power is yanked - oops.
#	The package 'hdparm' needs to be installed for this to
#	work, unfortunately there's no /proc interface for it yet.
#
if [ -x /sbin/hdparm ] && [ -d /proc/ide ]
then
	sync
	cd /proc/ide
	for i in hd*
	do
		[ -b /dev/$i ] && hdparm -W0 /dev/$i >/dev/null 2>&1
	done
fi

echo -n "Unmounting local filesystems... "
umount $FORCE -a -r
echo "done."

mount -n -o remount,ro /
#####################################################

Et pourtant, lorsque je fais un
# hdparm -W0 /dev/hdXX
en root, je n'obtiens aucun message d'erreur dans les logs...


Je suis preneur pour toute aide ...


Je pense que c'est un pb spécifiquement avec les CD-ROMS (ou DVD dans mon cas). D'ailleurs quand j'essaie d'exécuter la commande :

# hdparm -W0 /dev/hdb

j'obtiens le résultat suivant :

/dev/hdb:
 setting drive write-caching to 0 (off)
hdb: status=0x51 { DriveReady SeekComplete Error }
hdb: drive_cmd: erreir=0x04
 HDIO_DRIVE_CMD(setcache) failed: Input/ouput error

En fait, il essaie de désactiver le cache en écriture sur un lecteur de CD-ROM ! Et il échoue bien sur ... Il faudrait donc que le script vérifie que le périphérique est bien en RW avant de faire le hdparm ...

Donc, je propose un petit patch :

fred@ares:~$ diff -u /etc/init.d/umountfs*
--- /etc/init.d/umountfs	Fri Oct  5 14:53:38 2001
+++ /etc/init.d/umountfs.new	Sat Oct 13 14:16:44 2001
@@ -31,7 +31,10 @@
 	cd /proc/ide
 	for i in hd*
 	do
+ if [ `cat /proc/ide/$i/media` = disk ] + then
 		[ -b /dev/$i ] && hdparm -W0 /dev/$i >/dev/null 2>&1
+ fi
 	done
 fi

A priori, ça marche bien chez moi (®). Si ça règle les pbs, je le soumettrai au responsable chez Debian. Il ne me semble pas y avoir de bug relatif à ce problème sur le BTS pour ce package (sysvinit) et cette fonctionnalité a été introduite dans la dernière version (2.83-1) :

  * Turn off write-caching on all IDE disks prior to unmounting
    filesystems. On some systems that poweroff on halt the system
    powers off before the IDE disk write cache is flushed. You do
    need to have hdparm installed to get this to work.


Fred



Reply to: