[linux] Fwd: Re: is deze usb-disk te repareren?

Daniel C. von Asmuth asmuth op bakunin.xs4all.nl
Do Sep 13 15:13:24 CEST 2018


Aldus schreef Paul Slootman op Thu, Sep 13, 2018 at 02:07:29PM +0200:
> On Thu 13 Sep 2018, Daniel C. von Asmuth wrote:
> > > 
> > > /home/julien/t# dd if=/dev/zero of=/dev/sdb
> > > dd: writing to '/dev/sdb': No space left on device
> > > 1+0 records in
> > > 0+0 records out
> > > 0 bytes copied, 0.000168972 s, 0.0 kB/s
> > 
> > Ik denk dat de reden dat /dev/sdb niet beschreven kan worden omdat het niet
> > bestaat. Dat zou betekenen dat je usb-disc een andere naam heeft
> 
> Als het niet bestaat, dan had de bovenstaande 'dd' commando een gewone
> file '/dev/sdb' aangemaakt en gevuld totdat de filesystem met /dev vol
> is. Het lijkt mij stug dat daar geen ruimte voor was geweest. Bij mij:
> 
> root op lp117:/tmp# cd /dev
> root op lp117:/dev# ls -l sdb
> ls: cannot access sdb: No such file or directory
> root op lp117:/dev# dd if=/dev/zero of=/dev/sdb count=10
> 10+0 records in
> 10+0 records out
> 5120 bytes (5.1 kB) copied, 0.000252623 s, 20.3 MB/s

Je hebt gelijk. Dan heb ik als alternatieve verklaring dat de kernel 
/dev/sdb ziet als een block device van grootte 0. Dat is gemakkelijk te
testen met 
	cat /proc/partitions

> > >  En anders wordt het tijd
> > > >om de schijf te testen, gebruik bijvoorbeeld smartctl.
> > > 
> > > dat heb ik ook gedaan:
> > > 
> > > === START OF INFORMATION SECTION ===
> > > Model Family:     Western Digital Green
> > > Device Model:     WDC WD30EZRX-00DC0B0
> 
> Dat lukte blijkbaar wel met die /dev/sdb, dus conclusie is dat /dev/sdb
> wel degelijk bestaat.

En wat kunnen we dan nog meer? De kernel log geeft wellicht aanvullende
informatie. 

Julien schreef eerder dat de functie ReadMBRData() een error 22
oplevert. Dat zou 'Invalid argument' betekenen. 

De foutmelding vind je in regel 157 van basicmbr.cc
De Warnings vind je op regel 976 van gpt.cc. 

De functie DiskIO::Read() roept weer read 2 aan. De argumenten zijn 
een file descriptor, buffer adres en aantal bytes. Het getal 22 is
inderdaad de errno 3 variabele. 

Als we aannemen dat de file descriptor geldig is nadat de disc succesvol 
geopend is en het buferadres ook valide, dan ondersteunt dat de hypothese
dat de kernel denkt dat de grootte van de disc 0 is, zodat je zelfs de 
partitietabel niet kunt uitlezen. 

https://sourceforge.net/projects/gptfdisk/files/gptfdisk/1.0.3/gptfdisk-1.0.3.tar.gz/download

> > Helaas kan ik er zaterdag niet bji zijn, maar wer zijn nog meer mensen.
> 
> Ik helaas ook niet...
> 
> 
> Paul
> 


Daniel

-- 
	
		Geeks of a feather cruft together
		


Meer informatie over de Linux maillijst