GithubHelp home page GithubHelp logo

mregmi / ext2read Goto Github PK

View Code? Open in Web Editor NEW
278.0 22.0 56.0 7.55 MB

A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows.

Home Page: http://ext2read.sf.net

License: GNU General Public License v3.0

C++ 67.89% C 25.96% Objective-C 5.43% QMake 0.72%

ext2read's Introduction

Ext2Read

Ext2Read is an explorer like utility to explore ext2/ext3/ext4 files. It runs directly without any installation. It can be used to view and copy files and folders. It can recursively copy entire folders. It can also be used to view and copy disk and file. It now supports LVM2 and EXT4 extents.

Features

  • Simple UI designed using Qt4/Qt5
  • View/Read ext2/ext3/ext4 partitions
  • Linux LVM2 Support
  • Ext4 Large File support (untested)
  • Recursively Copy the entire folder or even /
  • Support for external USB disks
  • Support for disk and filesystem images For e.g. Wubi users can just open their root.disk file through this program
  • LRU based Block cache for faster access
  • Unicode support

Usage

The executables and sources can be downloaded from http://ext2read.sf.net

Notice

  • This program must be run as Administrator in order to directly access partitions. If you are not automatically asked to elevate, right-click the file and select Run as Administrator.
  • This is not a transparent file system driver, just a user space tool.
  • The LVM2 metadata can be complex because of the wide variety of configuration possibilities. All configurations has not been tested. If LVM2 does not work in your system, please file a bug with your LVM2 metadata.

Contributing

If you find any bugs, have any questions or comments, please let us know.

If any of you are interested in joing this project, you can join the mailing list and discuss. Join from here https://lists.sourceforge.net/lists/listinfo/ext2read-devel

Building

Windows

Building for Windows requires MinGW compiler.

NOTE: Either copy the dependent Qt DLLs into the same folder as the built ext2explore.exe or setup your PATH environment variable correctly! Common mistakes are other PATH entries which bundle an old version of Qt or the wrong bitness (32/64 Bit).

Windows (32bit)

Qt officially supports MinGW 32bit, so just download their official release, run Qt Creator and build.

Windows (64bit)

Qt does not officially support MinGW 64bit. Therefor we need to setup the toolchain on our own:

  1. Download and extract a compiler: MinGW-W64 (e.g. posix-seh)
  2. Download and extract prebuilt Qt libraries: Qt64-NG (e.g. posix-seh)
    NOTE: Unfortunately this project is closed after Qt version 5.5.0. If you need a newer version, build it yourself.
    1. Run qtbinpatcher.exe whenever you move your folder.
  3. Download and install Qt-Creator
  4. Setup Qt Creator in Tools > Options > Build & Run
    1. Add Compiler (C: gcc.exe, C++: g++.exe, 32/64 Bit: select ABI)
    2. Add Debugger (gdb.exe)
    3. Add Qt version (qmake.exe)
    4. Add Kit

Afterwards, you can start the build process.

ext2read's People

Contributors

darkdragon-001 avatar diaasami avatar hackedd avatar mregmi avatar xunzhaoderen 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

ext2read's Issues

Finds one but not the other logical volume

Great project this, no other Windows app I know of can read LVM/ext4 drives. When I try it, ext2read opens volumes_fedora/root but fails to open volumes_fedora/home. There's no error message, it just doesn't show up. Here's the log. Both drives are ext4 on LVM2.

Error Opening \\.\PhysicalDrive6. Error Code 2
No of disks 6
Scanning \\.\PhysicalDrive0
index 0 ID 6 size 144522 
index 2 ID 7 size 204800 
index 3 ID 7 size 608018432 
Scanning \\.\PhysicalDrive1
index 0 ID 82 size 16771797 
index 1 ID 5 size 2040255 
index 4 ID 83 size 1028097 
Block size 1024, inp 2040, inodesize 128
index 2 ID 8E size 302857380 
LVM Physical Volume found disk 1 partition 2
PV Metadata: LABELONE� %UUID=XnVCy7Siq12eLoQILcNJIdVYuyt2z0SQ offset 4096 

volumes_fedora {
id = "CmI6qH-4yBf-8OOH-Wp1c-yXGz-uuub-TUdkH1"
seqno = 7
status = ["RESIZEABLE", "READ", "WRITE"]
flags = []
extent_size = 8192
max_lv = 0
max_pv = 0
metadata_copies = 0

physical_volumes {

pv0 {
id = "XnVCy7-Siq1-2eLo-QILc-NJId-VYuy-t2z0SQ"
device = "/dev/sdb3"

status = ["ALLOCATABLE"]
flags = []
dev_size = 302857380
pe_start = 384
pe_count = 36969
}
}

logical_volumes {

root {
id = "dqHjdy-lxy0-Qmof-crtc-INIf-vEPf-IgIBgb"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 2

segment1 {
start_extent = 0
extent_count = 2048

type = "striped"
stripe_count = 1    # linear

stripes = [
"pv0", 0
]
}
segment2 {
start_extent = 2048
extent_count = 1024

type = "striped"
stripe_count = 1    # linear

stripes = [
"pv0", 34048
]
}
}

home {
id = "vjkCql-xIRB-uIQM-2Qgg-cA8G-Z1nd-nBCYK1"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1

segment1 {
start_extent = 0
extent_count = 32000

type = "striped"
stripe_count = 1    # linear

stripes = [
"pv0", 2048
]
}
}
}
}
# Generated by LVM2 version 2.02.84(2) (2011-02-09): Sat Aug 18 16:48:18 2012

contents = "Text Format Volume Group"
version = 1

description = ""

creation_host = "trinity"   # Linux trinity 2.6.41.4-1.fc15.x86_64 #1 SMP Tue Nov 29 11:53:48 UTC 2011 x86_64
creation_time = 1345304898  # Sat Aug 18 16:48:18 2012

Volgroup found seq 7, extent_size 8192
Volgroup added 
Physical Volume found. start 384, count 36969, size 302857380
Logical Volume found. Name volumes_fedora_root, segments 2
Segment found. start 0, count 2048
Segment found. start 2048, count 1024
Logical Volume found. Name volumes_fedora_root_

home, segments 1
Segment found. start 0, count 32000
Scanning \\.\PhysicalDrive2
Scanning of \\.\PhysicalDrive2 failed: Scanning \\.\PhysicalDrive3
Scanning of \\.\PhysicalDrive3 failed: Scanning \\.\PhysicalDrive4
Scanning of \\.\PhysicalDrive4 failed: Scanning \\.\PhysicalDrive5
Scanning of \\.\PhysicalDrive5 failed: Block size 4096, inp 8192, inodesize 256
Bad Super Block. The drive  is not ext2 formatted.
Inode 27643 with file size 0

APPCRASH on exiting (in Win8)

Every exit from an application leads to crash:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: ext2explore.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 4c13d4d4
Имя модуля с ошибкой: ext2explore.exe
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 4c13d4d4
Код исключения: c0000005
Смещение исключения: 004de400
Версия ОС: 6.2.9200.2.0.0.256.48
Код языка: 1049
Дополнительные сведения 1: 5861
Дополнительные сведения 2: 5861822e1919d7c014bbb064c64908b2
Дополнительные сведения 3: 5c1f
Дополнительные сведения 4: 5c1f554df00553b422a8baa03b19335a

Building instructions

Can somebody please elaborate on the building environment?

I downloaded Qt 5.8.0 and used Qt Creator with Visual Studio 2015 compiler on Windows 10, but dirent.h was not found. Therefore, I suggest another compiler must be used. Which compiler works?

@mregmi Do you use MinGW or GCC (cross-compiling)? Or something else?

Problems reading directories on USB

While I can successfully read partitions of my internal drive, I have problems accessing my external drive (connected via USB). The format is ext4. All folders except for lost+found are displayed like files and therefore cannot be expanded. Viewing the properties lists them still as type Directory.

Separate library from gui ?

Hi,
I think it would be a good thing if the library was separate from the gui so things can be clearer and easy to understand. I need access some files in an ext4 image without mounting in my project.
E.g an api would be good.

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.