hasse69 / rar2fs Goto Github PK
View Code? Open in Web Editor NEWFUSE file system for reading RAR archives
Home Page: https://hasse69.github.io/rar2fs/
License: GNU General Public License v3.0
FUSE file system for reading RAR archives
Home Page: https://hasse69.github.io/rar2fs/
License: GNU General Public License v3.0
Explaination how to add rar2fs to fstab:
create /sbin/mount.rar2fs:
#!/bin/bash
OPTIONS="`echo $* | sed 's/,--/ --/g'`"
sudo rar2fs --seek-length=1 $OPTIONS
In fstab:
/mnt/files /mnt/rar rar2fs ro,noatime,--seek-length=1 0 0
Original issue reported on code.google.com by irbanur
on 2011-06-21
Running a Windows 2008r2 server with a virtualbox guest (Ubuntu 14 server) running rar2fs.
Plex media server is running on the windows 2008r2 server and using the rar2fs server to unpack my movies and series.
Having issue with rar2fs getting following message after X amount of data transfered:
rar2fs login: Out of memory: Kill process 1046 (rar2fs) score 858 or sacrifice child
Killed process 1046(rar2fs) total-vm:2409464kB anon-rss:1760124kB, file-rss:0kB
When this happens i must run umount -l and remount it again.
I'm running 2 mounts from rar2fs, one with movies (with --seek-length=1) that has no issue so far.
The other one(with the issue) does not have --seek-length=1 since it can't find all the rar files with it.
Tried increasing the memory from 512mb to 2gb, all it did was postpone the error bit longer - still happens thou.
Original issue reported on code.google.com by [email protected]
on 2014-09-05
What steps will reproduce the problem?
What is the expected output? What do you see instead?
At least the rest of the directory. I’m not actually interested in this particular Rar file.
Instead, it crashes at rar2fs.c line 2156 (v1.18.0), in the listrar() function, at the second call to strdup(Password). The Password parameter is a null pointer. I have not specified any passwords anywhere, but I don’t think it should crash because of this.
What version of the product are you using? On what operating system?
1.17.2 and 1.18.0, Arch Linux
Original issue reported on code.google.com by vadmium
on 2013-10-10
i defined and tried 2 diffrent versions of fusefs (fuse-2.8.0,fuse-2.8.5)
but im getting always this error:
make
g++ -g -rdynamic -fno-omit-frame-pointer -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DRARDLL -MD -I./unrar -c dllext.cpp
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c configdb.c
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c filecache.c
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c iobuffer.c
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c sighandler.c
sighandler.c: In function 'stack_trace':
sighandler.c:59: error: 'REG_EIP' undeclared (first use in this function)
sighandler.c:59: error: (Each undeclared identifier is reported only once
sighandler.c:59: error: for each function it appears in.)
make: *** [sighandler.o] Error 1
Original issue reported on code.google.com by pingu5400
on 2011-05-29
gcc reports some warnings...
gcc -std=gnu99 -o mkr2i mkr2i.o -rdynamic -L../unrar -ldl -lrt
rar2fs.c: In function ‘lrelease’:
rar2fs.c:1248:9: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘uint64_t’ [-Wformat=]
printd(3, "(%05d) %s [%-16p]\n", getpid(), "FREE", fi->fh);
^
mv -f .deps/filecache.Tpo .deps/filecache.Po
mv -f .deps/iobuffer.Tpo .deps/iobuffer.Po
rar2fs.c: In function ‘rar2_release’:
rar2fs.c:3745:9: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘uint64_t’ [-Wformat=]
printd(3, "(%05d) %s [%-16p]\n", getpid(), "RELEASE", fi->fh);
^
mv -f .deps/optdb.Tpo .deps/optdb.Po
rar2fs.c:3797:17: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘uint64_t’ [-Wformat=]
printd(3, "(%05d) %s [%-16p]\n", getpid(), "FREE", fi->fh);
^
That occurs because file handle(fh) is just integer, but uses "pointer" format to print that.
This patch can fix this. It just replaces "%p" to PRIX64 to ensure hex output - fh declares as uint64_t in fuse_common.h on my system.
Original issue reported on code.google.com by jyhpsycho
on 2014-02-23
Im trying to install rar2fs, and have done and install whats needed.
But when I do 'make' after './configure' I get this error:
Makefile:532: recipe for target 'dllext.o' failed
make: *** [dllext.o] Error 1
Been trying to google it, but cant find any solutions.
Any help would be greatly appriciated.
madc0w
I got a crash in rar2fs when scanning my media directory with plex,
I have tried this version 1.16 and trunk with unrar 4.0.7 and 4.2.4 both dies on the same file:
#sudo -u plex rar2fs -o allow_other /mnt/data1 /mnt/data1_rar2fs
LOOKUP /movies/english/In.The.House.2012.720p.BluRay.x264-MELiTE/m-ith-720p.sfv
getattr /movies/english/In.The.House.2012.720p.BluRay.x264-MELiTE/m-ith-720p.sfv
NODEID: 409
unique: 876, success, outsize: 144
unique: 877, opcode: READDIR (28), nodeid: 402, insize: 80, pid: 6829
unique: 877, success, outsize: 16
unique: 878, opcode: RELEASEDIR (29), nodeid: 402, insize: 64, pid: 0
unique: 878, success, outsize: 16
unique: 879, opcode: LOOKUP (1), nodeid: 3, insize: 103, pid: 6829
LOOKUP /movies/english/Iron.Man.Rise.Of.Technovore.2013.720p.BluRay.x264-UNTOUCHABLES
getattr /movies/english/Iron.Man.Rise.Of.Technovore.2013.720p.BluRay.x264-UNTOUCHABLES
NODEID: 410
unique: 879, success, outsize: 144
unique: 880, opcode: OPENDIR (27), nodeid: 410, insize: 48, pid: 6829
unique: 880, success, outsize: 32
unique: 881, opcode: READDIR (28), nodeid: 410, insize: 80, pid: 6829
readdir[0] from 0
Got signal 11, faulty address is 0x0x8, from 0x0x407bd9
rar2fs() [0x407bd9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x7effd611bcb0]
/lib/x86_64-linux-gnu/libc.so.6(+0x89101) [0x7effd5dd6101]
/lib/x86_64-linux-gnu/libc.so.6(__strdup+0x16) [0x7effd5dd5d66]
rar2fs() [0x40dad9]
rar2fs() [0x40ea6b]
rar2fs() [0x40edc8]
/lib/x86_64-linux-gnu/libfuse.so.2(fuse_fs_readdir+0x96) [0x7effd6a95986]
/lib/x86_64-linux-gnu/libfuse.so.2(+0xcbd8) [0x7effd6a95bd8]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x14666) [0x7effd6a9d666]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x15947) [0x7effd6a9e947]
/lib/x86_64-linux-gnu/libfuse.so.2(fuse_session_loop+0x9f) [0x7effd6a9b1af]
/lib/x86_64-linux-gnu/libfuse.so.2(fuse_loop+0x1b8) [0x7effd6a931d8]
rar2fs() [0x4088c3]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7effd6113e9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7effd5e40cbd]
Original issue reported on code.google.com by [email protected]
on 2013-04-15 18:03:28
What steps will reproduce the problem?
Compressed archives will not playback properly. A similar setup exported/mounted using CIFS works as expected. Non-compressed archives (store) also works fine when NFSv2/v3 is used. Using rar2fs purely on the client side also works reliable.
The problem is related to how NFS is interacting with the file system. When used remotely rar2fs needs to handle the stateless access patterns from NFS. When rar2fs is used locally this interaction is avoided.
Original issue reported on code.google.com by hasse69
on 2011-02-04
Makefile.am is trying to remove /sbin/mount.rar2fs without $(DESTDIR) and thus, package managers will of course forbid this and throw an error
Only $(DESTDIR) can be worked on, and then the files get merged to the actual file system
Also, the symlink creation in Makefile.am is wrong way around
The attached patch fixes things for me (and Gentoo and any distribution using sandbox in their packaging, so pretty much any)
Original issue reported on code.google.com by ssuominen.private
on 2013-03-13
Hello!
I am first time user and I am having some trouble with playback in Plex using rar2fs - the playback doesn't start at all.
I also tried downloading a media file from within Plex and got a speed of ~90kb/s (internal network), which seems very low to me.
Any troubleshooting I can do? Is there anything I have missed?
rar2fs -V
rar2fs v1.21.0 (DLL version 7) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
Compiled using unrarsrc-5.3.8.tar.gz
.
Kernel: Linux server 4.2.0-18-generic
Dist: Ubuntu 15.10
CPU: Intel Core i7-4790K Quad-Core @ 4.0 GHz
Memory: 2 x 8GB DDR3 @ 1333 MHz
It seems afpd crashes when trying to access a rar2fs mount. This could be because apfd normaly tries
to created some osx related directories and files. Since the rar2fs is readonly this fails.
The thing is my os doesn't show it as read only.
I attached the rar2fs logfile running it with DEBUG=4 compile option.
Cheers,
Joris
Original issue reported on code.google.com by wiebel
on 2011-05-29
Hi,
I'm having a annoying problem, in which rar2fs stops reading den file after it has read the first rarfile part. So this means that only the first part is read. This could be 15MB. I did not have the problem prior updating to 1.22, yet I think the error is due to something in unrar. Anyways, here's the debug log if that can be helpful.
log: http://pastebin.com/SbVG480c
rar2fs -V
rar2fs v1.22.0 (DLL version 7) Copyright (C) 2009 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see http://www.gnu.org/licenses/ for details.
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19
unrar:
When trying to export a rar2fs filesystem via freebsd's kernel-nfsd I get:
Jun 2 00:27:58 collected mountd[14470]: getvfsbyname() failed for fusefs.rar2fs
Jun 2 00:27:58 collected mountd[14470]: can't export /mnt/RMedia
Jun 2 00:27:58 collected mountd[14470]: bad exports list line /mnt/RMedia -network 192.168.1 -mask 255.255.255.0
(that export line is correct, works for the original fs).
I think the first line is key here ;)
Original issue reported on code.google.com by wiebel
on 2011-06-01
I have some RAR archives that contains same path name in. When I mount this directory,
it exposes contents in one of their archives, not all archives... If it shows using one more
directory sturcture based on archive name, there's not any conflicts on it.
Here is an example. I know my english is poor, and I'm afraid that you may not understand
what I say above...
* Working Directory : /dev/shm/RARS
in /dev/shm/RARS/1.rar : DATA/1.txt, DATA/2.txt, DATA/4.txt
in /dev/shm/RARS/2.rar : DATA/1.txt, DATA/2.txt, DATA/3.txt
* Mount directory.
# rar2fs-read-only/rar2fs -o ro,allow_other /dev/shm/RARS 1/
* Current behavior:
# ls -l 1/DATA
total 12
-rw-r--r-- 1 root root 5 Feb 1 14:25 1.txt
-rw-r--r-- 1 root root 5 Feb 1 14:25 2.txt
-rw-r--r-- 1 root root 5 Feb 1 14:25 4.txt
- There's no contents in 2.rar.
* What it should be I think:
# ls -l 1
drwxr-xr-x 2 root root 4096 Feb 1 14:25 1
drwxr-xr-x 2 root root 4096 Feb 1 14:25 2
- Directory name is based on archive name.
# ls -l 1/1
drwxr-xr-x 2 root root 4096 Feb 1 14:25 DATA
# ls -l 1/1/DATA
-rw-r--r-- 1 root root 5 Feb 1 14:25 1.txt
-rw-r--r-- 1 root root 5 Feb 1 14:25 2.txt
-rw-r--r-- 1 root root 5 Feb 1 14:25 4.txt
# ls -l 1/2/DATA
-rw-r--r-- 1 root root 5 Feb 1 14:25 1.txt
-rw-r--r-- 1 root root 5 Feb 1 14:25 2.txt
-rw-r--r-- 1 root root 5 Feb 1 14:25 4.txt
Original issue reported on code.google.com by jyhpsycho
on 2014-02-01
Setup a directory with the following structure. Dir called TV and inside TV have subdirectories and inside those subdirectories have symlinks to directories that contain directories of rar files.
The symlinks appear when mounted but they are not actually mounted, they appear like symlinks to directories with rarfiles that aren't mounted.
rar2fs v1.17.2
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19
Linux GXT3 3.9-1-amd64 # 1 SMP Debian 3.9.8-1 x86_64 GNU/Linux
Original issue reported on code.google.com by delf.eldkraft
on 2013-07-24
rar2fs on /mnt/BackupU type fuse.rar2fs (ro,nosuid,nodev,allow_other,default_permissions)
Any tips would be appreciated. Archive attributes on file are -rw-r-----
Details: RAR 4, volume
Attributes on a working dir (mounted as the parent user) are -rw-rw-rw-.
Original issue reported on code.google.com by kyle.leet
on 2015-02-09
What steps will reproduce the problem?
Just execute ls. Testing condition below.
What is the expected output? What do you see instead?
That should be print archive content. But it says :
ls: reading directory TEST/: Software caused connection abort
What version of the product are you using? On what operating system?
openSUSE 13.1 x86-64, unrar 5.0.14
# rar2fs -V
rar2fs v1.19.8 (DLL version 6) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19
Please provide any additional information below.
I created some hard disk partition to store archive file itself. Its size is about 130GiB, contains 6 files which sizes are 20 ~ 23 GiB and some RR. Linux treats partition device almost same as regular file, thus this should be work.
Instruction step :
# rar2fs -o ro,allow_other /dev/sdb2 TEST/
Debug messages:
mounting file system on /dev/shm/WORK/TEST
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
rar2_init()
INIT: 7.19
flags=0x00000010
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
unique: 1, success, outsize: 40
unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 17161
getattr /
rar2_getattr2() /
MISS /
STAT retrieved for /dev/
unique: 2, success, outsize: 120
unique: 3, opcode: GETXATTR (22), nodeid: 1, insize: 65, pid: 17161
getxattr / security.selinux 255
rar2_getxattr() /
unique: 3, error: -61 (No data available), outsize: 16
unique: 4, opcode: GETXATTR (22), nodeid: 1, insize: 72, pid: 17161
getxattr / system.posix_acl_access 0
rar2_getxattr() /
unique: 4, error: -61 (No data available), outsize: 16
unique: 5, opcode: GETXATTR (22), nodeid: 1, insize: 73, pid: 17161
getxattr / system.posix_acl_default 0
rar2_getxattr() /
unique: 5, error: -61 (No data available), outsize: 16
unique: 6, opcode: OPENDIR (27), nodeid: 1, insize: 48, pid: 17161
opendir flags: 0x18800 /
rar2_opendir() /
opendir[140122905549680] flags: 0x18800 /
unique: 6, success, outsize: 32
unique: 7, opcode: READDIR (28), nodeid: 1, insize: 80, pid: 17161
readdir[140122905549680] from 0
rar2_readdir2()
listrar() / arch=/dev/sdb2
Looking up /Vol.1.rar in cache
Adding /Vol.1.rar to cache
23501538393 byte RAR file /Vol.1.rar found in archive /dev/sdb2
Looking up /Vol.2.rar in cache
Adding /Vol.2.rar to cache
22110405466 byte RAR file /Vol.2.rar found in archive /dev/sdb2
Got signal 11, faulty address is 0x0x7f766826b750, from 0x0x4188c0
../rar2fs-1.19.8/rar2fs() [0x4188c0]
/lib64/libpthread.so.0(+0xf9f0) [0x7f70ee84d9f0]
/lib64/libc.so.6(strnlen+0x44) [0x7f70ee5120c4]
/lib64/libc.so.6(fmemopen+0x6c) [0x7f70ee50335c]
../rar2fs-1.19.8/rar2fs() [0x41d086]
../rar2fs-1.19.8/rar2fs() [0x41ea48]
../rar2fs-1.19.8/rar2fs() [0x420c59]
../rar2fs-1.19.8/rar2fs(fuse_fs_readdir+0x82) [0x42bc42]
../rar2fs-1.19.8/rar2fs() [0x42bdcc]
../rar2fs-1.19.8/rar2fs() [0x4326f6]
../rar2fs-1.19.8/rar2fs() [0x4338a6]
../rar2fs-1.19.8/rar2fs(fuse_session_loop+0xac) [0x4302dc]
../rar2fs-1.19.8/rar2fs(fuse_loop+0x1e8) [0x428928]
../rar2fs-1.19.8/rar2fs() [0x424f21]
/lib64/libpthread.so.0(+0x80db) [0x7f70ee8460db]
/lib64/libc.so.6(clone+0x6d) [0x7f70ee57690d]
[*] Process terminated at this point.
I think it causes some memory crash...
There's no problem when mounting file in filesystem - I mean mount with "rar2fs -o ro,allow_other Vols.rar TEST/".
Original issue reported on code.google.com by jyhpsycho
on 2014-02-21 11:39:03
Finally I can reproduce this issue, then report it.
I guessed some special characters(CJK characters or non-alphanumerical symbols) causes this issue before, but it's not true. It occurs with compressed file which has very long pathname(over 256(?) bytes total). It just easily find out when using CJK characters which consumes 3 byte(in UTF-8, most of character encodings on linux terminal, file name of filesystem, etc.) per each character.
mkdir W
mkdir -p 'base_dir_for_very_long_file_paths/it_has_very_long_directory_name_for_testing_rar2fs_functionality/this_is_third_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters/this_is_fourth_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters'
dd if=/dev/zero of='base_dir_for_very_long_file_paths/it_has_very_long_directory_name_for_testing_rar2fs_functionality/this_is_third_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters/this_is_fourth_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters/this_is_file_for_testing' bs=1M count=16
rar a -m5 -ma5 TEST.rar base_dir_for_very_long_file_paths
rar2fs -o ro,allow_other --flat-only --show-comp-img TEST.rar W
diff -ur W/base_dir_for_very_long_file_paths base_dir_for_very_long_file_paths
# ./rar2fs-master/rar2fs --version
rar2fs v1.21.1 (DLL version 7) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
Instructions for preparing provided sample:
mkdir TEST_DIR O
mkdir TEST_DIR/DIR{1..3}
mkdir TEST_DIR/DIR1/{A,B}
mkdir TEST_DIR/DIR2/C
dd if=/dev/urandom of=TEST_DIR/DIR1/A/FILE1 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR1/A/FILE2 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR1/B/FILE3 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR2/C/FILE4 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR2/FILE5 bs=4k count=16
rar a -m0 -ma5 -v16000b -rr5 -qo+ TEST.rar TEST_DIR
./rar2fs-master/rar2fs -o ro,allow_other --flat-only --show-comp-img TEST.part01.rar O
diff -ur TEST_DIR O/TEST_DIR
Note that it uses -qo+ option. It stores 'Quick open information' for all files in RAR archive. With -qo- option, it doesn't occur.
Above instruction uses -rr5 option, but recovery record is not related on this issue. Same result without it.
NOTE : Directory hierarchy building provided sample is created on tmpfs; It returns the file list as reverse order of being created. It's not important thing for this issue, but one may confuse that it does not store files as typical order.
rar2fs does not currently build against the unrarsrc-5.0.0 package.
Due to this being a major release update there are lot of changes made to the source code that is incompatible with the libunrar extensions.
Original issue reported on code.google.com by hasse69
on 2013-04-29
My main purpose for trying out rar2fs is to be enjoy media without the need of unpacking it. I would mount a whole directory full of archives and media into rar2fs and see it as a DLNA server's root folder.
This works perfectly, however any new media put into the folder is not picked up by the DLNA sever. The folder is watched with inotify. I need to rebuild the media database manually every time there is a change.
I have looked into the issue as to the reason and fuse does not and will not support forwarding notifications on the src to the mounted target directory. This is understandable as the mount does not need to be on a local filesystem.
So we are left with setting a watch on the mount and directly moving files there instead of the src. This also works... however moving files there is painstakingly slow as we do a copy instead of a mv I presume. Is there any way of speeding things up if a file move is from the same localdisk to the same localdisk? Or is this out of our hands and a fuse thing?
Thanks
Original issue reported on code.google.com by fafarago
on 2014-03-07
What steps will reproduce the problem?
What is the expected output? What do you see instead?
It must be identical, but sometimes it doesn't.
Difference location is vary - checked via cmp.
What version of the product are you using? On what operating system?
openSUSE 13.1 x86-64. unrar 5.0.14
# ./rar2fs -V
rar2fs v1.19.3-svnr438 (DLL version 6) Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
using FUSE kernel interface version 7.19
Please provide any additional information below.
I think that doesn't occur with archive that created by sotred mode(-m0). Not sure because I perform this test only 2 times with stored data...
Original issue reported on code.google.com by jyhpsycho
on 2014-01-30
What steps will reproduce the problem?
Step-by-step instructions below.
What is the expected output? What do you see instead?
# dd if=1/test/winrar-x64-501.exe bs=512 count=1 status=none | hexdump
0000000 b394 4d40 0220 0b03 0500 1000 0000 0000
0000010 0080 0600 6574 7473 312f 030a c002 fb0c
0000020 5106 cf1b b301 782a 1ecb 0302 000b 0005
0000030 0010 0000 8000 0000 7404 7365 0a74 0203
0000040 a8ae 05bf 1b51 01cf a891 29a9 030e ca06
0000050 0000 00ca 8000 0000 5102 7d4f ce90 45aa
0000060 ce00 7183 4e40 33f3 3b49 0302 ee0b f181
0000070 0080 d804 f8d8 0080 6a20 71a2 80c6 0025
0000080 7419 7365 2f74 2f31 6977 726e 7261 782d
0000090 3436 352d 3130 652e 6578 030a 8002 6e42
00000a0 6ca8 ceee 1d01 5677 0351 0405 0000
00000ad
dd if=1/test/1/winrar-x64-501.exe bs=512 count=1 status=none | hexdump
0000000 5a4d 0090 0003 0000 0004 0000 ffff 0000
0000010 00b8 0000 0000 0000 0040 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0000 0000 0000 0000 0000 00e8 0000
0000040 1f0e 0eba b400 cd09 b821 4c01 21cd 6854
0000050 7369 7020 6f72 7267 6d61 6320 6e61 6f6e
0000060 2074 6562 7220 6e75 6920 206e 4f44 2053
0000070 6f6d 6564 0d2e 0a0d 0024 0000 0000 0000
0000080 54aa 22ef 35ee 7181 35ee 7181 35ee 7181
0000090 4de7 7114 35e3 7181 4de7 7102 3594 7181
00000a0 4de7 7106 35ef 7181 4de7 7112 35fb 7181
00000b0 35ee 7180 351c 7181 4de7 7105 358b 7181
00000c0 4de7 7113 35ef 7181 4de7 7115 35ef 7181
00000d0 4de7 7110 35ef 7181 6952 6863 35ee 7181
00000e0 0000 0000 0000 0000 4550 0000 8664 0005
00000f0 ee85 529a 0000 0000 0000 0000 00f0 0023
0000100 020b 0009 ac00 0002 2a00 0003 0000 0000
0000110 1b6c 0002 1000 0000 0000 4000 0001 0000
0000120 1000 0000 0200 0000 0005 0002 0000 0000
0000130 0005 0002 0000 0000 1000 0006 0400 0000
0000140 1a2b 001f 0002 8100 0000 0010 0000 0000
0000150 1000 0000 0000 0000 0000 0010 0000 0000
0000160 1000 0000 0000 0000 0000 0000 0010 0000
0000170 3aa0 0003 0033 0000 236c 0003 00c8 0000
0000180 a000 0005 6640 0000 7000 0005 2100 0000
0000190 1400 001e 1858 0000 0000 0000 0000 0000
00001a0 c7c0 0002 001c 0000 0000 0000 0000 0000
00001b0 0000 0000 0000 0000 0000 0000 0000 0000
*
00001d0 c000 0002 06f0 0000 0000 0000 0000 0000
00001e0 0000 0000 0000 0000 0000 0000 0000 0000
00001f0 742e 7865 0074 0000 ab12 0002 1000 0000
0000200
Two files must be identical.
What version of the product are you using? On what operating system?
OS : openSUSE 13.1 x86-64
# rar2fs/rar2fs-1.19.1/rar2fs -V
rar2fs v1.19.1 (DLL version 6) Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19
Please provide any additional information below.
I used x86-64 Windows version of WinRAR to create archive.
It works with WINE correctly. I guess WinRAR binary's target OS
isn't affect to this behavior.
Instructions:
1. Make following directory hierarchy.
test/winrar-x64-501.exe
test/1/winrar-x64-501.exe
2. Make RAR archive with following options.
# wine 'C:\Program Files\WinRAR\Rar.exe' a -ma5 -m5 -oi:0 TEST.rar test
NOTE : With -oi option, WinRAR scans identical file and stores it as 'reference' that points only one copy of actual compressed data. ":0" means "scan any size of file".
3. Verify the archive creates correctly as expected.
# unrar vta TEST.rar
UNRAR 5.00 freeware Copyright (c) 1993-2013 Alexander Roshal
Archive: TEST.rar
Details: RAR 5
Name: test/1/winrar-x64-501.exe
Type: File
Size: 1977432
Packed size: 1851630
Ratio: 93%
mtime: 2013-12-01 17:09,000
Attributes: ..A....
CRC32: C671A26A
Host OS: Windows
Compression: RAR 5.0(v0) -m5 -md=2M
Name: test/winrar-x64-501.exe
Type: File copy
Target: test\1\winrar-x64-501.exe
Size: 1977432
Packed size: 0
Ratio: 0%
mtime: 2013-12-01 17:09,000
Attributes: ..A....
CRC32: 00000000
Host OS: Windows
Compression: RAR 5.0(v0) -m0 -md=2M
Name: test/1
Type: Directory
mtime: 2014-01-27 20:15,000
Attributes: ...D...
CRC32: 00000000
Host OS: Windows
Compression: RAR 5.0(v0) -m0 -md=0K
Name: test
Type: Directory
mtime: 2014-01-27 20:15,000
Attributes: ...D...
CRC32: 00000000
Host OS: Windows
Compression: RAR 5.0(v0) -m0 -md=0K
Name: QO
Type: Service
Size: 74
Packed size: 74
Ratio: 100%
Attributes: .B
Host OS: Windows
Compression: RAR 5.0(v0) -m0 -md=128K
Service: EOF
Yes, test/test/winrar-x64-501.exe is marked as 'File Copy'. Target is 'test/winrar-x64-501.exe'.
4. mount this archive to any path.
5. Compare file using cmp. results are above.
I'll attach example file explained above.
Original issue reported on code.google.com by jyhpsycho
on 2014-01-27
I usually checks integrity of data on created rar archive via rar2fs; Because I'm using Windows version of WinRAR under Linux, and there's many suspicious things that decreases its reliability, i.e. WINE bug, silent data corruption on disk, etc. Sometimes I find out data differences in practice when I processing several terabytes of data. The nice features of RAR format(Checksum, Recovery Record) helps me to detect these errors, and even recover it.
When I compare contents on certain archive using diff, it throws error message that these files are differ. With some experiments, I found some conditions that occuring this issue:
I created the sample archive reproduces it by following instructions:
mkdir W
mkdir 'CJK文字집합ディレクトリー/[$637!@1 ^#special character set#^]'
dd if=/dev/urandom of='CJK文字집합ディレクトリー/[$637!@1 ^#special character set#^]/random' bs=1k count=64
rar a -m0 -ma5 -rr10 -v30720b TEST.rar 'CJK文字집합ディレクトリー'
rar2fs -o ro,allow_other --flat-only --show-comp-img TEST.part1.rar W
diff 'CJK文字집합ディレクトリー' 'W/CJK文字집합ディレクトリー'
Note that the file path contains non-alphabetical characters(some symbols, CJK). I'll attach the sample, too.
Additional informations :
# ./rar2fs-master/rar2fs --version
rar2fs v1.21.1 (DLL version 7) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
UNRAR 5.30 freeware Copyright (c) 1993-2015 Alexander Roshal
Archive: TEST.part1.rar
Details: RAR 5, volume 1, recovery record
Name: CJK文字집합ディレクトリー/[$637!@1 ^#special character set#^]/random
Type: File
Size: 65536
Packed size: 28369
Ratio: -->
mtime: 2015-12-17 02:22:26,177
Attributes: ..A....
Pack-CRC32: DF1FB266
Host OS: Windows
Compression: RAR 5.0(v50) -m0 -md=128K
Name: QO
Type: Service
Size: 124
Packed size: 124
Ratio: 100%
Attributes: .B
Host OS: Windows
Compression: RAR 5.0(v50) -m0 -md=128K
Name: RR
Type: Service
Size: 1312
Packed size: 1312
Ratio: 100%
Attributes: .B
Host OS: Windows
Compression: RAR 5.0(v50) -m0 -md=128K
Service: EOF
28370 312 147
28371 147 267
28372 267 137
28373 137 274
28374 274 246
28375 246 346
28376 346 376
28377 376 302
28378 302 25
28379 25 371
.
.
.
56734 5 361
56735 361 170
56736 170 12
56737 12 47
56738 312 130
56739 47 240
56740 130 323
56741 240 210
56742 323 165
56743 210 37
.
.
.
According to 2) and 3), It seems that rar2fs misses 1 byte of data per volume.
Callback File System claims to support easy porting of FUSE modules to Windows with MinGW.
An evaluation version of Callback File System is available for download on their home page. The package contains the required libraries as well as samples. To actually run the binary, you'll need a free evaluation key, available on their site as well.
What do you think? Too much work?
What steps will reproduce the problem?
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
# uname -a
FreeBSD localhost 10.0-STABLE FreeBSD 10.0-STABLE #2: Tue Mar 4 13:33:45 KST 2014 root@localhost:/usr/obj/usr/src/sys/STABLE-CUSTOM amd64
Please provide any additional information below.
- I'll attach config.log.
- On FreeBSD, SIGXXX macro requires <signal.h>.
Following error messages are result after fix that(add #include <signal.h>
in rar2fs.c). Without this, it throws additional several error messages
such as "SIGINT not defined".
Compiler(clang 3.3 which is default compiler on FreeBSD 10) Messages:
cc -DHAVE_CONFIG_H -I. -I../unrar -I/usr/local/include -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -g -O2 -fno-omit-frame-pointer -Wextra -Wno-unused-result -D_THREAD_SAFE -pthread -MT rar2fs.o -MD -MP -MF .deps/rar2fs.Tpo -c -o rar2fs.o rar2fs.c
rar2fs.c:1733:54: error: no member named 'Method' in 'struct RARArchiveListEx'
S_ISDIR(mode) ? 2 : alist_p->Method - (FHD_STORING - 1);
~~~~~~~ ^
rar2fs.c:4333:45: warning: unused parameter 'st' [-Wunused-parameter]
static int64_t get_blkdev_size(struct stat *st)
^
1 warning and 1 error generated.
*** Error code 1
Stop.
make[1]: stopped in /mnt/shm/rar2fs-read-only
*** Error code 1
Stop.
make: stopped in /mnt/shm/rar2fs-read-only
Original issue reported on code.google.com by jyhpsycho
on 2014-03-06
NOTE : For creating archive, I used WINE.
mkdir TEST M
dd if=/dev/urandom of=TEST/TEST1 bs=16k count=1
dd if=/dev/urandom of=TEST/TEST2 bs=16k count=1
dd if=/dev/urandom of=TEST/TEST3 bs=16k count=1
dd if=/dev/urandom of=TEST/TEST4 bs=16k count=1
rar -m5 -ma5 -hpTEST -v10240b TEST.rar TEST
rar2fs TEST.part1.rar M
ls -AR M
# ls -AR TEST
TEST:
TEST1 TEST2 TEST3 TEST4
# ls -AR M
M:
TEST
M/TEST:
TEST4
# uname -a
Linux localhost 4.4.8-gentoo #1 SMP PREEMPT Sat May 7 02:56:39 KST 2016 x86_64 Intel(R) Core(TM) i7 CPU 980 @ 3.33GHz GenuineIntel GNU/Linux
# rar2fs --version
rar2fs v1.22.0 (DLL version 7) Copyright (C) 2009 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.6
fusermount version: 2.9.6
using FUSE kernel interface version 7.19
When i try to compile the latest tar or svn of rar2fs i get the following error with unrarsrc-5.0.12. with unrarsrc-4.2.4 it works.
mv -f .deps/dirlist.Tpo .deps/dirlist.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/root/unrarsrc/unrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -g -O2 -DSVNREV_=409 -fno-omit-frame-pointer -Wextra -Wno-unused-result -pthread -MT rar2fs.o -MD -MP -MF .deps/rar2fs.Tpo -c -o rar2fs.o rar2fs.c
mv -f .deps/rar2fs.Tpo .deps/rar2fs.Po
gcc -std=gnu99 -o rar2fs dllext.o optdb.o filecache.o iobuffer.o sighandler.o dirlist.o rar2fs.o -pthread -rdynamic -lfuse -lunrar -lstdc++
dllext.o: In function `RARListArchiveEx':
/root/rar2fs-read-only/dllext.cpp:273: undefined reference to `Archive::Read(void*, unsigned long)'
dllext.o: In function `RARNextVolumeName':
/root/rar2fs-read-only/dllext.cpp:362: undefined reference to `NextVolumeName(wchar_t*, unsigned int, bool)'
dllext.o: In function `ListFileHeader':
/root/rar2fs-read-only/dllext.cpp:604: undefined reference to `RarTime::GetText(wchar_t*, unsigned long, bool, bool)'
/root/rar2fs-read-only/dllext.cpp:667: undefined reference to `RarTime::GetText(wchar_t*, unsigned long, bool, bool)'
/root/rar2fs-read-only/dllext.cpp:662: undefined reference to `RarTime::GetText(wchar_t*, unsigned long, bool, bool)'
/root/rar2fs-read-only/dllext.cpp:714: undefined reference to `ParseVersionFileName(wchar_t*, bool)'
/root/rar2fs-read-only/dllext.cpp:678: undefined reference to `BinToHex(unsigned char const*, unsigned long, char*, wchar_t*, unsigned long)'
dllext.o: In function `DataSet':
/root/rar2fs-read-only/dllext.cpp:71: undefined reference to `CmdExtract::CmdExtract(CommandData*)'
dllext.o: In function `RARInitArchiveEx':
/root/rar2fs-read-only/dllext.cpp:108: undefined reference to `CommandData::AddArcName(wchar_t const*)'
/root/rar2fs-read-only/dllext.cpp:161: undefined reference to `Archive::GetComment(Array<wchar_t>*)'
dllext.o: In function `Array<char>::Add(unsigned long)':
/root/unrarsrc/unrar/array.hpp:97: undefined reference to `ErrorHandler::GeneralErrMsg(wchar_t const*, ...)'
collect2: ld returned 1 exit status
make[1]: *** [rar2fs] Error 1
make[1]: Leaving directory `/root/rar2fs-read-only'
make: *** [all] Error 2
Original issue reported on code.google.com by pingu5400
on 2013-11-04 00:50:37
On gentoo, rar2fs 1.22.0 failed to build throwing following error:
dllext.cpp: In function ‘size_t ListFileHeader(wchar*, Archive&)’:
dllext.cpp:539:33: error: unable to find string literal operator ‘operator""StringId’ with ‘const wchar_t [1]’, ‘long unsigned int’ arguments
#define St(StringId) L""StringId""
^
dllext.cpp:650:38: note: in expansion of macro ‘St’
wcs += msprintf(wcs, L"\n%12s: %s",St(MListName),Name);
I guess it's related on default C++ standard version. GCC 6 switched to C++14 by default, and I heard that string literal macro like that should have some space between tokens like following - I don't have an assertion, though.
#define St(StringId) L"" StringId ""
I'll test it and provide patch if it does.
What steps will reproduce the problem?
1. Install unrar-4.2.1 with the libunrar and headers and point rar2fs to them.
2. Try to build rar2fs-1.15.0.
What do you see instead?
checking rar.hpp usability... yes
checking rar.hpp presence... yes
checking for rar.hpp... yes
checking for RARGetDllVersion in -lunrar... yes
checking for source revision in SVN... no
checking for sched_setaffinity... yes
checking whether cpu_set_t available... yes
checking whether the CPU_SET and CPU_ZERO macros are defined... yes
checking scandir ARG3 => const struct dirent * ... ok
checking if compiler supports -fno-omit-frame-pointer... yes
checking if compiler supports -Wno-unused-result... yes
checking if linker supports -rdynamic... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-fs/rar2fs-1.15.0/work/rar2fs-1.15.0 ...
make -j9
make all-am
make[1]: Entering directory `/var/tmp/portage/sys-fs/rar2fs-1.15.0/work/rar2fs-1.15.0'
x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -DRARDLL -Wall -march=native -O2 -pipe -pthread -c -o dllext.o dllext.cpp
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c configdb.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c filecache.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c iobuffer.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c sighandler.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c dirlist.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c rar2fs.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c mkr2i.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -o mkr2i mkr2i.o -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -rdynamic
dllext.cpp: In function ‘int RarErrorToDll(int)’:
dllext.cpp:246:12: error: ‘FATAL_ERROR’ was not declared in this scope
dllext.cpp:248:12: error: ‘CRC_ERROR’ was not declared in this scope
dllext.cpp:250:12: error: ‘WRITE_ERROR’ was not declared in this scope
dllext.cpp:252:12: error: ‘OPEN_ERROR’ was not declared in this scope
dllext.cpp:254:12: error: ‘CREATE_ERROR’ was not declared in this scope
dllext.cpp:256:12: error: ‘MEMORY_ERROR’ was not declared in this scope
dllext.cpp:258:12: error: ‘SUCCESS’ was not declared in this scope
make[1]: *** [dllext.o] Error 1
<b>What version of the product are you using? On what operating system?</b>
Linux, gcc-4.6.x, glibc-2.15.x, Gentoo (I'm the maintainer for unrar and rar2fs in Gentoo just if you are intrested in knowing ;-)
Original issue reported on code.google.com by ssuominen.private
on 2012-05-05
Hi,
While trying to compile rar2fs 1.12.0 on freebsd 8.2 I'm getting this compile error:
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -MD -I./unrar -I -c configdb.c
/usr/lib/crt1.o(.text+0x8a): In function `_start':
: undefined reference to `main'
gmake: *** [configdb.o] Error 1
Hope you can help me out with this since I'm not clever enough :)
Cheers,
Joris
Original issue reported on code.google.com by wiebel
on 2011-05-29
Hey Hans,
Here I am again :)
I'm trying to build rar2fs on osx (svn version) and it fails with the following error:
gcc -o rar2fs dllext.o configdb.o filecache.o iobuffer.o sighandler.o rar2fs.o -L/opt/local/lib -L/usr/local/lib -lunrar -pthread -lstdc++ -lfuse_ino64
Undefined symbols:
"CommandData::AddArcName(char const*, wchar_t const*)", referenced from:
_RARInitArchiveEx in dllext.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [rar2fs] Error 1
Hope you can help me again :)
Cheers,
Joris
Original issue reported on code.google.com by wiebel
on 2011-05-29
The code that is supposed to make these work was missing parentheses.
See the attached patch.
Original issue reported on code.google.com by barderne
on 2014-03-17
What steps will reproduce the problem?
1. Create 16GiB blank file with truncate.
# truncate -s 16G test
2. Compress this file with WinRAR 5.00. I used following options:
-cfg- -ep1 -htb -m5 -ma5 -mcD -md256m -ms- -mt1 -oi:0 -qo- -scu -s-
3. Mount archive with rar2fs.
4. Try to read compressed file with dd.
# dd if=(mounted path)/test of=/dev/null bs=8k count=32
What is the expected output? What do you see instead?
- It must be read data correctly. But, it hangs. dd won't kill even sends SIGKILL. rar2fs process can be kill only with SIGKILL. dd reports 0 bytes readed.
What version of the product are you using? On what operating system?
fuse 2.9.3 (openSUSE 13.1 RC1, x86_64), unrar 5.0.12, rar2fs 1.18.0
Please provide any additional information below.
- It seems occur with archive which has very large archived file offset. I'll attach example file which is explained above.
p.s. I'm sorry about my poor english.
Original issue reported on code.google.com by jyhpsycho
on 2013-11-04
What steps will reproduce the problem?
localhost rar2fs # l -R RAR
RAR:
total 0
drwxr-xr-x 2 root root 60 2014-07-01 19:52:16.644092426 +0900 BASE/
drwxr-xr-x 2 root root 60 2014-07-01 19:52:31.117426015 +0900 LINK/
RAR/BASE:
total 1932
-rw-r--r-- 1 root root 1977432 2013-12-01 17:09:04.000000000 +0900 winrar-x64-501.exe
RAR/LINK:
total 1932
-rw-r--r-- 1 root root 1977432 2014-07-01 19:53:15.084093461 +0900 winrar-x64-501.exe
localhost rar2fs # WINEPREFIX=/mnt/WINRAR_ROOT wine 'C:\Program Files\WinRAR\Rar.exe' a -ma5 -m0 -oi:0 RAR.rar RAR
localhost rar2fs # mkdir TEST
localhost rar2fs # rar2fs -o allow_other,ro RAR.rar TEST/
localhost rar2fs # l -R TEST/RAR
TEST/RAR:
total 16
drwxr-xr-x 2 root root 4096 2014-07-01 19:52:16.644092400 +0900 BASE/
drwxr-xr-x 2 root root 4096 2014-07-01 19:52:31.117426000 +0900 LINK/
TEST/RAR/BASE:
total 1932
-rw-r--r-- 1 root root 1977432 2013-12-01 17:09:04.000000000 +0900 winrar-x64-501.exe
TEST/RAR/LINK:
total 1932
-rw-r--r-- 1 root root 1977432 2013-12-01 17:09:04.000000000 +0900 winrar-x64-501.exe
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
# rar2fs -V
rar2fs v1.20.0 (DLL version 6) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19
# emerge --search unrar
Searching...
[ Results for search key : unrar ]
[ Applications found : 3 ]
* app-arch/unrar
Latest version available: 5.1.5
Latest version installed: 5.1.5
Size of files: 210 kB
Homepage: http://www.rarlab.com/rar_add.htm
Description: Uncompress rar files
License: unRAR
Please provide any additional information below.
Original issue reported on code.google.com by jyhpsycho on 2014-07-01 11:16:23
What steps will reproduce the problem?
What is the expected output? What do you see instead?
Expected :
checking for matching UnRAR library and source version... yes
Actual:
checking for matching UnRAR library and source version... no
configure: error: in /dev/shm/rar2fs/rar2fs-1.8.4-test': configure: error: The version of UnRAR source pointed to by --with-unrar=../unrar and the current shared library picked up at link time are incompatible. Add an alternative library search path using --with-unrar-lib and/or an alternative source search path using --with-unrar and rerun configure. See
config.log' for more details
What version of the product are you using? On what operating system?
Please provide any additional information below.
I'll attach one patch can fix this.
Original issue reported on code.google.com by jyhpsycho
on 2013-11-10
What steps will reproduce the problem?
What is the expected output? What do you see instead?
expected output is the listing of the contents of the contained rar file. Instead you get a listing without this, an error (in ls) and the rar file with unknown metadata. e.g.
root@alexandria:/mnt/md0/downloads# ls -l test2
ls: cannot access test2/inner_archive.rar: No such file or directory
total 296
-rw-r--r-- 1 root root 303029 Jan 8 21:06 file.idx
?????????? ? ? ? ? ? inner_archive.rar
What version of the product are you using? On what operating system?
Using rar2fs-1.19.0 with unrar-5.0.14 on an armv5tel with uClibc.
Please provide any additional information below.
unrar-4.2.24 is working. The contents of the rar files are:
root@alexandria:/mnt/md0/downloads# unrar l test/bob.rar
UNRAR 5.01 freeware Copyright (c) 1993-2013 Alexander Roshal
Archive: test/bob.rar
Details: RAR 4
Attributes Size Date Time Name
----------- --------- -------- ----- ----
..A.... 303029 08-01-14 21:06 file.idx
..A.... 7884165 08-01-14 21:31 inner_archive.rar
----------- --------- -------- ----- ----
8187194 2
Original issue reported on code.google.com by fafarago
on 2014-01-13
What steps will reproduce the problem?
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Please provide any additional information below.
Original issue reported on code.google.com by jyhpsycho
on 2014-03-07 03:12:14
Some output is sent to standard output and some is sent to standard error.
rar2fs v1.17.2
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19
Linux GXT3 3.9-1-amd64 # 1 SMP Debian 3.9.8-1 x86_64 GNU/Linux
Original issue reported on code.google.com by delf.eldkraft
on 2013-07-24
rar2fs v1.19.0 (DLL version 6) Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.8.5
fusermount version: 2.8.5
using FUSE kernel interface version 7.12
Native build on NAS (DNS323) ARM machine with unrar-5.0.14, also natively built.
I get random crashes just trying to list the directory of the mounted rar file. Rebuilt the package with --enable-debug and debug symbols enabled, so can trace in gdb, but so far haven't gotten much wiser. Seems like it doesn't like multi-part rar files? f I set a seek-length=1 I do get at least a directory listing.
I tried mounting single-file rar files, that seems to work better, however at some point I will get the same backtrace as below. Any ideas to solve this? So would like to have rar2fs working with minidlna[*] and stream films to my tv :)
Looking up /Captain.Phillips.2013.720p.BluRay.X264-AMIABLE.mkv in cache
Adding /Captain.Phillips.2013.720p.BluRay.X264-AMIABLE.mkv to cache
listrar() / arch=/mnt/md0/downloads/Captain.Phillips.2013.720p.BluRay.X264-AMIABLE/captain.phillips.2013.720p.bluray.x264-amiable.r00
[New Thread 0x40b194c0 (LWP 1889)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x40b194c0 (LWP 1889)]
0x402cd080 in wcscpy () from /ffp/lib/libc.so.0
(gdb) bt
# 0 0x402cd080 in wcscpy () from /ffp/lib/libc.so.0
# 1 0x4004a720 in StringList::AddString(wchar_t const*) () from /ffp/lib/libunrar.so
# 2 0x40076264 in RAROpenArchiveEx () from /ffp/lib/libunrar.so
# 3 0x0001a0ac in listrar (path=0x9d0b8 "/", buffer=0x40b18ce4,
arch=0x40b18b20 "/mnt/md0/downloads/Captain.Phillips.2013.720p.BluRay.X264-AMIABLE/captain.phillips.2013.720p.bluray.x264-amiable.r00") at rar2fs.c:2024
# 4 0x0001d20c in readdir_scan (dir=0x9d0b8 "/",
root=0x40b18c80 "/mnt/md0/downloads/Captain.Phillips.2013.720p.BluRay.X264-AMIABLE/", next=0x40b18ce4) at rar2fs.c:2470
# 5 0x0001db58 in rar2_readdir (path=0x9d0b8 "/", buffer=0x60540, filler=0x40014968, offset=0, fi=0x40b18dc8)
at rar2fs.c:2682
# 6 0x40017cb8 in fuse_fs_readdir () from /ffp/lib/libfuse.so.2
# 7 0x40017ee0 in ?? () from /ffp/lib/libfuse.so.2
Cannot access memory at address 0x0
# 8 0x40017ee0 in ?? () from /ffp/lib/libfuse.so.2
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
[*] although when I did try the mounted file was not scanned, so I think I need some work there.
Original issue reported on code.google.com by fafarago
on 2014-01-11
Hi Hans,
I was thinking that caching to files might speed up things a little.
The idea is:
for each rar archive build a (md5) hash per file and cache that hash to a file (.$someprefix-$nameofrar.cache). When reading directories check for the cache file, if exists check md5sum of file it's representing , and if so, use the info of the cache file instead of reading the rar file again.
Cheers,
Joris
Original issue reported on code.google.com by wiebel
on 2011-05-30
rar2fs currently doesn't follow symbolic links.
Symlinced folders which contains rar files are presented as rar files.
Is there a chance to get symbolic links followed?
Thanks
I have an Ubuntu 12.04 LTS machine with plex media server that accesses
an ext 4 partition on a raid via rar2fs. About once every day i have to kill -9 <rar2fs pid> and umount my dir because rar2fs locks up using all the cpu cycles it can get.
cmndline for rar2fs as root: rar2fs --seek-length=1 -o allow_other /data/media/ /data/rar2media/
rar2fs -V gives:
rar2fs v1.15.5 build 310 (DLL version 5) Copyright (C) 2009-2012 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12
When rar2fs isn't locking up it works just as it is supposed to. I have fsck:ed the data drive and the ubunto os is a fresh install.
On my old server rar2fs didnt have the -o allow_other option so i had to run rar2fs as the user plex so i'm going to try that now.
/Jerry
Original issue reported on code.google.com by rapp.jerry
on 2013-01-17
Hello, I have tried compiling both the stable and the svn versions of rar2fs in Debian Squeeze, but I get:
$ make
g++ -g -rdynamic -fno-omit-frame-pointer -O2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DRARDLL -MD -I./unrar -c dllext.cpp
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -MD -I./unrar -I -c configdb.c
/usr/lib/gcc/i486-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: ** [configdb.o] Error 1
After some google search, I found that what could cause this is if there was no main function, but I know this doesn't apply. So, your help will be appreciated!
Original issue reported on code.google.com by teresaejunior
on 2011-07-16
What steps will reproduce the problem?
What version of the product are you using? On what operating system?
Using rar2fs v1.17.2 (latest version in my repo) and v1.18.0 (manually compiled).
Please provide any additional information below.
Trying to increase cache so I can seek in videos that are contained inside passworded RARs.
Original issue reported on code.google.com by [email protected]
on 2014-01-14
Original issue 36 created by hasse69 on 2014-07-01T12:11:27.000Z:
What steps will reproduce the problem?
# l
total 1932
-rw-r--r-- 1 root root 1977432 2014-07-01 21:00:52.207498641 +0900 winrar-x64-501.exe
# WINEPREFIX=/mnt/WINRAR_ROOT wine 'C:\Program Files\WinRAR\Rar.exe' a -m0 RAR.rar winrar-x64-501.exe
# mkdir TEST
# rar2fs -o ro,allow_other RAR.rar TEST
4. Listing file.
# l TEST/
total 1932
-rw-r--r-- 1 root root 1977432 2014-07-01 21:01:17.207498600 +0900 winrar-x64-501.exe
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
# rar2fs -V
rar2fs v1.20.0 (DLL version 6) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19
# emerge --search unrar
Searching...
[ Results for search key : unrar ]
[ Applications found : 3 ]
* app-arch/unrar
Latest version available: 5.1.5
Latest version installed: 5.1.5
Size of files: 210 kB
Homepage: http://www.rarlab.com/rar_add.htm
Description: Uncompress rar files
License: unRAR
Please provide any additional information below.
Original issue reported on code.google.com by jyhpsycho
on 2014-07-01 21:00:52
What steps will reproduce the problem?
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
openSUSE 13.1 x86-64, with unrar 5.0.14
# ../rar2fs-read-only/rar2fs -V
rar2fs v1.19.4-svnr440 (DLL version 6) Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19
<b>Please provide any additional information below.</b>
1. Create directory hierarchy for test.
# mkdir ARCHIVES TEST mount_dir mount_file
2. Create dummy file for test.
# truncate -s 1M TEST/{1,2}
3. Create volume archive. I used 512KB volume size and store mode.
# wine 'C:\Program Files\WinRAR\Rar.exe' a -m0 -v524288b ARCHIVES/TEST.rar TEST
4. Mount archive.
# ../rar2fs-read-only/rar2fs -o ro,allow_other ARCHIVES/TEST.part1.rar mount_file/
# ../rar2fs-read-only/rar2fs -o ro,allow_other ARCHIVES/ mount_dir/
5. Get directory listing.
# ls -laR mount*/TEST
mount_dir/TEST:
total 2064
drwxr-xr-x 2 root root 4096 Feb 1 21:50 .
drwxr-xr-x 2 psycho users 140 Feb 1 21:51 ..
-rw-r--r-- 1 root root 1048576 Feb 1 21:50 1
-rw-r--r-- 1 root root 1048576 Feb 1 21:50 2
mount_file/TEST:
total 1036
drwxr-xr-x 2 root root 4096 Feb 1 21:50 .
drwxr-xr-x 2 psycho users 140 Feb 1 21:51 ..
-rw-r--r-- 1 root root 1048576 Feb 1 21:50 2
* Note that I used tmpfs for test, and tmpfs stores file reverse order that it creates. Thus RAR stores "2" in archive first.
Original issue reported on code.google.com by jyhpsycho
on 2014-02-01
When a relative symbolic link to a file is present in the root mounted folder and the mount point is inside it, the folder becomes unresponsive when accessed.
This structure reproduces the problem:
rarDir/file.rar
linkToFile -> mountDir/rarDir/file
mountDir
Mount with:
$ rar2fs . mountDir
$ ls mountDir
Will hang indefinitely.
If the link is created after mounting, it works correctly. But when mounted again the folder becomes unresponsive.
If the link is to an absolute path ( linkToFile -> /home/user/testRAR/mountDir/rarDir/file ) it works correctly.
rar2fs v1.22.0 (DLL version 7)
FUSE library version: 2.9.5
fusermount version: 2.9.5
using FUSE kernel interface version 7.19
What steps will reproduce the problem?
What is the expected output? What do you see instead?
That should be identical. But, rar2fs returns wrong timestamp. Its differences are several seconds. On Linux, Linux version of rar treats timestamps only second-precision, but that's value are correct. Using Windows version of WinRAR with WINE, It handles 100-nanosecond precision and extracts correctly.
Original file :
-rw-r--r-- 1 root root 23501538393 2013-08-30 15:26:06.012630700 +0900 Vol.1.rar
-rw-r--r-- 1 root root 22110405466 2013-09-19 19:52:26.124659000 +0900 Vol.2.rar
-rw-r--r-- 1 root root 22274030773 2013-10-27 14:54:30.477460700 +0900 Vol.3.rar
-rw-r--r-- 1 root root 20987668628 2013-11-09 09:17:06.154892900 +0900 Vol.4.rar
-rw-r--r-- 1 root root 22540994209 2014-01-27 13:10:39.901638700 +0900 Vol.5.rar
-rw-r--r-- 1 root root 23608165738 2014-01-27 09:21:30.425213700 +0900 Vol.6.rar
rar2fs' output :
-rw-r--r-- 1 root root 23501538393 2013-08-30 15:26:03.000000000 +0900 Vol.1.rar
-rw-r--r-- 1 root root 22110405466 2013-09-19 19:52:13.000000000 +0900 Vol.2.rar
-rw-r--r-- 1 root root 22274030773 2013-10-27 14:54:15.000000000 +0900 Vol.3.rar
-rw-r--r-- 1 root root 20987668628 2013-11-09 09:17:03.000000000 +0900 Vol.4.rar
-rw-r--r-- 1 root root 22540994209 2014-01-27 13:10:19.000000000 +0900 Vol.5.rar
-rw-r--r-- 1 root root 23608165738 2014-01-27 09:21:15.000000000 +0900 Vol.6.rar
What version of the product are you using? On what operating system?
openSUSE 13.1 x86-64, unrar 5.0.14
# rar2fs -V
rar2fs v1.19.8 (DLL version 6) Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19
Please provide any additional information below.
Yes, it's not major bug which is related real data. But I think that should be fixed...
Original issue reported on code.google.com by jyhpsycho
on 2014-02-21
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.