Giter Club home page Giter Club logo

f3's People

Contributors

a1346054 avatar al2klimov avatar altramayor avatar anarcat avatar avindra avatar bendem avatar bmcdonnell-ionx avatar bor avatar brunetton avatar davidknoll avatar devoytas avatar gchenfc avatar ggteixeira avatar gpupo avatar jowagner avatar jwilk avatar kalsan avatar l29ah avatar mistydemeo avatar notaz avatar ocroquette avatar oreinert avatar peron avatar sgerwk avatar shoeper avatar toozej avatar uffejakobsen avatar vrunkel avatar whitslack avatar yannickschuchmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

f3's Issues

Performance improvement

I just tried your tool, very useful.
But default block sizes for writing are too small and I was getting ~10MB/s on my card.
I changed fw->block_size to 1MB, and I got around 80MB/s

can't build version 6.0 on Archlinux

Hi there,
the current release v6.0 doesn't build on Archlinux. I also tried compiling on Ubuntu 15.10, which also failed.
Here's the output of "make experimental":

cc -o f3probe libutils.o libdevs.o libprobe.o f3probe.o -lm -ludev
libdevs.o: In function `argp_usage':
/usr/include/argp.h:564: multiple definition of `argp_usage'
libutils.o:/usr/include/argp.h:564: first defined here
libdevs.o: In function `_option_is_short':
/usr/include/argp.h:570: multiple definition of `_option_is_short'
libutils.o:/usr/include/argp.h:570: first defined here
libdevs.o: In function `_option_is_end':
/usr/include/argp.h:582: multiple definition of `_option_is_end'
libutils.o:/usr/include/argp.h:582: first defined here
libprobe.o: In function `argp_usage':
/usr/include/argp.h:564: multiple definition of `argp_usage'
libutils.o:/usr/include/argp.h:564: first defined here
libprobe.o: In function `_option_is_short':
/usr/include/argp.h:570: multiple definition of `_option_is_short'
libutils.o:/usr/include/argp.h:570: first defined here
libprobe.o: In function `_option_is_end':
/usr/include/argp.h:582: multiple definition of `_option_is_end'
libutils.o:/usr/include/argp.h:582: first defined here
f3probe.o: In function `argp_usage':
/usr/include/argp.h:564: multiple definition of `argp_usage'
libutils.o:/usr/include/argp.h:564: first defined here
f3probe.o: In function `_option_is_short':
/usr/include/argp.h:570: multiple definition of `_option_is_short'
libutils.o:/usr/include/argp.h:570: first defined here
f3probe.o: In function `_option_is_end':
/usr/include/argp.h:582: multiple definition of `_option_is_end'
libutils.o:/usr/include/argp.h:582: first defined here
collect2: error: ld returned 1 exit status
Makefile:32: recipe for target 'f3probe' failed
make: *** [f3probe] Error 1

However, the current master does build on Archlinux. Could you do a version bump?

f3fix expected duration & explanation

  1. At http://oss.digirati.com.br/f3/ , f3probe has an explanation, while f3fix does not.
  2. After 5 minutes, f3fix has not finished.
    If this is not to be expected, perhaps somebody could tell me how to debug?

My fake microSD card details:

        *Real* size: 7.50 GB (1966310 blocks)
      Announced size: 62.50 GB (16384000 blocks)
              Module: 64.00 GB (2^36 Bytes)
          Block size: 4.00 KB (2^12 Bytes)
    Last good sector: 15730479

Probe time: 97.77 seconds
Probe read op: count=109, total time=0.37s, avg op time=3.40ms
Probe write op: count=62, total time=30.92s, avg op time=498.75ms
Probe reset op: count=10, total time=66.47s, avg op time=6647.26ms
sudo f3fix --last-sec=15730479 /dev/sdb

f3probe seems to be stuck in an infinite loop

Hello.

I just compiled from master and decided to run f3 probe on a USB drive that I have around here.
It advertises that it is 16GB but I think it is only about 8. So here is the output from the f3probe command:

sudo ./f3probe /dev/sdb
[sudo] password for max: 
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Please unplug and plug back the USB drive. Waiting... Thanks

Please unplug and plug back the USB drive. Waiting... Thanks

Please unplug and plug back the USB drive. Waiting... Thanks

Please unplug and plug back the USB drive. Waiting... Thanks

Please unplug and plug back the USB drive. Waiting...    Thanks

Please unplug and plug back the USB drive. Waiting... Thanks

Please unplug and plug back the USB drive. Waiting...

I removed and inserted the drive a few times but nothing changed.

A question about the GUI

Hello.

I was wondering what would be the best approach to write a GUI for f3read and f3write?
The easiest way is to execute the commands and parse the stdout output.
Can they be compiled as a static/dynamic library?

Error while compiling experimental

Hi! While compiling experimental i got an problem:
/f3-5.0$ make experimental
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb -c -o libdevs.o libdevs.c
libdevs.c: In function ‘wait_for_add_action’:
libdevs.c:456:2: error: invalid use of void expression
libdevs.c: In function ‘bdev_manual_usb_reset’:
libdevs.c:495:2: error: invalid use of void expression
libdevs.c: In function ‘usb_fd_from_block_dev’:
libdevs.c:530:2: error: invalid use of void expression
libdevs.c: In function ‘create_block_device’:
libdevs.c:648:2: error: invalid use of void expression
libdevs.c:681:2: error: invalid use of void expression
make: *** [libdevs.o] Błąd 1

I'm running Elementary OS (based on ubuntu 12.04) and gcc 4.4.6.
Building f3write and f3read goes with no problem.

f3write add [--end-at=NUM/FileSizeMB]

In some case would like to create none 1GB as base .
If it can be extend to
"--end-at=30**/300MB**" ==> say 30th files with 300MBytes Only ; total 30GB and 300MB
"--end-at=59**/1MB**" ==> say 59th files with 1MBytes Only ; total 59GB and 1MB
Or any idea for this approach.

can't build experimental stuff with -O2

∞ CFLAGS=-O2 make experimental
cc -O2 -std=c99 -Wall -Wextra -pedantic -MMD -ggdb -c -o libutils.o libutils.c
cc -O2 -std=c99 -Wall -Wextra -pedantic -MMD -ggdb -c -o libdevs.o libdevs.c
cc -O2 -std=c99 -Wall -Wextra -pedantic -MMD -ggdb -c -o libprobe.o libprobe.c
cc -O2 -std=c99 -Wall -Wextra -pedantic -MMD -ggdb -c -o f3probe.o f3probe.c
f3probe.c: В функции «main»:
f3probe.c:446:3: предупреждение: «sdev» may be used uninitialized in this function [-Wmaybe-uninitialized]
sdev_flush(sdev);
^
f3probe.c:369:30: замечание: «sdev» was declared here
struct device _dev, *pdev, *sdev;
^
cc -o f3probe libutils.o libdevs.o libprobe.o f3probe.o -lm -ludev
libdevs.o: In function argp_usage': /usr/include/argp.h:563: multiple definition ofargp_usage'
libutils.o:/usr/include/argp.h:563: first defined here
libdevs.o: In function _option_is_short': /usr/include/argp.h:569: multiple definition of_option_is_short'
libutils.o:/usr/include/argp.h:569: first defined here
libdevs.o: In function _option_is_end': /usr/include/argp.h:581: multiple definition of_option_is_end'
libutils.o:/usr/include/argp.h:581: first defined here
libprobe.o: In function argp_usage': /usr/include/argp.h:563: multiple definition ofargp_usage'
libutils.o:/usr/include/argp.h:563: first defined here
libprobe.o: In function _option_is_short': /usr/include/argp.h:569: multiple definition of_option_is_short'
libutils.o:/usr/include/argp.h:569: first defined here
libprobe.o: In function _option_is_end': /usr/include/argp.h:581: multiple definition of_option_is_end'
libutils.o:/usr/include/argp.h:581: first defined here
f3probe.o: In function argp_usage': /usr/include/argp.h:563: multiple definition ofargp_usage'
libutils.o:/usr/include/argp.h:563: first defined here
f3probe.o: In function _option_is_short': /usr/include/argp.h:569: multiple definition of_option_is_short'
libutils.o:/usr/include/argp.h:569: first defined here
f3probe.o: In function _option_is_end': /usr/include/argp.h:581: multiple definition ofoption_is_end'
libutils.o:/usr/include/argp.h:581: first defined here
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make: *
* [f3probe] Ошибка 1

reorder and cleanup the README

the README file is a little hard to read right now. since it starts with compilation instructions, it's not immediately clear it can be used as a quick introduction for how to use the tool. i found that README file shipped in /usr/share/doc/f3/README.md in the Debian package, which is great, but didn't scroll down to the end so I didn't see the small tutorial up there... I then turned to the homepage which is just too long for a casual user.

What I would expect is a quick examples section on top, then followed by the GUI/wrapper scripts and then install instructions. A table of contents would be nice as well! For what it's worth, I made my own quick documentation for the stressant test suite in this page which you may reuse freely.

The Performance Benchmark f3(6.0) vs H2testw (v1.4)

The Performance Benchmark f3read.exe(6.0) vs H2testw (v1.4) via same 1.h2w(1GBytes).
H2testw(1.4) : 41.7MBytes/s ( Bus Hound show SCSI command Avg Length 1048576)
f3read.exe(6.0) : 33.92MB/s ( Bus Hound show SCSI command Avg Length 131072) (1st Time)
f3read.exe(6.0) : 797.27MB/s ____________________________________________ (>2nd Time) (read from cache)

Question#1 : how to make f3 can read as fast as H2test likes to reach SCSI show length 1048576.
Question#2 : how to disable I/O file cache.
(P.S All above in win32 env)

f3write (128GB stick): assertion !fdatasync(fd) failes at different files

I got

f3write.c:236 measure Assertion '!fdatasync(fd)' failed

Then, the stick appears to be not mounted any more under /run/media/stick, but the device is still listed in lsblk.

Please advice, what I can change in the code (if applicable.)

one

One occurence was on the 12th file:

  • Creating file 12.h2w - 10.05% 35.12Mb/s - 47:56

two

After remounting the stick (via click onto the device in Dolphin Filemanager) and restarting f3, an occurence was on the 31th file:

  • Creating file 31.h2w - 26.29% 33.82 Mb/s - 42:26

USB Stick

System

[updated post]

2tb microsd card needs to be set to 64gb

SO because of a weird bug/glitch with a windows tool my sd card now reads as 2tb. I thought i could fix it using f3probe (i am root). latest version of ubuntu server stable. Following error:

Log:
root@LinuxServer:/home/tim/f3-5.0# sudo ./f3probe --time-ops /dev/sdi
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Please unplug and plug back the USB drive. Waiting... Thanks

f3probe: libdevs.c:323: read_all: Assertion `rc >= 0' failed.

Any idea?

Relative paths don't work

f3write can't create 2.fff when invoked using:
cd /path/to/volume/
f3write .

Of course, the workaround is to use absolute paths, but I wanted to pass it along since I found it.

f3probe reports much more usable size on a junk card

I recently encountered a fake Kingston 8G TF card. I run a f3probe first, which reads:

Probe finished, recovering blocks... Done

Bad news: The device `/dev/sdc' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=8388607 /dev/sdc

Device geometry:
                 *Usable* size: 4.00 GB (8388608 blocks)
                Announced size: 7.42 GB (15563776 blocks)
                        Module: 8.00 GB (2^33 Bytes)
        Approximate cache size: 63.00 MB (129024 blocks), need-reset=no
           Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'25"

I do a second check by f3wr, it says:

                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ...  137536/  1959424/      0/    192
Validating file 2.h2w ...  432768/  1664384/      0/      0
Validating file 3.h2w ...  106724/  1990144/      0/    284
Validating file 4.h2w ...       0/  2097152/      0/      0
Validating file 5.h2w ...  107008/  1990144/      0/      0
Validating file 6.h2w ...       0/  2097152/      0/      0
Validating file 7.h2w ...  107008/  1990144/      0/      0
Validating file 8.h2w ...  106816/   760448/      0/      0

  Data OK: 487.24 MB (997860 sectors)
Data LOST: 6.94 GB (14549468 sectors)
           Corrupted: 6.94 GB (14548992 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 238.00 KB (476 sectors)
Average reading speed: 16.03 MB/s

A second run of f3read is even worse, more corrupted and overwritten.

I don't know if it can be a bug, but it appears that the card can't be simply fixed by re-partition.

possible to have a controller field as an alternative method to writing content which takes time.

Now most of these solutions are concentrated both on MS-Windows and
GNU/Linux seem to be about filling the data, seeing if the data is
corrupted and then saying this flash disk is good or not.

Another/alternative approach being taken is by a product called chip
genius but alas it is only a MS-Windows product -

see http://www.usbdev.ru/files/chipgenius/ for more details.

For USB 2.0 drives it would make more sense I guess if we could get
that info. as shown in the page, I think getting controller name and
controller version could make things easier for people.

See the example shared therein.

The only thing to get it rolling is some sort of script which spits
out the info. needed. to start having a database of manufacturers and
model nos.

There have been more than a few tools which have made good inroads in similar areas.

For e.g. see https://hewlettpackard.github.io/wireless-tools/Tools.html

Another one which comes to my mind is usb-modeswitch and usb-modeswitch-data.

a simple "gui"

This is from the puppy forums, named f3,, line 9 altered, change as needed,, requires gtkdialog, gtkdialog3. works OK

#!/bin/sh
#rcrsn51 2014-07-10

export TEXTDOMAIN=f3
export OUTPUT_CHARSET=UTF-8

PROCESS () {
    [ -z "$PARTITION" ] && exit
    sync
    konsole  -hold -e /usr/local/bin/$1 $PARTITION
}
export -f PROCESS

#######################

PARTLIST=$(cat /proc/mounts | grep -E "sdb|sdc|sdd|sde|sdf|sdg" | awk '{print $2}')

COMBOLIST=""
for P in $PARTLIST; do
    COMBOLIST=$COMBOLIST"<item>"$P"</item>"
done

export DIALOG="
<window title=\"f3 v5.0\">
<vbox>
    <frame>
        <text xalign=\"0\">
            <label>$(gettext 'This tool tests the health of flash media by writing large dummy files to the device, then reading them back. At the end of each step, close the terminal window. The files are deleted when you quit.')</label>
        </text>
    </frame>
    <frame $(gettext 'Select a MOUNTED partition')>
        <combobox>
            <variable>PARTITION</variable>
            $COMBOLIST
        </combobox>
    </frame>
    <hbox>
        <button>
            <label>$(gettext 'Write to')</label>
            <action>PROCESS f3write &</action>
        </button>
        <button>
            <label>$(gettext 'Read back')</label>
            <action>PROCESS f3read &</action>
        </button>
        <button><label>$(gettext 'Refresh')</label></button>
        <button><label>$(gettext 'Quit')</label></button>
    </hbox>
</vbox>
</window>"

I=$IFS; IFS=""
for STATEMENTS in  $(gtkdialog3 -c -p DIALOG); do
    eval $STATEMENTS
done
IFS=$I

rm -f $PARTITION/*.h2w

[ $EXIT = $(gettext 'Refresh') ] && exec $0

f3probe: Assertion failed on first run

Hi I tried to follow your example on known bad /dev/sdb:

root@vb:/home/usr/f3# ./f3probe --destructive --time-ops /dev/sdb
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
it can take longer. Please be patient.

f3probe: libprobe.c:342: assess_reset_effect: Assertion `after_reset_count_block <= b4_reset_count_block' failed.
Aborted
after a few seconds

If I omit the --time-ops flag it works ok.

root@vb:/home/usr/f3# ./f3probe --destructive /dev/sdb
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
it can take longer. Please be patient.

Bad news: The device `/dev/sdb' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=15578186 /dev/sdb

Device geometry:
Usable size: 7.43 GB (15578187 blocks)
Announced size: 31.25 GB (65536000 blocks)
Module: 32.00 GB (2^35 Bytes)
Approximate cache size: 3.00 MB (6144 blocks), need-reset=no
Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 2'05"

Thank you for nice software

problem with f3probe and multiformat card readers

I'm reading a SDcard by using a multiformat card reader on Linux:

[ 7036.763583] usb 1-5.2: new high-speed USB device number 20 using ehci-pci
[ 7036.850829] usb 1-5.2: New USB device found, idVendor=058f, idProduct=6362
[ 7036.850832] usb 1-5.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7036.850834] usb 1-5.2: Product: Mass Storage Device
[ 7036.850835] usb 1-5.2: Manufacturer: Generic
[ 7036.850836] usb 1-5.2: SerialNumber: 058F312D81B
[ 7036.851203] usb-storage 1-5.2:1.0: USB Mass Storage device detected
[ 7036.851275] scsi host23: usb-storage 1-5.2:1.0
[ 7037.852028] scsi 23:0:0:0: Direct-Access Generic USB SD Reader 1.00 PQ: 0 ANSI: 0
[ 7037.852168] sd 23:0:0:0: Attached scsi generic sg5 type 0
[ 7038.366047] scsi 23:0:0:1: Direct-Access Generic USB CF Reader 1.01 PQ: 0 ANSI: 0
[ 7038.366196] sd 23:0:0:1: Attached scsi generic sg6 type 0
[ 7038.367548] scsi 23:0:0:2: Direct-Access Generic USB SM Reader 1.02 PQ: 0 ANSI: 0
[ 7038.367641] sd 23:0:0:2: Attached scsi generic sg7 type 0
[ 7038.368045] sd 23:0:0:0: [sde] 3934208 512-byte logical blocks: (2.01 GB/1.87 GiB)
[ 7038.369915] scsi 23:0:0:3: Direct-Access Generic USB MS Reader 1.03 PQ: 0 ANSI: 0
[ 7038.370336] sd 23:0:0:3: Attached scsi generic sg8 type 0
[ 7038.371294] sd 23:0:0:0: [sde] Write Protect is off
[ 7038.371298] sd 23:0:0:0: [sde] Mode Sense: 03 00 00 00
[ 7038.374316] sd 23:0:0:0: [sde] No Caching mode page found
[ 7038.374318] sd 23:0:0:0: [sde] Assuming drive cache: write through
[ 7038.376441] sd 23:0:0:3: [sdh] Attached SCSI removable disk
[ 7038.397297] sde: sde1
[ 7038.402908] sd 23:0:0:2: [sdg] Attached SCSI removable disk
[ 7038.406905] sd 23:0:0:1: [sdf] Attached SCSI removable disk
[ 7038.410527] sd 23:0:0:0: [sde] Attached SCSI removable disk

I have a fake SD card which is mapped to the /dev/sde device. I want to use f3probe to detect the last usable sector and later try to use f3fix.

f3probe --time-ops /dev/sde

F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Please unplug and plug back the USB drive. Waiting... Thanks

f3probe: Can't REopen device `/dev/sdf': No medium found

I guess this problem is due to the multi udev events not properly managed by the application. What do you think?

undeclared identifier 'LONG_MAX' on mac

When I was compiling it on a mac, I was getting this error:

f3read.c:318:14: error: use of undeclared identifier 'LONG_MAX'
.end_at = LONG_MAX - 1,

I added #include <limits.h> to f3read.c and it completed compiling.

Is this correct?

migrate documentation in source code

A lot of the documentation in this package is in the website, which is nice to have, but quite inconvenient when working offline (which happens!). Furthermore, it is sometimes difficult to find what we're looking for between the manpage, the readme and the website - it's never clear where the documentation is.

Furthermore, it's not clear how we can contribute to the documentation on the website. For example, I'd like to document the fix for #62 somewhere, but I don't know how to contribute...

In #64, you seemed to welcome improvements to the documentation, and I suggested migrating the website to Read the docs (RTD) or GitHub pages. Have you considered those ideas?

It would be fairly easy to convert the website into a Sphinx/RST document with Pandoc. Then it could moved into the source code and automatically built on RTD. Would you welcome such a pull request?

Thank you for your consideration...

Fixing non-fake SDs

Some question about non-fake SDs that are getting weak.
For instance:

  Data OK: 58.41 GB (122484302 sectors)
Data LOST: 1.52 MB (3122 sectors)
	       Corrupted: 1.52 MB (3122 sectors)
	Slightly changed: 0.00 Byte (0 sectors)
	     Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 4.45 MB/s

Is there any filesystem tweak that is capable to hide those bad sectors and use all the rest? Using smaller filesystems is no solution as the errors are not at begin or end of the drive.

Compiling fails on Arch Linux

I git bisected the issue to abf811f, reverting this commit lets it compile again. I am using Arch Linux.
Build failure:

cc -o f3write utils.o f3write.o -Wl,-O1,--sort-common,--as-needed,-z,relro -lm
f3write.o: In function `argp_usage':
/usr/include/argp.h:564: multiple definition of `argp_usage'
utils.o:/usr/include/argp.h:564: first defined here
f3write.o: In function `_option_is_short':
/usr/include/argp.h:570: multiple definition of `_option_is_short'
utils.o:/usr/include/argp.h:570: first defined here
f3write.o: In function `_option_is_end':
/usr/include/argp.h:582: multiple definition of `_option_is_end'
utils.o:/usr/include/argp.h:582: first defined here
collect2: error: ld returned 1 exit status
Makefile:26: recipe for target 'f3write' failed
make: *** [f3write] Error 1

MacOS compile error for latest source

Using brew install --HEAD f3 on MacOS 10.12.3 gives the following errors:

==> Cloning https://github.com/AltraMayor/f3.git
Cloning into '/Users/eduardr/Library/Caches/Homebrew/f3--git'...
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 24 (delta 0), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (24/24), done.
==> Checking out branch master
==> make all
Last 15 lines from /Users/eduardr/Library/Logs/Homebrew/f3/01.make:
         ^
f3write.c:18:10: fatal error: 'argp.h' file not found
#include <argp.h>
         ^
In file included from utils.c:22:
./utils.h:7:10: fatal error: 'argp.h' file not found
#include <argp.h>       /* For struct argp_state.       */
         ^
1 error generated.
1 error generated.
1 error generated.
make: *** [f3read.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [f3write.o] Error 1
make: *** [utils.o] Error 1

PCI based card readers

Hi,

I know this issue came up before in #14, but since that discussion didn't go anywhere, I thought I open a new ticket. I know how FOSS work can be, if you don't have time or feel this is not important for f3 right now, feel free to close the ticket.

At the time, you asked for more info that never came. I now have the same issue and could provide more details, if you are interested. My reader seems to be attached via PCI:

> lspci -vvv

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5227 PCI Express Card Reader (rev 01)
        Subsystem: Lenovo ThinkPad T440p
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 28
        Region 0: Memory at f1500000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
                Address: 00000000fee00278  Data: 0000
        Capabilities: [70] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10.000W
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
                        ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Via message/WAKE#
                AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled
                AtomicOpsCtl: ReqEn-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [140 v1] Device Serial Number 00-00-00-01-00-4c-e0-00
        Capabilities: [150 v1] Latency Tolerance Reporting
                Max snoop latency: 3145728ns
                Max no snoop latency: 3145728ns
        Capabilities: [158 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                          PortCommonModeRestoreTime=60us PortTPowerOnTime=60us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=0ns
                L1SubCtl2: T_PwrOn=10us
        Kernel driver in use: rtsx_pci
        Kernel modules: rtsx_pci

I don't really have the time to dig to your code and send in a pull request, but I could help you a bit in debugging this if you are interested. I saw you probe udev for usb devices, similar things might be possible with pci.

As far as I am concerned, a minimal solution where I have to remove the sdcard physically for resets is sufficient, I am not exactly testing cards on a daily basis.

Not working on ARM

Console output:
"sh: /system/xbin/f3write: not executable: 64-bit ELF file"
(I've setup the ARCH variable to arm, by the way)

f3probe reported real size changes between runs

Hi there! First thanks for creating this very useful tool. I've been made aware of it's existence by http://superuser.com/questions/376274/check-the-physical-health-of-a-usb-stick-in-linux after I started googling for something like it because many of the files I've written to my brand new "Kingston DTSE9" 128GB USB 2.0 stick (that I bought from a seller on aliexpress.com for $7,90 which I guess could have been my first hint that something must be wrong) had the correct size but where filled with zeros instead of their real data.

So I first installed f3 from my Ubuntu 14.04 (Linux Mint 17.1) repositories, and wrote nearly 22 1GB sized h2w files to it using f3write.
f3read showed me that the first 6 where okey, 7th was mostly okey, and all after the 7th where again completely filled with zeros. Validating file 7.h2w ... 2028184/ 68968/ 0/ 0

Next I found on your website http://oss.digirati.com.br/f3/ that your latest release version 5 has a new tool called f3probe which is much faster in detecting fake flash and even has an accompaning tool f3fix which resizes the partiton to the real size available to be able to use at least that.

So after expecting to have around 8GB of good storage because of my first try with f3read and f3write I was surprised by f3probe after 8 dis- and reconnects of my usb-stick reported *Real* size: 30.27 GB (7936044 blocks)

I was really happy and ran the suggested line
sudo ./f3fix --last-sec=63488351 /dev/sdc
but alas, after formatting the resized partition (with ntfs using gparted), and running f3write and f3read again, f3read already started failing at 3/4th of the 4th file Validating file 4.h2w ... 1527960/ 569192/ 0/ 0 and all the files after it where zeroed out completely again.

In my stuberness of not wanting to give up "so easily" I tried again starting with f3probe. This time over, after un- and replugging 9 times (1 time more than the first time over) it reported *Real* size: 7.53 GB (1974099 blocks)
Running the suggested sudo ./f3fix --last-sec=15792791 /dev/sdd again and this time formatting exactly as your website said using sudo mkfs.vfat /dev/sdd1

this time f3write and f3read ran through completly and suggesting I got a good storage of nearly 8GB

./f3read /media/kaefert/F315-314C
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
Validating file 2.h2w ... 2097152/        0/      0/      0
Validating file 3.h2w ... 2097152/        0/      0/      0
Validating file 4.h2w ... 2097152/        0/      0/      0
Validating file 5.h2w ... 2097152/        0/      0/      0
Validating file 6.h2w ... 2097152/        0/      0/      0
Validating file 7.h2w ... 2097152/        0/      0/      0
Validating file 8.h2w ... 1079856/        0/      0/      0

  Data OK: 7.51 GB (15759920 sectors)
Data LOST: 0.00 Byte (0 sectors)
           Corrupted: 0.00 Byte (0 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 14.51 MB/s

Does anybody know why f3probe reported 32GB first and then the seemingly correct 8GB in the second run? And why in between while using a 32GB NTFS filesystem f3read already started failing after about 4GB?

f3 doesn't compile under cygwin

Hi,

under the latest cygwin, f3 won't compile from source.

$ make
shows error about undefined reference argp_parse. This is easily fixed by adding -largp to f3write and f3read rules in the Makefile.

Cheers,
Dev

Missing arg for argp_error


f3fix.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/f3fix.c b/f3fix.c
index a80a9b5..7512406 100644
--- a/f3fix.c
+++ b/f3fix.c
@@ -73,14 +73,14 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
args->disk_type = ped_disk_type_get(arg);
if (!args->disk_type)
argp_error(state,

  •           "Disk type `%s' is not supported; use --list-disk-types to see the supported types");
    
  •           "Disk type `%s' is not supported; use --list-disk-types to see the supported types", arg);
    break;
    

    case 'f':
    args->fs_type = ped_file_system_type_get(arg);
    if (!args->fs_type)
    argp_error(state,

  •           "File system type `%s' is not supported; use --list-fs-types to see the supported types");
    
  •           "File system type `%s' is not supported; use --list-fs-types to see the supported types", arg);
    break;
    

    case 'b':

    2.5.0

Cannot make install on Macos Yosemite

Following the online instructions, compilation of F3 for Mac OS X failed on step 3:

make install

with error:
install -d /usr/local/bin
install -oroot -groot -m755 f3write f3read /usr/local/bin
install: root: Invalid argument

f3probe Reporting Real Size of 0

I ran f3write and then f3read. At at around the eighth file, f3read started reporting corrupted data. At some point f3read reported an error and exited (can't recall which error it was).
After that I played a little bit with gparted and gdisk. Unable to setup a partition or repair the GTP, I resorted to f3probe.

The problem is that f3probe reports real size of 0. This can't be true because initially when I received the thumb drive I was able to copy files to and from it.

Is it possible that I messed the hardware of the drive or is it a f3probe bug?

sudo ./f3probe --time-ops /dev/sdb
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Please unplug and plug back the USB drive. Waiting... Thanks

CAUTION     CAUTION     CAUTION
No more resets are needed, so do not unplug the drive
Probe finished, recovering blocks...f3probe: Failed to recover block at offset 0x3e8041000 due to a write error: Input/output error
f3probe: Failed to recover block at offset 0x1400 due to a write error: Input/output error
 Done

Bad news: The device `/dev/sdb' is damaged

Device geometry:
            *Real* size: 0.00 Byte (0 blocks)
         Announced size: 62.50 GB (131074048 blocks)
                 Module: 64.00 GB (2^36 Bytes)
    Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 125.37 seconds
Probe read op: count=19, total time=0.12s, avg op time=6.55ms
Probe write op: count=3, total time=112.71s, avg op time=37571.32ms
Probe reset op: count=1, total time=12.53s, avg op time=12533.23ms

Cannot bulid on macbook pro mavericks

user@mbp:/web/f3 ((detached from v4.0))$ make
cc -std=c99 -Wall -Wextra -pedantic -MMD -c -o f3write.o f3write.c
In file included from f3write.c:19:
./utils.h:49:19: error: use of undeclared identifier 'F_FULLFSYNC'
return fcntl(fd, F_FULLFSYNC);
^
./utils.h:60:20: error: use of undeclared identifier 'F_RDAHEAD'
return fcntl(fd, F_RDAHEAD, 1);
^
./utils.h:62:20: error: use of undeclared identifier 'F_NOCACHE'
return fcntl(fd, F_NOCACHE, 1);
^
./utils.h:56:47: warning: unused parameter 'offset' [-Wunused-parameter]
static inline int posix_fadvise(int fd, off_t offset, off_t len, int advice)
^
./utils.h:56:61: warning: unused parameter 'len' [-Wunused-parameter]
static inline int posix_fadvise(int fd, off_t offset, off_t len, int advice)
^
2 warnings and 3 errors generated.
make: *** [f3write.o] Error 1

WARNING: Not all F3 files in the range 1 to 9223372036854775807 are available

Using f3 5.0 compiled on Ubuntu 14.04

./f3read was interrupted somehow. I was testing an external 2TB HDD and overnight it became disconnected. Instead of retesting all the blocks I deleted the tested blocks and restarted. This saved about 12 hours. It took about 30 hours to create the test blocks and 15 hours to check them.

After a few hours it finished and was well. However it had this odd message.

WARNING: Not all F3 files in the range 1 to 9223372036854775807 are available


./f3read /media/user/MP3_4
.
.
Validating file 1739.h2w ... 2097152/ 0/ 0/ 0
Validating file 1740.h2w ... 2097152/ 0/ 0/ 0
Validating file 1741.h2w ... 876912/ 0/ 0/ 0

Data OK: 111.42 GB (233660784 sectors)
Data LOST: 0.00 Byte (0 sectors)
Corrupted: 0.00 Byte (0 sectors)
Slightly changed: 0.00 Byte (0 sectors)
Overwritten: 0.00 Byte (0 sectors)
WARNING: Not all F3 files in the range 1 to 9223372036854775807 are available
Average reading speed: 34.79 MB/s


Sometime I'll test with f3 6.0

exFat partiton of 64GB microSD fwrite put data at low speeds

Hi

I 've tested a 64GB microSD formated with exFAT partition and when I use the
H2TESTW it writes at more than 10MB/s
while fwrite to the same microSD at the same computer writes to a painful 212KB/s.

Previously I use it with another 32GB microSD with FAT partition and it writes at 9.3MB/s

f3fix breaks when sector size is not 512

I run log-f3wr and f3fix (last-sec is manually caculated from f3read info) as follows on a fake device:

$ sudo ./f3fix --last-sec=6943152 /dev/sdb
F3 fix 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Drive `/dev/sdb' was successfully fixed
$ sudo mkfs.vfat /dev/sdb1
mkfs.fat 3.0.26 (2014-03-07)
$ PATH=$PATH:./ log-f3wr 1.log /media/gumble/00C9-C1CC
......
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
Validating file 2.h2w ... 2097152/        0/      0/      0
Validating file 3.h2w ... 2097152/        0/      0/      0
Validating file 4.h2w ... 1509552/   587600/      0/      0
Validating file 5.h2w ...       0/  2097152/      0/      0
Validating file 6.h2w ...       0/  2097152/      0/      0
Validating file 7.h2w ...       0/  1285664/      0/      0

  Data OK: 3.72 GB (7801008 sectors)
Data LOST: 2.89 GB (6067568 sectors)
           Corrupted: 2.89 GB (6067568 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 9.82 MB/s
$ LANGUAGE='en_US.UTF-8' sudo fdisk -l /dev/sdb
Note: sector size is 1024 (not 512)

Disk /dev/sdb: 33.4 GB, 33431748608 bytes
49 heads, 49 sectors/track, 13597 cylinders, total 32648192 sectors
Units = sectors of 1 * 1024 = 1024 bytes
Sector size (logical/physical): 1024 bytes / 1024 bytes
I/O size (minimum/optimal): 1024 bytes / 1024 bytes
Disk identifier: 0x00016426

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048     6943152     6941105    b  W95 FAT32

So the fixed partition is twice as large as the desired size.

The f3probe also fails:

$ sudo ./f3probe /dev/sdb
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

f3probe: libdevs.c:324: read_all: Assertion `(*__errno_location ()) == 5' failed.

The device is a music player, so its cache may not be cleared until it runs out of its battery.
The first and second run (after unplug and plug) of f3read is the same:

                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
Validating file 2.h2w ... 2097152/        0/      0/      0
Validating file 3.h2w ... 2097152/        0/      0/      0
Validating file 4.h2w ...  651696/  1445456/      0/      0
Validating file 5.h2w ...       0/  2097152/      0/      0
Validating file 6.h2w ...       0/  2097152/      0/      0
Validating file 7.h2w ...       0/  2097152/      0/      0
Validating file 8.h2w ...       0/  2097152/      0/      0
Validating file 9.h2w ...       0/  2097152/      0/      0
Validating file 10.h2w ...       0/  2097152/      0/      0
Validating file 11.h2w ...       0/  2097152/      0/      0
Validating file 12.h2w ...       0/  2097152/      0/      0
Validating file 13.h2w ...       0/  2097152/      0/      0
Validating file 14.h2w ...       0/  2097152/      0/      0
Validating file 15.h2w ...       0/  2097152/      0/      0
Validating file 16.h2w ...       0/  2097152/      0/      0
Validating file 17.h2w ...       0/  2097152/      0/      0
Validating file 18.h2w ...       0/  2097152/      0/      0
Validating file 19.h2w ...       0/  2097152/      0/      0
Validating file 20.h2w ...       0/  2097152/      0/      0
Validating file 21.h2w ...       0/  2097152/      0/      0
Validating file 22.h2w ...       0/  2097152/      0/      0
Validating file 23.h2w ...       0/  2097152/      0/      0
Validating file 24.h2w ...       0/  2097152/      0/      0
Validating file 25.h2w ...       0/  2097152/      0/      0
Validating file 26.h2w ...       0/  2097152/      0/      0
Validating file 27.h2w ...       0/  2097152/      0/      0
Validating file 28.h2w ...  843712/   440160/      0/      0

  Data OK: 3.71 GB (7786864 sectors)
Data LOST: 23.90 GB (50120112 sectors)
           Corrupted: 23.90 GB (50120112 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 11.87 MB/s

f3probe different result on USB and non-USB

Recently there was a change to allow non-USB devices to use f3probe, by using --reset-type=2. This is from what I understand.

However the result on the old reliable USB reader says counterfeit (/dev/sdg), while the internal SD reader says "real thing" (/dev/mmcblk0).

Build revision:

commit b7aa61bf154b238962b2d55a29bad19ca4ba60a7 (HEAD -> master, origin/master, origin/HEAD)
Author: Michel Machado <[email protected]>
Date:   Fri Dec 22 14:16:03 2017 -0500
# ./f3probe /dev/sdg 
F3 probe 7.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Probe finished, recovering blocks... Done

Bad news: The device `/dev/sdg' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=8388607 /dev/sdg

Device geometry:
	         *Usable* size: 4.00 GB (8388608 blocks)
	        Announced size: 59.62 GB (125042688 blocks)
	                Module: 64.00 GB (2^36 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1.02s
# ./f3probe --reset-type=2 /dev/mmcblk0 
F3 probe 7.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Probe finished, recovering blocks... Done

Good news: The device `/dev/mmcblk0' is the real thing

Device geometry:
	         *Usable* size: 59.62 GB (125042688 blocks)
	        Announced size: 59.62 GB (125042688 blocks)
	                Module: 64.00 GB (2^36 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 14'17"

If the USB reader is really wrong and the SD card it not a counterfeit, then I may have returned some sane SD cards in the past...

In order to check the result, I'm going to run a f3write on the internal reader...

Add more verbose output to f3probe

I'm currently testing a 64GB USB stick which I recently received as part of a RMA.

Now running latest f3probe from Github, but apart from the header message there is nothing else it displays, seems to be stuck (?).

However, running f3probe with strace shows me a lot of seek/read/write calls to the device ...so I'm not sure if f3probe hangs or actually does its job ...so a bit more verbose messages would be nice in that regard.

Makefile: gcc uses "-pedantic" not "-Wpedantic"

As the title says, the Makefile sets in CFLAGS the parameter "-Wpedantic", which gcc does not know (at least my 4.7.3 on Gentoo Linux). The correct parameter would be "-pedantic" (i.e. without "W").

For Linux systems, it should not be necessary to set CC, as it is correctly set by the environment. For both CC and CFLAGS you should use '?=' for the assignment instead of just '='. This way, those variables can be easily set from the outside (important for package builders) without patching the Make file. See the end of section 6.2 in GNU make's documentation for details.

f3probe reports fake card as real

I recently purchased a fake Samsung 32gb class 10 micro sdhc card off of ebay. It passes f3probe but I believe it is fake because:

  1. It fails h2testw and f3write/read
  2. Google results for the serial number printed on it: MMB3DO8BUACA
  3. The package says made in Korea; chip says made in Taiwan
  4. The cid reads 0000000000000000000000375600ea00 on my phone; in particular the manufacturer id is 0x00.
  5. When I submitted a return request through ebay the seller refunded my payment immediately with no message at all, let alone asking me to ship it back.

Outputs, snipping the boring bits:

h2testw:
Warning: Only 31982 of 31983 MByte tested.
The media is likely to be defective.
3.8 GByte OK (8099392 sectors)
27.3 GByte DATA LOST (57399744 sectors)
Details:0 KByte overwritten (0 sectors)
0 KByte slightly changed (< 8 bit/sector, 0 sectors)
27.3 GByte corrupted (57399744 sectors)
0 KByte aliased memory (0 sectors)
First error at offset: 0x00000000ea3e4000
Expected: 0x00000000ea3e4000
Found: 0x0000000000000000
H2testw version 1.3
Writing speed: 1.52 MByte/s
Reading speed: 9.98 MByte/s
H2testw v1.4

f3write:
Free space: 29.69 GB
Creating file 0001.fff ... OK!
[snip]
Creating file 0030.fff ... OK!
Free space: 0.00 Byte
Average writing speed: 1.67 MB/s

f3read:
SECTORS ok/corrupted/changed/overwritten
Validating file 0001.fff ... 0/ 2097152/ 0/ 0
[snip]
Validating file 0004.fff ... 0/ 2097152/ 0/ 0
Validating file 0005.fff ... 201889/ 1895263/ 0/ 0
Validating file 0006.fff ... 0/ 2097152/ 0/ 0
[snip]
Validating file 0017.fff ... 0/ 2097152/ 0/ 0
Validating file 0018.fff ... 215713/ 1881439/ 0/ 0
Validating file 0019.fff ... 0/ 2097152/ 0/ 0
[snip]
Validating file 0023.fff ... 0/ 2097152/ 0/ 0
Validating file 0024.fff ... 1937192/ 159960/ 0/ 0
Validating file 0025.fff ... 2097152/ 0/ 0/ 0
Validating file 0026.fff ... 2097152/ 0/ 0/ 0
Validating file 0027.fff ... 1311228/ 785924/ 0/ 0
Validating file 0028.fff ... 0/ 2097152/ 0/ 0
Validating file 0029.fff ... 0/ 2097152/ 0/ 0
Validating file 0030.fff ... 0/ 1452776/ 0/ 0

Data OK: 3.75 GB (7860326 sectors)
Data LOST: 25.94 GB (54409858 sectors)
Corrupted: 25.94 GB (54409858 sectors)
Slightly changed: 0.00 Byte (0 sectors)
Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 17.74 MB/s

f3probe:
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.
Please unplug and plug back the USB drive. Waiting... Thanks
Please unplug and plug back the USB drive. Waiting... Thanks
Please unplug and plug back the USB drive. Waiting... Thanks
Please unplug and plug back the USB drive. Waiting... Thanks
Please unplug and plug back the USB drive. Waiting... Thanks
CAUTION CAUTION CAUTION
No more resets are needed, so do not unplug the drive
Probe finished, recovering blocks... Done
WARNING: device /dev/sdc' moved to/dev/sdd' due to the resets
Good news: The device `/dev/sdd' is the real thing
Device geometry:
Real size: 31.25 GB (8192000 blocks)
Announced size: 31.25 GB (8192000 blocks)
Module: 32.00 GB (2^35 Bytes)
Block size: 4.00 KB (2^12 Bytes)
Last good sector: 65535999

Probe time: 25.46 seconds
Probe read op: count=337, total time=2.33s, avg op time=6.91ms
Probe write op: count=317, total time=2.16s, avg op time=6.82ms
Probe reset op: count=5, total time=20.97s, avg op time=4194.01ms

Running the current version at https://github.com/AltraMayor/f3/archive/master.zip says pretty much the same thing, except after 8 resets I have

Device geometry:
Real size: 31.25 GB (65536000 blocks)
Announced size: 31.25 GB (65536000 blocks)
Module: 32.00 GB (2^35 Bytes)
Physical block size: 512.00 Byte (2^9 Bytes)

I'm not sure what additional information you need but here's a
$ uname -a
Linux ray.home 3.18.7-100.fc20.x86_64 #1 SMP Wed Feb 11 19:01:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
just for kicks.

f3probe and SD Card

Hello

Thank you for putting the f3 suite on the net.
It compliled without anay probleme on my system running Lubuntu version 14.10.
However I have a question.
I used f3write/f3read to confirm that the card I have got is a fake SD card.
But when running F3probe I get the following message:

F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.
Device `/dev/mmcblk0' is not backed by a USB device
Application cannot continue, finishing...

Does it mean f3probe is made only for USB stick or am I missing something ?

I am looking forward to reading you

RB

Assertion `left_pos < right_pos' failed.

Compilation worked fine

$ make experimental
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb   -c -o libutils.o libutils.c
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb   -c -o libdevs.o libdevs.c
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb   -c -o libprobe.o libprobe.c
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb   -c -o f3probe.o f3probe.c
cc -o f3probe libutils.o libdevs.o libprobe.o f3probe.o -lm -ludev
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb   -c -o f3brew.o f3brew.c
cc -o f3brew libutils.o libdevs.o f3brew.o -lm -ludev
cc -std=c99 -Wall -Wextra -pedantic -MMD -ggdb   -c -o f3fix.o f3fix.c
cc -o f3fix libutils.o f3fix.o -lparted

But getting the following error.

# ./f3probe --time-ops /dev/sdg
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.


f3probe: libprobe.c:747: probe_device: Assertion `left_pos < right_pos' failed.
Aborted (core dumped)

f3probe: device changing from sdb to sdc

The output below is from a build using the GIT repository.
I remove the device, /dev/sdb when requested and replace.
f3probe now looking for /dev/sdc when it is back active as /dev/sdb

derek@AMD64-Study:~/source/f3$ sudo ./f3probe /dev/sdb
F3 probe 5.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Please unplug and plug back the USB drive. Waiting... Thanks

f3probe: Can't REopen device `/dev/sdc': No medium found

argp change broke building on Mac

argp.h is a GLIBC-specific header and so f3 won't build on OS X (or presumably other non-GNU systems) since merging fb187b4c710714a56d74af8a50adccd6118445e7.

Rewinding to 599a79a7e4a81a89d3d41f0fb13120c3c8498e45 (prior to the merge) works fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.