{"id":18055713,"url":"https://github.com/buzz/e4rat","last_synced_at":"2025-04-11T02:02:32.113Z","repository":{"id":10722523,"uuid":"12973595","full_name":"buzz/e4rat","owner":"buzz","description":"Improving Startup Times by Physical Block Reallocation","archived":false,"fork":false,"pushed_at":"2013-09-20T13:06:23.000Z","size":328,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T23:27:32.649Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"imiten/crossoverbackup","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buzz.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-09-20T13:06:03.000Z","updated_at":"2023-12-02T23:25:35.000Z","dependencies_parsed_at":"2022-09-02T06:20:16.626Z","dependency_job_id":null,"html_url":"https://github.com/buzz/e4rat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fe4rat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fe4rat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fe4rat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzz%2Fe4rat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buzz","download_url":"https://codeload.github.com/buzz/e4rat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248328160,"owners_count":21085261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-31T01:11:36.563Z","updated_at":"2025-04-11T02:02:32.081Z","avatar_url":"https://github.com/buzz.png","language":"C++","readme":"INTRODUCTION\n------------\n\ne4rat reduces disk access times through physical file reallocation. It is based\non the online defragmentation ioctl EXT4_IOC_MOVE_EXT from the ext4 filesystem,\nwhich was introduced in Linux Kernel 2.6.31. Therefore, other filesystem types\nor earlier versions of extended filesystems are not supported.\n\ne4rat consists of three binaries. The first is e4rat-collect. Its purpose is to\ngather relevant files by monitoring file accesses during an application startup.\nThe generated file list is the fundament of the second step. With the second\nstep, e4rat-realloc, files are placed physically in a row on disk.\nThe reallocation of the files' content yields a higher disk transfer rate which\naccelerates program start processes.\n\nThird, you can also read-ahead files to gain a higher cache hit rate.\ne4rat-preload transfers files into memory in parallel to program startup.\n\nBecause a file consists of file content and its I-Node information the\npreloading process is divided into two steps. First, it reads the I-Nodes'\ninformation which are still spread over the entire filesystem. In the second\nstep, the files' content is read without causing any disk seeks.\n\nFor more information see: e4rat-collect(8), e4rat-realloc(8), e4rat-preload(8)\n                          and e4rat.conf(5).\n\n\nSAMPLE USAGE: Accelerate the boot process\n-------------\n\nRun e4rat-collect as init process through adding following line to Kernel\nparameters:\n    init=/sbin/e4rat-collect\n\nAfter e4rat-collect has terminated the generated file list is stored at:\n    /var/lib/e4rat/startup.log\n\nBefore reallocating boot files it is recommaned to switch to runlevel 1 to\nstop most of all running proceses to gain write access to the process binary\nfile:\n    init 1\n    \nReallocating boot files:\n    e4rat-realloc  /var/lib/e4rat/startup.log\n\nTo start e4rat-preload as initial process append following to kernel your\nparameters:\n    init=/sbin/e4rat-preload\n\nDEPENDENIES\n-----------\nThe e4rat toolset has the following external dependencies:\n - Linux Kernel (\u003e= 2.6.31)\n - CMake (\u003e= 2.6)\n - pod2man\n - Boost Library (\u003e=1.41): You need the following components installed:\n       system, filesytem, regex, signals2\n - Linux Audit Library (libaudit \u003e=0.1.7)\n - Ext2 File System Utilities (e2fsprogs)\n\nBUILDING\n--------\n\nThe build system is based on CMake, which will generate a Makefile.\nTo build the release version of e4rat run the following command:\n    cmake . -DCMAKE_BUILD_TYPE=release\n    make\n\nAdditianal cmake options:\n CMAKE_INSTALL_PREFIX=\u003cprefix\u003e\n \nOnce you have successfully built the source code install e4rat as root:\n    make install\n\nIf you are running a Debian based Linux you can also install e4rat by\ngenerating a Debian package:\n    make package\n    dpkg -i e4rat_\u003cversion\u003e_\u003carch\u003e.deb\n\nADDITIONAL CMAKE OPTIONS:\n-------------------------\n\nCMAKE_INSTALL_PREFIX=\u003cprefix\u003e\n    install files in \u003cprefix\u003e. When you run make install, libraries will\n    be placed in \u003cprefix\u003e/lib, executables in \u003cprefix\u003e/bin, and so on.\n\n    The default is / if this argument is not passed to cmake.\n\nBUILD_CORE_LIBRARY_STATIC=\u003ctrue|false\u003e\n    set to 'true' to build libe4rat-core library statically. Please not \n    that linking statically increase the file size.\n\n    On 64-bit systems the default is set to 'true' otherwise 'false'.\n\nCMAKE_BUILD_TYPE=\u003crelease|debug\u003e\n    specify build type. Choose either 'debug' or 'release'. The debug\n    version is build with debug info.\n\n    The default is 'debug' if this argument is not passed to cmake.\n\nAUTHORS\n-------\n\ne4rat has been developed by Andreas Rid \u003cconso at users.sf.net\u003e under the\nguidance of Gundolf Kiefer \u003cgundolf.kiefer@hs-augsburg.de\u003e at\nthe University of Applied Sciences, Augsburg.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuzz%2Fe4rat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuzz%2Fe4rat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuzz%2Fe4rat/lists"}