testdisk: "Warning: number of (heads/cylinder|sectors per track) mismatches 255 (FAT) != 64 (HD)"

You can ignore this warning as you don't have partition to recover.

Modern partionning software aligns partition to 1-MB boundaries. But a correct geometry is useful to recover lost partition when there were aligned to cylinder boundary.

It's the case for the second partition but it's not the case for the first one is aligned to a cylinder boundary (assuming 255 heads per cylinder and 63 sectors per cylinder, information recorded in the FAT32 boot sector).

So you can safely ignore this warning but it will be wrong to remove this warning from testdisk.


Short answer: Ignore the warnings or contact the program's author.

Long answer: Cylinder/head/sector (CHS) values have passed through several stages, from an accurate representation to a convenient fiction to an inconvenient fiction to worse than useless to abandoned. CHS values (as stored in the Master Boot Record, or MBR data structures) max out at about 8 GB, so CHS cannot represent any but the tiniest partitions on a modern disk. In fact, even many USB flash drives now exceed the CHS limitations! The newer GUID Partition Table (GPT) data structures don't even use CHS values, except on one area (the "protective MBR") that exists solely to signal to older software that it shouldn't mess with the disk -- and in practice, the CHS values used in the protective MBR are often completely bogus, by either MBR or GPT standards.

TestDisk is a useful tool, but I admit I haven't used it a lot. When I have used it, I've been appalled at its continuing use of CHS values in prominent locations of its user interface. This is pointless and potentially confusing. Most modern tools -- even tools for manipulating MBR disks -- today use logical block addressing (LBA) almost exclusively, or at least in preference to CHS addressing. LBA can handle up to 2^32 sectors on MBR disks, which works out to 2 TiB, given 512-byte sectors. On GPT disks, 64-bit LBA values are used, so the limit is 2^64 sectors (8 ZiB, assuming 512-byte sectors). Tools that write MBR data structures must continue to populate the CHS fields, but on disks over about 8 GB in size, those fields are likely to be maxed out or contain bogus values; there's simply no helping that fact on over-8GB disks.

As a practical matter, you should simply ignore TestDisk's warnings about CHS values unless you're using really ancient software (like very old versions of DOS). Asking TestDisk's authors to de-emphasize CHS in favor of LBA may be worth doing, too. If you want to eliminate the warnings, your only options are to convince TestDisk's authors to do this or to modify the software yourself.