Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Input/output error

46 réponses
Avatar
Thomas
bonjour :-)


il y a qqes fichiers (simples fichiers textes) que je n'arrive pas à
ouvrir avec des logiciels

alors j'ai fait
cat fichier
pour voir,

et ça affiche le début du fichier, ça s'arrête avant la fin, et
cat: fichier: Input/output error
:-(

qu'est ce qu'il se passe ?
j'ai fait marcher l'utilitaire de disques avec sos disque, je pense
qu'il fait tourner fsck en dessous, et pour lui tout va bien

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/

10 réponses

1 2 3 4 5
Avatar
Pascal Hambourg
Thomas a écrit :
Pascal Hambourg wrote:

Thomas a écrit :
ça scannera tout le disque au lieu de juste la partition, donc c'est
encore mieux ?


Oui, mais c'est plus long.



si la partition prend presque tout le disque, c'est pas bcp plus long,



Certes. :-)

et s'il s'agit de vérifier l'état physique du disque, autant le faire en
entier, non ?



Oui, bien sûr.

On ne peut pas formater bas niveau un disque ATA.



ATA séries c'est SATA ? et c'est pareil ?



SATA = ATA avec transport série, par opposition avec l'ATA "classique" à
transport parallèle.

(à propos, c'est connu que SATA c'est plus lent que ATA ?)



Pas à ma connaissance. L'interface série permet un débit supérieur à
l'interface parallèle.

"formater bas niveau" : en quoi ça consiste, et sur quel type de disque
on le fait ?



Ça consiste à "créer" les pistes et les secteurs sur la surface
magnétique. C'est ce que fait fdformat avec une disquette.

On peut juste écrire partout dessus



dd if=/dev/null of=/dev/disk0 bs48576
?



Non, if=/dev/zero qui est une source infinie de zéros. /dev/null est un
trou noir sans fond dont rien ne sort, on ne peut l'utiliser comme source.

en espérant soit "remettre en forme" les secteurs défectueux,



qu'appelles tu "remettre en forme" ?
parce que s'il y a un pb physique, je ne vois pas comment il peut être
résolu par logiciel ...



L'écriture remagnétise les bits de données sur la surface et peut donc
corriger une erreur de lecture qui était due à des bits de donnée dont
la magnétisation était trop faible ou incorrecte.

soit les faire réallouer par le contrôleur intégré.



ah oui c'est ça, c'est pas le fs, c'est le contrôleur intégré

pourquoi il faut écrire pour que le contrôleur intégré fasse son boulot,
et que lire ne suffit pas ?



Par sécurité. Une erreur de lecture peut n'être que transitoire et les
données d'un secteur réalloué sont perdues, donc le contrôleur ne
réalloue pas automatiquement un secteur illisible. Il se contente de le
marquer "pending" (on peut le voir avec SMART). Un secteur marqué
"pending" pourra être réalloué si une lecture ultérieure réussit (et les
données lues avec succès sont recopiées au nouvel emplacement) ou bien
si on écrit dedans (car les anciennes données n'ont alors plus
d'importance).

si on se place du point de vue du système,
le contrôleur intégré, c'est du matériel ?



Oui.

du coup, si on a un disque en très mauvais état, mais que le contrôleur
intégré a fait son boulot partout,
en lisant /dev/disk0 on ne verra aucun problème ?



Pas en trop mauvais état alors. La capacité de correction et de
réparation du contrôleur intégré a ses limites. Et notamment le stock de
secteurs de réserve est limité (visible avec SMART aussi).

Modèle : ST9100824AS
ST pour segate ?



Oui. <insérer ici votre moteur de recherche préféré> est ton ami.

a priori j'ai qu'à me retourner vers mon fournisseur qui me dira quoi,
mais bon mon fournisseur c'est la fnac (et puis même),
donc je préfère savoir si ça sert à rien d'y retourner tout de suite, et
le pb c'est que j'ai pas de relation avec le constructeur, je sais même
pas qui c'est



Seagate, d'après le modèle. Mais il arrive que pour certains disques
intégrés en OEM dans les ordinateurs la garantie soit prise en charge
par le fabricant de l'ordinateur et pas du disque. Tu peux le vérifier
sur le site de Seagate avec le numéro de série du disque.

(c'est quoi un code RMA ?)



Un code donné par le fabricant autorisant le retour en garantie.
Cf. <http://fr.wikipedia.org/wiki/Return_Material_Authorization>

ou alors, est ce que ça veut juste dire qu'il y a 1 bloc défectueux, le
fs va faire en sorte de ne plus l'utiliser



Le système de fichiers ne fait pas forcément ça automatiquement. Par
exemple sous GNU/Linux avec ext2 il faut exécuter fsck avec l'option -c
(qui utilise badblocks en sous-main).



chez moi cette option fait autre chose



Je suppose que le fsck de ton OS a quand même une option équivalente.
Avatar
Pascal Hambourg
Thomas a écrit :

ah bon, alors sous linux c'est comme tu dis ?



Oui, on peut faire une lecture brute sur une partition montée. Je n'ai
pas testé en écriture parce que c'est un peu destructif.

comment font-elles le fsck de la racine au démarrage ?


je crois qu'il est fait juste avant le montage, précisément :-)


Comment font-elles ? Pas avec le fsck qui est sur la racine en tout cas.



et comment marche le mode "single user" ?
(sur mac c'est en appuyant sur pomme-s au démarrage, je suppose qu'il y
a l'équivalent sous linux)



Cf. la réponse de Paul : seul le montage en lecture/écriture bloque la
ressource.

ah, c'est possible de mettre le fs directement sur le disque, sans
partition ?



Oui, bien sûr. Un disque entier est un périphérique de type bloc au même
titre qu'une partition, une disquette, un volume RAID logiciel [1] ou un
volume logique LVM, qui ne sont pas partitionnés.

[1] Bien qu'il existe aussi des volumes RAID logiciel partitionnés.
Avatar
Pascal Hambourg
Stephane CHAZELAS a écrit :

Laissez tomber, c'est la fatigue... Je crois que ce que j'ai
voulu essayer de dire, c'est qu'il ne fallait surtout pas
oublier "sync", si on utilisait "noerror". Attention avec sync,
si on utilise des pipes toutefois.



Qu'est-ce qui peut se passer avec des pipes ?
Avatar
Emmanuel Florac
Le Sat, 23 Jan 2010 19:23:02 +0100, Thomas a écrit:


mais c'est bizarre, ça ne va qu'à 13 Mo/s, alors que j'ai souvenir que
quand je fais des copies de gros fichiers d'un disque à l'autre, il me
semble que ça va assez facilement jusqu'à 20 Mo/s



Oui c'est pas terrible, un disque moderne frôle les 100Mo/s soutenus en
lecture.

--
Not only is there no god, but try getting a plumber on weekends.
Woody Allen
Avatar
Stephane CHAZELAS
2010-01-24, 15:59(+01), Pascal Hambourg:
Stephane CHAZELAS a écrit :

Laissez tomber, c'est la fatigue... Je crois que ce que j'ai
voulu essayer de dire, c'est qu'il ne fallait surtout pas
oublier "sync", si on utilisait "noerror". Attention avec sync,
si on utilise des pipes toutefois.



Qu'est-ce qui peut se passer avec des pipes ?



Disons que des qu'on utilise dd avec des pipes, il faut faire
tres attention. Pas seulement avec les pipes, d'ailleurs, le
probleme se posera avec des sockets meme si c'est moins courant.

Le probleme avec les pipes, est qu'un read(2) d'un certain
nombre de bytes n'est pas garanti de retourner ce meme nombre de
bytes, ca dependra de ce qui se trouve dans le pipe a ce moment
la. Pareil pour l'ecriture, un pipe ne sera pas forcement pret a
recevoir autant de bytes que requis (et ne bloquera pas
forcement si la quantité requise est superieure a PIPEBUF).

C'est a prendre en compte quand on fait:

... | dd ... | ...

C'est une bonne idee de limite la taille des blocs de sortie,
pour eviter les write(2)s partiels (genre 4k, c'est bien, 512
bytes c'est garanti meme sur les tres vieux systemes).

Ensuite, si on utilise conv=sync ou bs=, dd va faire un write()
pour chaque read() meme si les read() sont incomplets.

Par exemple:

(echo; sleep 1; echo) | dd

va faire 2 reads et 1 write

(echo; sleep 1; echo) | dd bsQ2

va faire 2 reads et 2 writes. Ca peut etre un probleme quand on
ecrit sur un block device qui n'aime pas des writes qui ne sont
pas multiples de 512 par exemple (enfin l'exemple ci-dessus est
pour 2 bytes, mais imagine plus).

Le probleme est que ce n'est pas deterministique, ca depend de
ce qui passe par le pipe et de l'ordre des read et des write sur
ce pipe.

Si ce qui ecrit dans le pipe utilise stdio sans faire de
fflush(3), on peut avoir de la chance si on utilise une taille
de block de 512 car stdio ecrit des blocks de typiquement 4 ou
8k selon le systeme (enfin un multiple de 512)

Mais dans le doute on peut inserer un ... | dd | dd ...

pour avoir un pipe qui ne recoit que des writes de 512

--
Stéphane
Avatar
Thomas
In article
,
Thomas wrote:

In article <hjfl7j$1khe$,
Pascal Hambourg wrote:

> Thomas a écrit :
>
> > sudo dd if=/dev/disk0 of=/dev/null bs48576
> > dd: /dev/disk0: Input/output error
> > 77579+0 records in
> > 77579+0 records out
> > 81347477504 bytes transferred in 5809.144533 secs (14003349 bytes/sec)
> >
> > il indique toutes les erreurs, ou il s'arrête à la 1ere, comme cat ?
>
> Le dd de GNU a besoin de l'option conv=noerror pour continuer après une
> erreur de lecture.

merci bcp :-)
en lisant man dd j'ai vu qu'il y a aussi une option permettant de ne pas
recommencer depuis le début :-)



pour info :


+ su moi -c 'sudo dd if=/dev/disk0 of=/dev/null bs48576 skipw570'
Password:
Password:
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 24.083219 secs (391857 bytes/sec)

+ su moi -c 'sudo dd if=/dev/disk0 of=/dev/null bs48576 conv=noerror
skipw570'
Password:
Password:
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 24.074845 secs (391994 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 48.025872 secs (196502 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 71.744312 secs (131539 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 95.673300 secs (98640 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 119.402769 secs (79037 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 143.442782 secs (65791 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 167.172216 secs (56452 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
9+0 records in
9+0 records out
9437184 bytes transferred in 191.090214 secs (49386 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 221.162427 secs (445673 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 245.002623 secs (402306 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 268.565940 secs (367009 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 291.441401 secs (338202 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 313.818137 secs (314087 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 337.070721 secs (292420 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 359.791144 secs (273954 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 382.522719 secs (257674 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
94+0 records in
94+0 records out
98566144 bytes transferred in 404.821708 secs (243480 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 486.522125 secs (1713422 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 499.063274 secs (1670365 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 523.369282 secs (1592791 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 535.666456 secs (1556226 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 561.003996 secs (1485939 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 573.301106 secs (1454066 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 596.176608 secs (1398273 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 608.451689 secs (1370064 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 632.247621 secs (1318499 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 644.544968 secs (1293343 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 668.285453 secs (1247398 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 680.549374 secs (1224919 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
795+0 records in
795+0 records out
833617920 bytes transferred in 707.139605 secs (1178859 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
852+0 records in
852+0 records out
893386752 bytes transferred in 733.696820 secs (1217651 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
852+0 records in
852+0 records out
893386752 bytes transferred in 756.040085 secs (1181666 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
852+0 records in
852+0 records out
893386752 bytes transferred in 768.270761 secs (1162854 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
852+0 records in
852+0 records out
893386752 bytes transferred in 792.033571 secs (1127966 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
852+0 records in
852+0 records out
893386752 bytes transferred in 814.765009 secs (1096496 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 838.716256 secs (1075185 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 862.035525 secs (1046100 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 885.809282 secs (1018024 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 909.405752 secs (991609 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 933.168439 secs (966359 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 956.842477 secs (942449 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 979.341188 secs (920798 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1003.015149 secs (899065 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1026.899925 secs (878153 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1050.584979 secs (858355 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1074.458630 secs (839283 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1097.567204 secs (821613 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1120.908537 secs (804504 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1143.895128 secs (788337 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1166.582216 secs (773006 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1188.881276 secs (758507 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
860+0 records in
860+0 records out
901775360 bytes transferred in 1211.335638 secs (744447 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1279.674344 secs (855462 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1302.716261 secs (840331 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1325.591907 secs (825830 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1349.188388 secs (811387 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1371.997460 secs (797898 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1394.950821 secs (784768 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1417.726618 secs (772161 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1044+0 records in
1044+0 records out
1094713344 bytes transferred in 1441.045823 secs (759666 bytes/sec)
dd: /dev/disk0: Input/output error
dd: /dev/disk0: Input/output error
1100+0 records in
1100+0 records out
1153433600 bytes transferred in 1468.002111 secs (785717 bytes/sec)
dd: /dev/disk0: Input/output error
^C
1100+0 records in
1100+0 records out
1153433600 bytes transferred in 1490.844425 secs (773678 bytes/sec)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Thomas
In article <4b58cae7$0$22044$,
Emmanuel Florac wrote:

Correction : le dd de mac os x est bête, il ne comprend pas le "1M" il
faut lui dire 1048576 :)



non, il faut lui dire "1m" et pas "1M" :-)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Thomas
In article <4b5c61c5$0$24900$,
Emmanuel Florac wrote:

Le Sat, 23 Jan 2010 19:23:02 +0100, Thomas a écrit:


> mais c'est bizarre, ça ne va qu'à 13 Mo/s, alors que j'ai souvenir que
> quand je fais des copies de gros fichiers d'un disque à l'autre, il me
> semble que ça va assez facilement jusqu'à 20 Mo/s

Oui c'est pas terrible, un disque moderne frôle les 100Mo/s soutenus en
lecture.



depuis 6 mois ?
ou depuis 3 ans, même sur les ordis bas de gamme les moins chers ?

parce que j'ai acheté le macbook le moins cher il y a 2 ans et demi

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Pascal Hambourg
Thomas a écrit :
Emmanuel Florac wrote:

Le Sat, 23 Jan 2010 19:23:02 +0100, Thomas a écrit:

mais c'est bizarre, ça ne va qu'à 13 Mo/s, alors que j'ai souvenir que
quand je fais des copies de gros fichiers d'un disque à l'autre, il me
semble que ça va assez facilement jusqu'à 20 Mo/s


Oui c'est pas terrible, un disque moderne frôle les 100Mo/s soutenus en
lecture.



depuis 6 mois ?
ou depuis 3 ans, même sur les ordis bas de gamme les moins chers ?



Pour donner un ordre d'idée, j'ai un Hitachi Deskstar 7K250 (7200
tours/minute, 80 Go/plateau) acheté en 2005 qui frôle 60 Mo/s en débit
soutenu mesuré avec hdparm ou dd, qui était dans la moyenne de l'époque.
Depuis, la densité par plateau et donc le débit soutenu ont forcément
progressé.

parce que j'ai acheté le macbook le moins cher il y a 2 ans et demi



Si c'est un disque 2,5" de portable avec un diamètre et une vitesse de
rotation inférieurs à ceux d'un disque 3,5", mécaniquement le débit
soutenu est inférieur aussi.
Avatar
Thomas
In article <hjhmh3$2au8$,
Pascal Hambourg wrote:

Thomas a écrit :

>> On ne peut pas formater bas niveau un disque ATA.
>
> ATA séries c'est SATA ? et c'est pareil ?

SATA = ATA avec transport série, par opposition avec l'ATA "classique" à
transport parallèle.



merci :-)


> (à propos, c'est connu que SATA c'est plus lent que ATA ?)

Pas à ma connaissance. L'interface série permet un débit supérieur à
l'interface parallèle.



bizarre, j'ai des ordis plus vieux (chez un client) où les disques sont
en ATA au lieu de SATA, et où du coup (j'ai l'impression), le même test
va plus vite ...


> "formater bas niveau" : en quoi ça consiste, et sur quel type de disque
> on le fait ?

Ça consiste à "créer" les pistes et les secteurs sur la surface
magnétique. C'est ce que fait fdformat avec une disquette.



ah bon, ça fait carrément une action presque mécanique !

je pensais que le formatage c'était uniquement de l'écriture de données
(sur un disque deja en forme physiquement),
genre "0 espace utilisé, tant d'espace libre", le nom du disque, etc ...


>> On peut juste écrire partout dessus
>
> dd if=/dev/null of=/dev/disk0 bs48576
> ?

Non, if=/dev/zero qui est une source infinie de zéros. /dev/null est un
trou noir sans fond dont rien ne sort, on ne peut l'utiliser comme source.



ah bon, ok

c'est bizarre, pourquoi les 2 sont en rw ?


dd if=/dev/disk0 of=/dev/disk0 bs=1m conv=noerror,sync
pour forcer une réécriture, mais qui soit tout simplement l'écriture de
ce qu'il y avait avant, partout où c'est possible de relire,
ça peut être une bonne idée ?
pas de danger si on le fait sur le dd de démarrage ?



>> en espérant soit "remettre en forme" les secteurs défectueux,
>
> qu'appelles tu "remettre en forme" ?
> parce que s'il y a un pb physique, je ne vois pas comment il peut être
> résolu par logiciel ...

L'écriture remagnétise les bits de données sur la surface et peut donc
corriger une erreur de lecture qui était due à des bits de donnée dont
la magnétisation était trop faible ou incorrecte.

>> soit les faire réallouer par le contrôleur intégré.
>
> ah oui c'est ça, c'est pas le fs, c'est le contrôleur intégré
>
> pourquoi il faut écrire pour que le contrôleur intégré fasse son boulot,
> et que lire ne suffit pas ?

Par sécurité. Une erreur de lecture peut n'être que transitoire et les
données d'un secteur réalloué sont perdues, donc le contrôleur ne
réalloue pas automatiquement un secteur illisible. Il se contente de le
marquer "pending" (on peut le voir avec SMART). Un secteur marqué
"pending" pourra être réalloué si une lecture ultérieure réussit (et les
données lues avec succès sont recopiées au nouvel emplacement) ou bien
si on écrit dedans (car les anciennes données n'ont alors plus
d'importance).



je suppose que tu m'as pas écrit tout le détail, et qu'il est assez
intelligent pour ne reallouer que s'il est sur que le secteur est
irrécupérable ?

par exemple, s'il veut écrire dans un secteur marqué "pending", il écrit
dedans, et il relit aussitôt pour voir s'il suffisait d'écrire à nouveau
pour que le secteur soit à nouveau lisible (et si non, il le réalloue
aussitôt puisqu'il a encore les données à écrire en mémoire) ?



> si on se place du point de vue du système,
> le contrôleur intégré, c'est du matériel ?

Oui.

> du coup, si on a un disque en très mauvais état, mais que le contrôleur
> intégré a fait son boulot partout,
> en lisant /dev/disk0 on ne verra aucun problème ?

Pas en trop mauvais état alors. La capacité de correction et de
réparation du contrôleur intégré a ses limites. Et notamment le stock de
secteurs de réserve est limité (visible avec SMART aussi).



ah oui, j'avais oublié ça :-)

en commençant le fil, j'avais en tête que le système avait la totalité
du dd à disposition, et qu'au fur et à mesure que des secteurs
devenaient défectueux, l'espace disque à disposition du système diminuait


en fait, l'espace disque à disposition du système est constant, un peu
moins grand que le dd tout entier,

tant qu'il y a assez peu de secteurs défectueux,
pour le système c'est quasi transparent, le contrôleur intégré s'occupe
de tout,
et le fabriquant est susceptible de refuser la garantie en disant que
son dd "fournit le service"

et quand il y a trop de secteurs défectueux,
l'espace disque à disposition du système ne change pas de taille, mais
il commence à y avoir des erreurs (que le contrôleur intégré ne peut
plus faire disparaître),
et le fabriquant devrait accepter la garantie, parce qu'il y a des
erreurs "non resorbables"

c'est ça ? :-)



> Modèle : ST9100824AS
> ST pour segate ?

Oui. <insérer ici votre moteur de recherche préféré> est ton ami.

> a priori j'ai qu'à me retourner vers mon fournisseur qui me dira quoi,
> mais bon mon fournisseur c'est la fnac (et puis même),
> donc je préfère savoir si ça sert à rien d'y retourner tout de suite, et
> le pb c'est que j'ai pas de relation avec le constructeur, je sais même
> pas qui c'est

Seagate, d'après le modèle. Mais il arrive que pour certains disques
intégrés en OEM dans les ordinateurs la garantie soit prise en charge
par le fabricant de l'ordinateur et pas du disque. Tu peux le vérifier
sur le site de Seagate avec le numéro de série du disque.

> (c'est quoi un code RMA ?)

Un code donné par le fabricant autorisant le retour en garantie.
Cf. <http://fr.wikipedia.org/wiki/Return_Material_Authorization>



The product you identified was sold as a system component. Please
contact your place of purchase for service.

mais de toutes façons je ne voulais pas particulièrement court-circuiter
mon revendeur,
je voulais surtout éviter de faire perdre du temps à tout le monde si au
final il m'aurais dit que le disque n'est pas /assez/ abîmé et qu'il ne
fait pas marcher la garantie parce qu'il considère que le disque est en
suffisamment bon état
(c'est normal, on va pas le changer des le 1er secteur défectueux, les
secteurs de réserve sont là pour ça :-) )


>>> ou alors, est ce que ça veut juste dire qu'il y a 1 bloc défectueux, le
>>> fs va faire en sorte de ne plus l'utiliser
>>
>> Le système de fichiers ne fait pas forcément ça automatiquement. Par
>> exemple sous GNU/Linux avec ext2 il faut exécuter fsck avec l'option -c
>> (qui utilise badblocks en sous-main).
>
> chez moi cette option fait autre chose

Je suppose que le fsck de ton OS a quand même une option équivalente.



http://developer.apple.com/mac/library/documentation/Darwin/Reference/Man
Pages/man8/fsck.8.html
en regardant très rapidement je ne vois pas ...

peut être que c'est automatique ?
(au moment de la réécriture, comme le contrôleur intégré, vu ma 1ere
question du fil)

mais de toutes façons ce que je cherchais qui t'a amené à dire ça,
c'était le contrôleur intégré :-)
(parce que si la garantie marche, je préfère le changer à nouveau en
espérant que le prochain tiendra plus longtemps)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
1 2 3 4 5