bcwipe won't wipe a block device...
Aaron Peterson
aaron at alpete.com
Thu Feb 19 13:21:47 PST 2004
> I'm no expert either, but that never stopped me from commenting on a topic
> :-).
>
> Here's the relevant part. ktrace shows that bcwipe has opened /dev/da0.
>
> 13661 bcwipe CALL access(0xbfbfee71,0x6)
> 13661 bcwipe NAMI "/dev/da0"
> 13661 bcwipe RET access 0
> 13661 bcwipe CALL open(0xbfbfee71,0x82,0xbfbfee71)
> 13661 bcwipe NAMI "/dev/da0"
> 13661 bcwipe RET open 3
>
> I haven't looked up what the lseek syscall does, but I suspect
> that you are seek to the start of the file here and you have
> succeeded
>
> 13661 bcwipe CALL lseek(0x3,0,0,0,0x2)
> 13661 bcwipe RET lseek 0
>
> Here'w where the problems begin. It looks like you are seeking
> beyond the end of the device. lseek fails and bcwipe isn't
> handling the failure correctly.
>
> 13661 bcwipe CALL lseek(0x3,0,0xffffffff,0x7fffffff,0)
> 13661 bcwipe RET lseek -1/0xffffffff
> 13661 bcwipe CALL read(0x3,0xbfbeeba0,0x1)
> 13661 bcwipe RET read -1 errno 22 Invalid argument
Just for fun, here's the kdump from the "dd if=/dev/urandom bs=1024
count=5 of=/dev/da0" which was successful:
http://www.alpete.com/dd.da0.kdump.txt
Looks like the open call, plus some:
13760 dd CALL open(0x804f063,0x602,0x1b6)
13760 dd NAMI "/dev/da0"
13760 dd RET open 4
13760 dd CALL fstat(0x4,0xbfbfeca0)
13760 dd RET fstat 0
13760 dd CALL ioctl(0x4,FIODTYPE,0xbfbfec9c)
13760 dd RET ioctl 0
and i don't see much else useful in there...
sooo.... how might i fix this? learn C and fix bcwipe? heh...
More information about the freebsd-current
mailing list