fine for me.
Christoph P. Kukulies wrote:
Yesterday a major desaster happened: I stumbled across the power cable of my Dell Inspiron notebook. The notebook fell to the floor. FreeBSD was running at that time. Nothing seemed to got damaged, just a palm rest popped off.
Ah yes, the HD bay sprung off and in a moment of reflex I pushed it in again in the running system. After that I tried to mount the disk (which had not been mounted at that point of time). Anyway, trying to
# fsck_ffs /dev/ad2s1e ** /dev/ad2s1e Cannot find file system superblock
LOOK FOR ALTERNATE SUPERBLOCKS? [yn] y
32 is not a file system superblock 89808 is not a file system superblock 179584 is not a file system superblock 269360 is not a file system superblock 359136 is not a file system superblock 448912 is not a file system superblock 538688 is not a file system superblock 628464 is not a file system superblock 718240 is not a file system superblock 808016 is not a file system superblock
....
20813728 is not a file system superblock
20903504 is not a file system superblock
20993280 is not a file system superblock
21083056 is not a file system superblock
21172832 is not a file system superblock
21262608 is not a file system superblock
SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE
-b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE
SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck(8).
#
Any idea what I can do now?
I wrote a little program that opens /dev/ad2s1e
#include <stdio.h> #include <sys/param.h> #include <sys/stat.h> #include <sys/file.h> #include <sys/time.h> #include <sys/mount.h> #include <sys/resource.h> #include <sys/sysctl.h> #include <sys/disklabel.h>
#include <ufs/ufs/dinode.h>
#include <ufs/ufs/ufsmount.h>
#include <ufs/ffs/fs.h>
#include <fcntl.h> #include <ufs/ffs/fs.h> main(){ int fd; int k,i=0; int buf[512/(sizeof (int))]; if((fd=open("/dev/ad2s1e",O_RDONLY)) < 0) printf("error opening device\n"),exit(2); printf("opened device\n"); while(read(fd,buf,512)>0){ for(k=0;k<(512/(sizeof (int)));k++){ /*if(buf[k]==FS_UFS1_MAGIC) printf("UFS1 * %d\n",i),fflush(stdout); */ if(buf[k]==FS_UFS2_MAGIC) printf("UFS2 * %d\n",i),fflush(stdout); i++; } } }
I'm not sure whether my approach is correct. Anyway, the blocks I find with that method
aren't recognized as superblocks either.
-- Chris Christoph P. U. Kukulies kuku_at_kukulies.org _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"

