On 02/08/19 15:35, Jeremie Courreges-Anglas wrote:

I think it's fair to give the user a chance to understand why
scan_ffs(8) won't help in this case.

ok?


--- scan_ffs.8.~1.16.~  Mon Mar 24 00:28:46 2008
+++ scan_ffs.8  Fri Feb  8 21:31:10 2019
@@ -136,6 +136,7 @@ you out of a jam when they happen.
  .Sh SEE ALSO
  .Xr disklabel 8
  .Sh BUGS
-It is not perfect, and could do a lot more things with date/time information
+It is not perfect, does not support FFS2 filesystems,
+and could do a lot more things with date/time information
  in the superblocks it finds, but this program has saved more than one butt,
  more than once.

Scan_ffs checks for the the magic number of the superblock.


--- scan_ffs.c  23 Nov 2015 19:19:30 -0000      1.21
+++ scan_ffs.c  9 Feb 2019 02:13:48 -0000
@@ -67,7 +67,8 @@ ufsscan(int fd, daddr_t beg, daddr_t end

                for (n = 0; n < (SBSIZE * SBCOUNT); n += 512){
                        sb = (struct fs*)(&buf[n]);
-                       if (sb->fs_magic == FS_MAGIC) {
+                       if (sb->fs_magic == FS_UFS1_MAGIC ||
+                           sb->fs_magic == FS_UFS2_MAGIC) {
                                if (flags & FLAG_VERBOSE)
                                        printf("block %lld id %x,%x size %d\n",
                                            (long long)(blk + (n/512)),
               sb->fs_magic == FS_UFS2_MAGIC) {
fixes it.

Reply via email to