Use "fdisk -lu" to list the start and end sectors instead of cylinder boundaries Use this especially for the start of the first partition (which usually starts on sector 63 for Linux/XP a/nd 1024 for Vista) and the partitions that don't start or stop on cylinder boundaries.
Deleting the partitions partitions and recreating them may have made matters worse. Since you didn't backup the data, you probably want to create an image backup of the filesystem or disk device onto an external drive, and use the image file for recovering files. Utilities that might alter the filesystem could make matters worse.
Listing "fdisk -lu /dev/sda" for the current partitioning will help with the next suggestion:
Use losetup to attach /dev/sda to a loop device with an offset . Then use "file" to examine the device.
sudo /sbin/losetup -fs /dev/sda5 -o $((512*<starting sector>))
# If the particular loop device isn't printed, use the next command to learn which loop device was used.
sudo /sbin/losetup -a
# assuming /dev/loop0
sudo file -s /dev/loop0
---
If the starting sector may have changed during the resizing or repartitioning, you can use different offsets when attaching a loop device.
Here is an example using a partition on my laptop:
Code:
sudo /sbin/fdisk -lu /dev/sda
Disk /dev/sda: 200.0 GB, 200049647616 bytes
255 heads, 63 sectors/track, 24321 cylinders, total 390721968 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xd1b42421
Device Boot Start End Blocks Id System
/dev/sda1 2048 3074047 1536000 7 HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2 3084480 150577244 73746382+ 7 HPFS/NTFS
/dev/sda3 * 150577245 372659804 111041280 f W95 Ext'd (LBA)
/dev/sda4 372666368 390721535 9027584 17 Hidden HPFS/NTFS
/dev/sda5 150577371 154786274 2104452 82 Linux swap / Solaris
/dev/sda6 154786338 216347354 30780508+ 83 Linux
/dev/sda7 216347418 372659804 78156193+ 83 Linux
for (( num=216347355;num<216347500;num++ )); do
echo -en "$num\t"
sudo /sbin/losetup "$loopdev" /dev/sda -o $((512*$num))
sudo file -s "$loopdev"
sudo /sbin/losetup -d "$loopdev"done | grep -v ": data" >~/searchresults
...
216347415 /dev/loop0: DOS executable (device driver)
216347416 /dev/loop0: DOS executable (device driver)
216347417 /dev/loop0: DOS executable (device driver)
216347418 /dev/loop0: Linux rev 1.0 ext3 filesystem data (needs journal recovery) (large files)
216347426 /dev/loop0: shared library
216347466 /dev/loop0: ACB archive data
216347474 /dev/loop0: ACB archive data
216347482 /dev/loop0: ACB archive data
216347490 /dev/loop0: ACB archive data
216347498 /dev/loop0: ACB archive data
This may help you locate the exact sector where the XFS filesystem started. If you find it, use "fdisk -b512" to start your /dev/sda6 partition.
Reading the XFS manpage, it says that there are three groups to the filesystem, but the log part is contained in the data group when using fsck.xfs. Also each data group starts with the superblock. Subsequent data groups start with a copy. Unfortunately, mounting xfs doesn't have a "sb=" option according to the mount manpage.
Some of the other xfs_* utilities may help you as well.
Good Luck.