Anyway to extract a large file from EXT2FS filesystem?
Stefan Krantz
s at ux.se
Tue Feb 17 05:04:09 PST 2004
> > > > > I would like to extract a large (11GB) tar file on an ext3 filesystem. But
> > > > > it shows only to be about 3gb large:
> > > > >
> > > > > yabba# ls -la pictures.tar
> > > > > -rw-r--r-- 1 root wheel 3317055488 Feb 15 19:03 pictures.tar
> > > > >
> > > > > Is there any possible way to extract the file?
> > > >
> > > > It shouldn't be appearing truncated. Are you certain that this size
> > > > is incorrect, and the file has a different size when viewed from
> > > > another OS?
> > >
> > > Yes. Yesterday I tested the archive with "tar tvf" (11gb) in
> > > Linux and it tested OK. In FBSD it says "unexpected EOF".
> > >
> > > If I could i would just boot linux and split the file. But I can nolonger
> > > boot linux =/ (migrated to fbsd 5.2 ;).
> >
> > I'm CC'ing tjr and bde, who might have some idea about the problem.
>
> Try this patch and let me know how it goes. You'll have to specify
> the file name of /sys/gnu/ext2fs/ext2_inode_cnv.c to patch(1) manually,
> then either buildkernel or rebuild only ext2fs.ko. If the file shows
> up with the correct size in a directory listing, make sure you can actually
> read data past 4 GB.
>
> ==== //depot/user/tjr/freebsd-tjr/src/sys/gnu/ext2fs/ext2_inode_cnv.c#1 - /p4/tjr/src/sys/gnu/ext2fs/ext2_inode_cnv.c ====
> @@ -77,6 +77,8 @@
> */
> ip->i_mode = ei->i_links_count ? ei->i_mode : 0;
> ip->i_size = ei->i_size;
> + if (S_ISREG(ip->i_mode))
> + ip->i_size |= ((u_int64_t)ei->i_size_high) << 32;
> ip->i_atime = ei->i_atime;
> ip->i_mtime = ei->i_mtime;
> ip->i_ctime = ei->i_ctime;
> @@ -112,6 +114,8 @@
> */
> ei->i_dtime = ei->i_links_count ? 0 : ip->i_mtime;
> ei->i_size = ip->i_size;
> + if (S_ISREG(ip->i_mode))
> + ei->i_size_high = ip->i_size >> 32;
> ei->i_atime = ip->i_atime;
> ei->i_mtime = ip->i_mtime;
> ei->i_ctime = ip->i_ctime;
This patch worked great!
yabba# ls -l pictures.tar
-rw-r--r-- 1 root wheel 11906990080 Feb 15 19:03 pictures.tar
and extracting the file worked aswell.
Thanks a million!
Regards,
Stefan
More information about the freebsd-questions
mailing list