Git Product home page Git Product logo

ext4fuse's People

Contributors

aimileus avatar bgianfo avatar bryant1410 avatar cernekee avatar geerlingguy avatar gerard avatar kelnos avatar pcuenca avatar pwi avatar raimue avatar segin avatar strugee avatar zachberger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ext4fuse's Issues

ext2/3 Block Semantics

I'm having a hard-time finding clarification on ind/dind/tind blocks. Could you provide an explanation or a URL?

https://github.com/gerard/ext4fuse/blob/master/inode.c#L25:

/* These #defines are only relevant for ext2/3 style block indexing */
#define ADDRESSES_IN_IND_BLOCK      (BLOCK_SIZE / sizeof(uint32_t))
#define ADDRESSES_IN_DIND_BLOCK     (ADDRESSES_IN_IND_BLOCK * ADDRESSES_IN_IND_BLOCK)
#define ADDRESSES_IN_TIND_BLOCK     (ADDRESSES_IN_DIND_BLOCK * ADDRESSES_IN_IND_BLOCK)
#define MAX_IND_BLOCK               (EXT4_NDIR_BLOCKS + ADDRESSES_IN_IND_BLOCK)
#define MAX_DIND_BLOCK              (MAX_IND_BLOCK + ADDRESSES_IN_DIND_BLOCK)
#define MAX_TIND_BLOCK              (MAX_DIND_BLOCK + ADDRESSES_IN_TIND_BLOCK)

Cannot handle hidden folder/files

First, Thanks for your great work! It can properly read my ext4 partition for most of the time. However, when I try to copy my ssh keys to the Mac, I found ext4fuse currently cannot handle hidden folders/files.

You can try with the ~/.ssh folder in Ubuntu. I mounted the ext4 partition under /Volumes/ubuntu, so the full path on Mac is /Volumes/ubuntu/home/jeff/.ssh, where jeff is my Ubuntu user name. When I run "ls" in this folder, I expect to see files like "config", "id_rsa", etc. However, I see all the files under / of the ext4 partition. In other words, ext4fuse cannot display content within a folder that starts with "." (on Linux, these folders are hidden when displayed in GUI).

Can't compile -arch x86_64

I have this in my .bash_profile

export ARCHFLAGS="-arch x86_64"

but that shouldn't affect this?

$ make

Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc'
to the PKG_CONFIG_PATH environment variable
No package 'fuse' found
cc -o ext4fuse fuse-main.o logging.o extents.o disk.o super.o inode.o dcache.o op_read.o op_readdir.o op_readlink.o op_init.o op_getattr.o op_open.o
Undefined symbols for architecture x86_64:
"_fuse_main_real", referenced from:
_main in fuse-main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [ext4fuse] Error 1

ext4 partition: colons in file names are substituted by #003A

Thanks for sharing and mantaining ext4fuse.

First I mount my ext4 partition:
sudo ext4fuse /dev/disk3s1 /Volumes/Linux-mount -o allow_other
Everything works great except for filenames, in which I see : replaced by #003A. For example, when I ls a directory, a file named 07:12:35.jpeg appears as 07#003A12#003A35.jpeg. I have seen no ext4fuse option that seems to address this problem. Any ideas are welcome. Thanks!

I am using Mojave, but the problem I have discussed also happened in previous versions of Mac OS X.

Cheers,

Ramon

Update install command for brew

Update install command for OSX install with brew:

Error: brew cask is no longer a brew command. Use brew <command> --cask instead.

Cheers

Assertion failed: ((size_t)pread_ret == size), function __disk_read, file disk.c, line 110.

"sudo ext4fuse /dev/disk2s1 ~/tmp/MY_EXT_PARTITION -o allow_other,defer_permissions" used to work for me on earlier versions of FUSE and OSX.

$ sudo ext4fuse /dev/disk2s1 ~/tmp/MY_EXT_PARTITION -o allow_other,defer_permissions,daemon_timeout=3600,debug
FUSE library version: 2.9.7
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
unique: 2, opcode: INIT (26), nodeid: 0, insize: 56, pid: 2918
INIT: 7.19
flags=0xf8000008
max_readahead=0x00100000
INIT: 7.19
flags=0x00000010
max_readahead=0x00100000
max_write=0x02000000
max_background=0
congestion_threshold=0
unique: 2, success, outsize: 40
unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 175
getattr /
unique: 3, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 0
statfs /
unique: 3, success, outsize: 96

Assertion failed: ((size_t)pread_ret == size), function __disk_read, file disk.c, line 110.
Abort trap: 6

I added the debug flag to see what was going wrong. Without it I got this error:

$ ls -al ~/tmp/MY_EXT_PARTITION/
ls: : Device not configured

Documentation

Hi,

I haven't been able to find a man page or other documentation on the full range of functions and commands. Could you create one or post a link in the README?
Seems to work for me on Mojave, but need to tweak how things are mounted and what has access.
Thanks.

Mount .img file?

ext4fuse only seems to mount /dev partitions. However, is it possible to mount .img files? If I do, I get Partition doesn't contain EXT4 filesystem.

'ls' on a non existent path lists all files and directories in parent directory as directories

I mount my ext4 partition using ext4fuse and then cd to any folder on the drive. If I do ls non-existent, where non-existent is neither a file nor a directory (it does not exist), all files and folders in the current working directory are shown as directories !

Demo:

$ mount | grep ext4fuse
ext4fuse@osxfuse0 on /Volumes/linux (osxfuse, synchronous)
$ pwd 
/Volumes/linux/home/philippe/code/git/.git
$ ls -l
total 984
-r--r--r--   1 1000  1000   3.9K Dec  5 17:51 EDIT_DESCRIPTION
-r--r--r--   1 1000  1000   3.7K Dec  3 08:41 FETCH_HEAD
-r--r--r--   1 1000  1000    49B Nov 18 09:10 HEAD
dr-xr-xr-x   2 1000  1000   4.0K Nov 18 08:54 branches/
-r--r--r--   1 1000  1000   5.6K Dec  7 13:46 config
-r--r--r--   1 1000  1000    73B Nov 18 08:54 description
dr-xr-xr-x   2 1000  1000   4.0K Nov 18 08:54 hooks/
-r--r--r--   1 1000  1000   357K Nov 21 12:58 index
dr-xr-xr-x   2 1000  1000   4.0K Nov 18 08:54 info/
dr-xr-xr-x   3 1000  1000   4.0K Nov 18 09:05 logs/
dr-xr-xr-x  11 1000  1000   4.0K Dec  7 13:47 objects/
-r--r--r--   1 1000  1000    74K Nov 18 09:05 packed-refs
dr-xr-xr-x   5 1000  1000   4.0K Nov 18 09:05 refs/
dr-xr-xr-x   2 1000  1000   4.0K Nov 25 08:48 rr-cache/
dr-xr-xr-x   4 1000  1000   4.0K Dec  3 08:42 worktrees/
$ ls -l non-existent
total 120
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 EDIT_DESCRIPTION/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 FETCH_HEAD/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 HEAD/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 branches/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 config/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 description/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 hooks/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 index/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 info/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 logs/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 objects/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 packed-refs/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 refs/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 rr-cache/
dr-xr-xr-x  10 1000  1000   4.0K Dec 15 19:12 worktrees/

This behaviour is obviously incorrect and breaks a lot of programs.

existant subfolder behaves like symlink to parent on Finder of macos Sierra

ext4fuse mounts the disk but then, on the tree first level, I have a folder called "files" which in turn have several subfolders amongst which, several have names containing accented characters. The ones with no accented characters behave normally.
One of these subfolders, for instance, is called "Reconciliação" and its content, as viewed in finder, is the content of its parent "files", including itself "Reconciliação".
Going down the tree, most of the folders with accented characters behave the same way, but not all. I couldn't establish a corelation.
If I use a terminal and do "ls" in these subfolders, the behaviour is as expected, that is, the real content, not its parents'.
Of course I renamed the folder "Reconciliacao" and the behaviour changed to normal. Renamed back and got the problem again.
Furthermore, if I make a folder named "Reconciliação" in my home disk, "Macintosh HD", the behaviour is normal in Finder which leads me to believe the problem lies in ext4fuse, or osxfuse.
When I find some time, I'm planning to format an ntfs partition to mount with osxfuse and check the behaviour.

not possible to read the disk

I Gerard, I just tried to download and compile this, compile fine after exporting the path of pkgconfig using

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

looks ok at running your program

sudo ./ext4fuse /dev/disk0s5 /media/homelinux

but despite adding myself to operator group using

sudo dscl . append /Groups/operator GroupMembership

It doesn't work. ls -al in the /media directory returns :
ls: homelinux: No such file or directory
And in the finder homelinux appear as an "Alias" but trying to open it open a pop-up:
"The alias “homelinux” can’t be opened because the original item can’t be found."

I' running Snow Leopard on a Macbook Pro. And trying to open ubuntu 10.10 partitions.

Corentin

Cannot see/list mountpoint after mounting

Thanks for writing this, I'm excited to try it!

I'm using ext4fuse with Fuse4X on Mac OS X Lion 10.7 x86_64 (CPU is i7-2600K). I'm able to mount the device, but then can't get to the mountpoint. I suspect it's because I'm mounting it using sudo: "sudo ./ext4fuse /dev/disk0s2 /media/LinuxDisk". This succeeds, but then /media/LinuxDisk is assigned to user and group "1000" (instead of my uesr). At such point, I can't even see the mountpoint unless I use sudo. I.e. "ls -la" doesn't work, only "sudo ls -la" does. I see that Fuse4X has mount-time options of allow_other (http://fuse4x.org/options.html#allow_other), which I suspect might help, but I dont' know where I'd specify such option. I don't know how to run ext4fuse without using sudo, is there a way? Because if so, that'd probably be a simple fix.

Thoughts?

Also, the "empty ext4 filesystem" you've linked from the Wiki Home is dead.

Mounting an ext4 partition shows no errors, but mount point "disappears"...

I've installed osxfuse 2.6.2 and ext4fuse 0.1.3 using Homebrew. I mount an ext4 partition:

sudo ext4fuse /dev/disk1s2 /Users/Ben/extDrive/

which works without an error messages, but when I try to view the files, I get the following error message:

$ ls -l /Users/Ben/extDrive 
ls: /Users/Ben/extDrive: No such file or directory

and the folder also doesn't show up if I list everything in /Users/Ben.

It's definitely mounted though, as umount autosuggests the path, and successfully unmounts the drive without errors. (Running it again gives an error message about the path not being currently mounted.)

Any idea what's causing this issue?

Can mount ext4 partition on Mojave (10.14.1), but shows up empty

Hi all, I've been trying to mount an ext4 formatted SSD on my mac. I can confirm that it contains the data I need by plugging it into another computer, but when I mount with ext4fuse it looks completely empty. I've already checked for OSXFuse updates, and I'm all up-to-date.

I've also successfully mounted another linux disk by mistake (I forgot a USB flashed with an update file was plugged into my USB hub, haha), but I can't seem to get access to my big ole SSD with actual data on it.

I've tried a variety of mount commands, but the most recent was:
ext4fuse /dev/disk2s1 /Users/me/Desktop/tmp -o logfile=/Users/me/Desktop/ext_log.txt -o allow_other

if cd into the mount and run ls -la in I get:
dr-xr-xr-x@ 3 root wheel 4096 Aug 13 14:26 . drwx------+ 26 me staff 832 Nov 18 08:19 .. MrMe:tmp me$

Thanks for any advice! the log file head and tail is below.

[debug][__disk_read:105] Disk Read: 0x438 +0x2 [main:135]
[info] [op_init:20] Using FUSE protocol 7.19
[debug][__disk_read:105] Disk Read: 0x400 +0x400 [super_fill:57]
[info] [super_fill:59] BLOCK SIZE: 4096
[info] [super_fill:60] BLOCK GROUP SIZE: 134217728
[info] [super_fill:61] N BLOCK GROUPS: 3726
[info] [super_fill:62] INODE SIZE: 256
[info] [super_fill:63] INODES PER GROUP: 8192
[debug][__disk_read:105] Disk Read: 0x1000 +0x40 [super_group_fill:90]
[debug][__disk_read:105] Disk Read: 0x1040 +0x40 [super_group_fill:90]

[debug][__disk_read:105] Disk Read: 0x421100 +0x9c [inode_get_by_number:155]
[debug][op_getattr:32] getattr done
[debug][op_getattr:23] getattr(/)
[debug][inode_get_idx_by_path:202] Looking up: /
[debug][inode_get_idx_by_path:207] Looking up after dcache:
[debug][super_group_inode_table_offset:73] Inode table offset: 0x421
[debug][__disk_read:105] Disk Read: 0x421100 +0x9c [inode_get_by_number:155]
[debug][op_getattr:32] getattr done
[debug][op_getattr:23] getattr(/)
[MrMer:Desktop me$

Launch ext4fuse at startup?

Hi,

I have installed ext4fuse on BigSur. It mounts the partition. No problem.

However, Mac complains about the EXT4 drive at each startup and ask to eject or initialize. I'd like to avoid this. Is this possible with ext4fuse by running it at startup?

Thanks.

Permission denied mounting as normal user

Hi, I have OSXFuse 2.6.4 installed, and ext4fuse from brew install ext4fuse, I think it's a recent version. I am using OS X Mavericks

running

ext4fuse /dev/disk0s4 Linux -o logfile=log
disk_open: /dev/disk0s4: Permission denied

And log is empty. I can however mount as root, using sudo ext4fuse..., but then #8 seems to occur; the permissions are such that the commandline tells me that Linux/ does not exist when I ls or cd.

If I however switch user to root, I can cd into the mounted folder and see all of the contents. The permissions on the folder mounted by root are:

dr-xr-xr-x  20 root   wheel  4096  3 Apr 13:33 Linux

and my normal user is:

id jamie
uid=501(jamie) gid=20(staff) groups=20(staff),401(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),398(com.apple.access_screensharing),399(com.apple.access_ssh)

I tried adding my normal user to wheel using dscl, but I still could not cd into the folder. I would like to be able to have the mount readable by the normal user.

Mounting in FreeBSD 9.1 fails with "Invalid argument"

I've been getting the following error when trying to mount an ext4 partition:

root@fbsd:/home/zmode # ext4fuse /dev/ada1s4 /mnt/arch/
mount_fusefs: /dev/fuse0 on /mnt/arch: Invalid argument
fuse: failed to mount file system: No such file or directory

I have uploaded truss output for the above command here [1]
Please let me know if I can provide more informative output in some way.

[1] https://gist.github.com/4665920

undefined reference to `backtrace_symbols'

Trying to compile it on NetBSD...

netbsd-marietto# gmake

cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o fuse-main.o fuse-main.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o logging.o logging.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o extents.o extents.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o disk.o disk.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o super.o super.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o inode.o inode.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o dcache.o dcache.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o op_read.o op_read.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o op_readdir.o op_readdir.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o op_readlink.o op_readlink.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o op_init.o op_init.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o op_getattr.o op_getattr.c
cc -I/usr/pkg/include/fuse -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -DEXT4FUSE_VERSION="v0.1.3-20-g6b23d8d" -c -o op_open.o op_open.c
cc -o ext4fuse fuse-main.o logging.o extents.o disk.o super.o inode.o dcache.o op_read.o op_readdir.o op_readlink.o op_init.o op_getattr.o op_open.o -L/usr/pkg/lib -lfuse -pthread
ld: fuse-main.o: in function `signal_handle_sigsegv':

/home/mario/Desktop/Dati-NetBSD/ext4fuse/fuse-main.c:88: undefined reference to backtrace' ld: /home/mario/Desktop/Dati-NetBSD/ext4fuse/fuse-main.c:89: undefined reference to backtrace_symbols'

Doesn't recognize a legit ext4 partition

When I am trying to mount an ext4 partition using
sudo ext4fuse /dev/disk0s5 /Volumes/Linux
I get this error message :
Partition doesn't contain EXT4 filesystem

Here's a query of my partitions in macOS :

> diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   5:           Linux Filesystem                         55.8 GB    disk0s6
   7:           Linux Filesystem                         62.9 GB    disk0s8

query on my ubuntu 16.04 :

> lsblk --fs

  sdb                                                             
  ├─sdb6 ext4    bank        61b6e9f5-a348-43a5-ba67-789349897182 /bank
  └─sdb8 ext4    linux       d1e943eb-2999-4b41-be5b-b9251819351f /

( I have installed the latest version of FUSE for macOS (3.5.8), and then install ext4fuse using homebrew (0.1.3) on my macOS Sierra. )

ext2/ext3 read support

Although I don't necessarily want to support ext2/ext3 partitions, lacking support for it means lacking support for ext4 partitions that have been upgraded via tune2fs. For instance, 0010-file-integrity.sh is failing.

Cannot mount empty ext4Partition on macOS Sierra 10.12.6

I tried to mount an ext4 partition, but mounted device was 'ext4fuse@osxfuse[number]'
In that directory, there was "lost+found" directory which permission is 500.
I'm sure my account is in "operator" group, and I added "-o allow_user" option when I execute.

my versions are :

  • OS : macOS Sierra ver.10.12.6
  • CPU : 1.7 GHz Intel Core i7
  • ext4fuse version : 0.1.3

log file is this :
extfuselog.txt

If more info is needed, I'll add it.
Does anyone have a good solution?

Cannot access a mounted drive in macOS Sierra

System info:
macOS Sierra 10.12.6
FUSE for macOS 3.7.0

I have followed the instructions for mounting a drive but cannot seem to access any files once the drive is mounted. Here are the steps I am taking:

  1. With fuse for macOS and ext4fuse installed, I boot the computer and get the following message regarding the external usb drive:

screen shot 2017-09-19 at 7 57 16 pm

  1. I click Ignore

  2. I open the terminal, navigate to the root with cd / and then add a directory to serve as the mount point using sudo mkdir linux

  3. I then run the mount command with the allow_other option: sudo ext4fuse /dev/disk2s1 /linux -o allow_other

  4. With the drive supposedly mount, I am unable to cd into the directory without using sudo and in using sudo cd /linux, it re-opens the root directory ie.

pwd # /
sudo cd /linux
pwd # /

Opening it in the finder shows a nice mounted icon but I am unable to open the mount, receiving the following message:

screen shot 2017-09-19 at 8 01 46 pm

Perhaps I am missing or have misunderstood a step?

crash when under heavy load

I have a lot of photos on my ext4 partition, and I told Picasa to scan those folders. It scans through photos for 20 seconds or so (sometimes as few as 5-10 seconds) and stops, and removes the photos just scanned. The ext4fuse process appears to be dead, and when I ls the mount directory, I get a "Device not configured" error. 100% reproducible here. I'm using official MacFUSE 2.0.3, and I've also tried the 2.1.5 beta version with the same result.

Log file posted here (it's 17MB):
http://spurint.org/stuff/ext4fuse.log

If I attach with gdb, the process at some point receives SIGABRT, and I get the following stack traces for all threads:

Program received signal SIGABRT, Aborted.
0x00007fff8034ffca in __semwait_signal ()
(gdb) thread apply all bt

Thread 6 (process 18942):
#0  0x00007fff8031f9c6 in read ()
#1  0x0000000100012a87 in fuse_kern_chan_receive ()
#2  0x0000000100015eab in fuse_chan_recv ()
#3  0x0000000100012dca in fuse_do_work ()
#4  0x00007fff8034e536 in _pthread_start ()
#5  0x00007fff8034e3e9 in thread_start ()

Thread 5 (process 18942):
#0  0x00007fff80387e4e in __semwait_signal_nocancel ()
#1  0x00007fff80387d50 in nanosleep$NOCANCEL ()
#2  0x00007fff803e46a2 in usleep$NOCANCEL ()
#3  0x00007fff80403cd4 in abort ()
#4  0x00007fff803f2901 in szone_error ()
#5  0x00007fff8031fbcf in small_free_list_remove_ptr ()
#6  0x00007fff8031c63b in szone_free_definite_size ()
#7  0x00000001000116b9 in fuse_lib_read ()
#8  0x00000001000145f1 in do_read ()
#9  0x0000000100013cc3 in fuse_ll_process ()
#10 0x0000000100015df6 in fuse_session_process ()
#11 0x0000000100012e5e in fuse_do_work ()
#12 0x00007fff8034e536 in _pthread_start ()
#13 0x00007fff8034e3e9 in thread_start ()

Thread 4 (process 18942):
#0  0x00007fff8031f9c6 in read ()
#1  0x0000000100012a87 in fuse_kern_chan_receive ()
#2  0x0000000100015eab in fuse_chan_recv ()
#3  0x0000000100012dca in fuse_do_work ()
#4  0x00007fff8034e536 in _pthread_start ()
#5  0x00007fff8034e3e9 in thread_start ()

Thread 3 (process 18942):
#0  0x00007fff8031f9c6 in read ()
#1  0x0000000100012a87 in fuse_kern_chan_receive ()
#2  0x0000000100015eab in fuse_chan_recv ()
#3  0x0000000100012dca in fuse_do_work ()
#4  0x00007fff8034e536 in _pthread_start ()
#5  0x00007fff8034e3e9 in thread_start ()

Thread 2 (process 18942):
#0  0x00007fffffe00295 in __spin_lock ()
#1  0x00007fff803196cb in szone_malloc_should_clear ()
#2  0x00007fff80318eea in malloc_zone_malloc ()
#3  0x00007fff803171e8 in malloc ()
#4  0x0000000100011538 in fuse_lib_read ()
#5  0x00000001000145f1 in do_read ()
#6  0x0000000100013cc3 in fuse_ll_process ()
#7  0x0000000100015df6 in fuse_session_process ()
#8  0x0000000100012e5e in fuse_do_work ()
#9  0x00007fff8034e536 in _pthread_start ()
#10 0x00007fff8034e3e9 in thread_start ()

Thread 1 (process 18942):
#0  0x00007fff8034ffca in __semwait_signal ()
#1  0x00007fff80353de1 in _pthread_cond_wait ()
#2  0x0000000100018856 in fuse_sem_wait ()
#3  0x0000000100012ff2 in fuse_session_loop_mt ()
#4  0x0000000100015203 in fuse_loop_mt ()
#5  0x0000000100016815 in fuse_main_common ()
#6  0x000000010001686a in fuse_main_real ()
#7  0x0000000100000b2f in main (argc=2, argv=0x7fff5fbff7c8) at fuse-main.c:85

Multiblock allocator

Hello! Have you implemented the write support? I want to know some detals about multiblock allocator. But I do not konw how to do it. Can you tell me some thing? Thank you very much!

Not working on Yosemite, mountpoint disappears

After following the directions for 0.1.3 (ensured operator group membership), I tried mounting an ext4 drive from a SD card slotted into a MacBook Pro running 10.10.2.

% sudo ext4fuse /dev/disk2s3 /Volumes/myvol

After it finishes, viewing /Volumes shows the mountpoint directory has vanished. Finder also does not see it. Running df shows the drive, so perhaps it is registered with darwin as a filesystem-

ext4fuse@osxfuse0 0 0 0 100% 0 0 100% /Volumes/myvol

But for my needs, however, it isn't really mounted. It cannot be navigated to via cd or seen via ls or Finder.

Can't write on the file mounted ssd

Hello. I've tried to ext4FUSE and i successed mount (./ext4fuse /dev/sda /mnt/mountpoint)
But, Can't write on the file
Device is NAND flash memory(SSD).

It can't support SSD? or it just my fault?

Please help me.
thank you.

ext4s drive mounts, but no permissions to view anything

Using OSXFUSE on 10.7.1. I was able to compile and mount fine. I ran the command to add myself to the operator group:

sudo dscl . append /Groups/operator GroupMembership

When I mount, I can't access any directory - they all have a little red/white minus icon next to them. Is there something I'm missing?

Update readme to include defer_permissions

Suggest adding an example to the readme:

If you are having permissions-related problems accessing content on your volume try mounting with the defer_permissions option:

sudo ext4fuse /dev/DISKHERE /tmp/MOUNTPOINT -o allow_other -o defer_permissions

Cannot mount EXT4 disk on Mac Os X.8

Good evening.
After sending command ext4fuse /dev/disk1s1 EXT4, i receive error message 'The fuse4x kernel extension was not loaded'.
I try without success :
Update Brew,
Re-install ext4fuse,
Re-install autoconf,
Re-install fuse4x.
There is no more information in system.log.
How can i solve this problem ?
Thanks.

allow standard fuse args

/*
if (logging_open(argc == 4 ? argv[3] : DEFAULT_LOG_FILE) < 0) {
fprintf(stderr, "Failed to initialize logging\n");
return EXIT_FAILURE;
}
*/
if (disk_open(argv[1]) < 0) {
perror("disk_open");
return EXIT_FAILURE;
}

return fuse_main(argc-1, argv+1, &e4f_ops, NULL);

cannot compile on 64 bit OS

Here is the make error log:

cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o fuse-main.o fuse-main.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o logging.o logging.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o extents.o extents.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o disk.o disk.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o super.o super.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o inode.o inode.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o op_read.o op_read.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o op_readdir.o op_readdir.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o op_readlink.o op_readlink.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o op_init.o op_init.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o op_getattr.o op_getattr.c
cc -I/sw/include/fuse -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -std=gnu99 -g3 -Wall -Wextra -c -o op_open.o op_open.c
cc -o ext4fuse fuse-main.o logging.o extents.o disk.o super.o inode.o op_read.o op_readdir.o op_readlink.o op_init.o op_getattr.o op_open.o -L/sw/lib -pthread -lfuse -liconv
ld: warning: in /sw/lib/libfuse.dylib, file was built for i386 which is not the architecture being linked (x86_64)
ld: warning: in /sw/lib/libiconv.dylib, file was built for i386 which is not the architecture being linked (x86_64)
Undefined symbols:
"_fuse_main_real", referenced from:
_main in fuse-main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [ext4fuse] Error 1

Very low performance

Hi!
ext4fuse under freebsd 10 works good, but something wrong with IO performance
Here i wanna show you one test:

$ dd if=/mnt/lin1/home/user/Video/video.mkv of=/dev/null
^C326488+0 records in
326488+0 records out
167161856 bytes transferred in 35.129953 secs (4758385 bytes/sec)

So, we have 4.7 mb/s. And i know, its not HDD problem. When i am watching FullHD video (mplayer or mpv) from this ext4 partition I must use -cache option to prevent lagging.

Do you have any ideas? ext4fuse was installed from ports

Thank you.

"make test" should fail if mkfs.ext4 is not available

Right now is a bit annoying because there's no error reported at all. From time to time I face this on my debian, ext3-only machine and takes some minutes of head-scratching before I realize what's going on...

Cannot access mountpoint (d?????????? ? ? ? ? ? disk3s1)

$ sudo ext4fuse /dev/disk3s1 /Volumes/disk3s1 -o logfile=ext4fuse.log
$ mount | tail -n1
ext4fuse@osxfuse0 on /Volumes/disk3s1 (osxfuse, synchronous)
$ stat /Volumes/disk3s1 
stat: cannot stat '/Volumes/disk3s1': No such file or directory
$ ls /Volumes/disk3s1 
ls: cannot access '/Volumes/disk3s1': No such file or directory
$ ls -la /Volumes/ | tail -n1
ls: cannot access '/Volumes/disk3s1': No such file or directory
d??????????  ? ?      ?        ?            ? disk3s1
$ ext4fuse --version
Version: ext4fuse-0.1.3
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.13.5
BuildVersion:	17F77
$ head ext4fuse.log 
[debug][__disk_read:105] Disk Read: 0x438 +0x2 [main:135]
[info] [op_init:20] Using FUSE protocol 7.19
[debug][__disk_read:105] Disk Read: 0x400 +0x400 [super_fill:57]
[info] [super_fill:59] BLOCK SIZE: 4096
[info] [super_fill:60] BLOCK GROUP SIZE: 134217728
[info] [super_fill:61] N BLOCK GROUPS: 7452
[info] [super_fill:62] INODE SIZE: 256
[info] [super_fill:63] INODES PER GROUP: 8192
[debug][__disk_read:105] Disk Read: 0x1000 +0x40 [super_group_fill:90]
[debug][__disk_read:105] Disk Read: 0x1040 +0x40 [super_group_fill:90]
$ tail ext4fuse.log 
[debug][__disk_read:105] Disk Read: 0x496100 +0x9c [inode_get_by_number:155]
[debug][op_getattr:32] getattr done
[debug][op_getattr:23] getattr(/.Spotlight-V100/Store-V1/VolumeConfig.plist)
[debug][inode_get_idx_by_path:202] Looking up: /.Spotlight-V100/Store-V1/VolumeConfig.plist
[debug][dcache_lookup:104] Looking up .Spotlight-V100/Store-V1/VolumeConfig.plist,15: Not found (no childs)
[debug][inode_get_idx_by_path:207] Looking up after dcache: .Spotlight-V100/Store-V1/VolumeConfig.plist
[debug][super_group_inode_table_offset:73] Inode table offset: 0x496
[debug][__disk_read:105] Disk Read: 0x496100 +0x9c [inode_get_by_number:155]
[debug][extent_get_block_from_ees:23] Extent contains 1 entries
[debug][extent_get_block_from_ees:24] Lo

The log looks cut off.

File: ext4fuse.log.

Slow performance with Ext4 FS with external USB drive - FreeBSD 10.3-RELEASE i386

Greetings!

Here is my issue

OS: FreeBSD 10.3-RELEASE
Architecture: i386
Kernel: generic / not custom
ext4fuse: Version: ext4fuse-0.1.3
ext4fuse source: Binary: pkg install fusefs-ext4fuse-0.1.3,1
Filesystem being mounted (src): Linux EXT4
Host filesystem (dest): ZFS
Actual transfer speed attained: 1.28MB/s

Here is the performance of the USB device when bypasing ext4fuse:

dd if=/dev/da0 of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 34.719595 secs (30926105 bytes/sec)

Device da0 is the USB storage device in question.

For me the current workaround will have to be to copy over a networked connection.

Note! Copying files from this drive over a networked connection gives expected performance. So far tried on a 100 Mbit link and that gives 10 MB/s transfer speed between this disk enclosure and the destination host described above.

Just wanted to report the issue,

Here follows output from dmesg produced while connecting the USB device:

ugen4.2: <Generic> at usbus4
umass0: <Generic External, class 0/0, rev 2.00/2.12, addr 2> on usbus4
umass0:  SCSI over Bulk-Only; quirks = 0x4000
umass0:7:0:-1: Attached to scbus7
da0 at umass-sim0 bus 0 scbus7 target 0 lun 0
da0: <Generic External 2.12> Fixed Direct Access SPC-2 SCSI device
da0: Serial Number 4C3630484451504720202020
da0: 40.000MB/s transfers
da0: 286188MB (586114704 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
fuse-freebsd: version 0.4.4, FUSE ABI 7.8
ugen4.2: <Generic> at usbus4 (disconnected)
umass0: at uhub3, port 5, addr 2 (disconnected)
da0 at umass-sim0 bus 0 scbus7 target 0 lun 0
da0: <Generic External 2.12> s/n 4C3630484451504720202020 detached
(da0:umass-sim0:0:0:0): Periph destroyed

crashes on FreeBSD 9.1-RELEASE amd64

I try to rsync a lot of files from an ext4 filesystem to a ZFS filesystem. When it finishes one of the large files I get a lot of error messages and rsync dies. In /var/log/messages I see this:

kernel: pid 1329 (ext4fuse), uid 0: exited on signal 6 (core dumped)

I have uploaded a zip-file with the core-dump, the ext4fuse-binary and the rsync-log: http://filebin.ca/ncHlrLfGdta/bug_files.zip .

The version used is 0.1.3,1 from the ports tree.

Thank you!

Unable to open ext4 mounted partition on El Captain

Hi there,
Great project but I am struggling to get it working.
Is El Captain supported?

I have mounted my ext4 partition but i can't proceed to get into partition!
Below is the output of mount

    mount                                                      
    /dev/disk1 on / (hfs, local, journaled)
    devfs on /dev (devfs, local, nobrowse)
    map -hosts on /net (autofs, nosuid, automounted, nobrowse)
    map auto_home on /home (autofs, automounted, nobrowse)
    /dev/disk2s2 on /Volumes/Untitled (ntfs, local, nodev, nosuid, read-only, noowners)
    /dev/disk2s5 on /Volumes/Back up (ntfs, local, nodev, nosuid, read-only, noowners)
    /dev/disk2s1 on /Volumes/RECOVERY (ntfs, local, nodev, nosuid, read-only, noowners)
    ext4fuse@osxfuse0 on /Users/root3d/Documents/linux-mount-point (osxfusefs, synchronous)
    ext4fuse@osxfuse1 on /Users/root3d/Documents/linux-mount-point-2 (osxfusefs, synchronous)

Seems like there is something, can you point out how to proceed further?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.