Giter Club home page Giter Club logo

fsarchiver's Introduction

=====================================================================
fsarchiver: Filesystem Archiver for Linux [http://www.fsarchiver.org]
=====================================================================

About FSArchiver
----------------
FSArchiver is a system tool that allows you to save the contents of a
filesystem to a compressed archive file. The filesystem contents can be
restored on a device which has a different size and it can be restored on a
different filesystem. Unlike tar/dar, FSArchiver also creates the
filesystem when it extracts the data to devices. Everything is checksummed
in the archive in order to protect the data. If the archive is corrupt, you
just lose the current file, not the whole archive. FSArchiver is released
under the GPLv2 license. You should read the Quick Start guide
[http://www.fsarchiver.org/quickstart/] if you are using FSArchiver for the
first time.

Detailed description
--------------------
The purpose of this project is to provide a safe and flexible filesystem
backup/deployment tool. Other open-source filesystems tools such as
Partimage already exist. These tools are working at the filesystem block
level, so it's not possible to restore the backup to a smaller device, and
restoring to a bigger one forces you to resize the filesystem by hand.

The purpose is to have a very flexible program. FSArchiver can extract an
archive to a device which is smaller that the original one as long as there
is enough space to store the data. It can also restore the data on a
different filesystem, so you can use it when you want to convert your
filesystem: you can backup an EXT3 filesystem, and restore it as ReiserFS.

FSArchiver works at the file level. It can make an archive of most Linux
filesystems (EXT3, ReiserFS, XFS, ...) that the running kernel can mount
with read-write support. It will preserve all the standard Unix file
attributes (permissions, timestamps, symbolic-links, hard-links,
extended-attributes, ...), as long as the kernel has support for them
enabled.

Limitations
-----------
There are limitations anyway: FAT filesystem is supported basically for EFI
System Partition volumes (UEFI systems) and won't work for bootable Windows
volumes. Also, NTFS support is experimental and shouldn't be used in
production. FSArchiver won't preserve features which are very specific to a
filesystem. For instance, if you create a snapshot in a Btrfs volume,
FSArchiver won't know anything about that, and it will just backup the
contents seen when you mount the device.

FSArchiver is safe when it makes backups of devices which are not mounted
or are mounted read-only. There is an option to force the backup of a
read-write mounted volume, but there may be problems with the files that
changed during the backup. If you want to backup a device which are in use,
the best thing to do is to make an LVM snapshot of it using lvcreate -s,
which is part of the LVM userland tools. Unfortunately you can only make
snapshots of devices which are LVM Logical Volumes.

Protection against data loss
----------------------------
FSArchiver is using two levels of checksums to protect your data against
corruption. Each block of each file has a 32-bit checksum written in the
archive. That way we can identify which block of your file is damaged. Once
a file has been restored, the MD5 checksum of the whole file is compared to
the original MD5. It's a 128-bit checksum, so it will detect all file
corruptions. In case one file is damaged, FSArchiver will restore all the
other files from your archive, so you won't lose all your data. It's very
different from tar.gz where the whole tar is compressed with gzip. In that
case, the data which are written after the corruption are lost.
FSArchiver-0.2.3 and newer versions are able to ignore corrupt contents in
an archive file, so all the other files will be restored.

fsarchiver's People

Contributors

cavazquez avatar doughdemon avatar fdupoux avatar marcosfrm avatar wally-mageia avatar

Watchers

 avatar

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.