write(2) to /dev/ad4 = EINVAL
Christoph Mallon
christoph.mallon at gmx.de
Mon Jan 26 02:31:54 PST 2009
Lukasz Jaroszewski schrieb:
> 2009/1/26 Hans Petter Selasky <hselasky at c2i.net>:
>> On Monday 26 January 2009, Lukasz Jaroszewski wrote:
>>> Hi,
>>> after opening /dev/ad4 with success for O_RDWR, I am getting [EINVAL]
>>> from write(2), which according to man 2 write, means
>>> `` [EINVAL] The pointer associated with d was
>>> negative.'', as you can see below it is not true, I have tried
>>> different block sizes, with same result.
>>>
>>> How can I write one byte to /dev/adN ?
>> Hi,
>>
>> You cannot write one byte to /dev/adN, I think. Harddisks are block based.
>> Please see:
>>
>> diskinfo -v ad4
>>
>> And especially the "sector size". When you seek and transfer data the offset
>> and length must be a factor of the "sector size" or "block size". See also
>> LBA, logical block address.
>
>
> Yes, I have tried with bs=512 and multiplies, no luck.
>
> root@~(0) diskinfo -v ad4
> ad4
> 512 # sectorsize
> 2029805568 # mediasize in bytes (1.9G)
> 3964464 # mediasize in sectors
> 3933 # Cylinders according to firmware.
> 16 # Heads according to firmware.
> 63 # Sectors according to firmware.
> ad:CFx20CARDx200000190C # Disk ident.
It would be helpful, if you showed the actual code, instead of letting
us guess what you are doing.
More information about the freebsd-hackers
mailing list