Coder Social home page Coder Social logo

minirec's Introduction

MiniRec

Build

An experimental project that builds a minimal Linux system with the capability of repairing a broken system (a.k.a. recovery disc).

Highlights

  • Only 14M! (Although it's still way too big)

  • Uses buildroot to compile the kernel as well as programs

  • Contains various of commonly used packages, for example, zip, xz, unrar, p7zip, fdisk (does not support creating GPT table), gdisk, and various of FS tools and programs.

  • Uses BusyBox as its init system as well as shell. BusyBox provides numerous of utilities.

  • Self-contained EFI Stub application, with root image builtin.

  • Network is not supported.

  • Various of FS support in kernel (for example, Btrfs, Xfs, NTFS...). NVME support enabled.

  • My experimental project :D

Why not ArchLinux ISO?

  • Focuses on repairing.

  • Tiny. ArchLinux ISO is about ~650MB in size.

  • Trying compiling Linux from "scratch" (although buildroot had done so many things for me)

Requirements

Tested on QEMU:

  • x86-64 system

  • 512M RAM

Usage

  • Download the latest .efi in the releases page.

  • Boot the .efi application.

  • That's it!

Build

Make sure you have 7G free space of disk.

  • Clone this repo with submodules.

  • cd to buildroot

  • make -jN BR2_EXTERNAL=../minirec_tree/ minirec_defconfig

  • make -jN

Sit back and relax. 请坐和放宽。

This might take several minutes hours. Depending on your environment. It took half a hour on my machine with -j9 (XPS 13 9360).

Output: output/images/linux.efi.

Development

  1. Do not make changes directly to buildroot/.config. Use make nconfig instead.

  2. After making changes to your buildroot config, use make -jN savedefconfig to export the puerified config to the board tree.

  3. If you wish to change the kernel config, use make -jN linux-nconfig. The same, use make -jN linux-update-defconfig to export the puerified linux kernel config.

  4. Make sure buildroot/ is clean (no changes are made), by using git status.

  5. All changes should be made in the device tree.

Disclaimer

This is an experimental project. It's only used for:

  • Debugging & Learning for myself.

  • Experiencing the path myself.

  • Doing some side-projects.

It does not:

  • Guarantee any SLA.

  • Work for all of you.

  • Guarantee to not damage your data. Your data may be damaged as potential bugs.

  • Provide LTS, or actively maintenance.

  • Provide fixes or feedbacks on issues.

  • Be end user friendly, or have a highly detailed document.

Use it as your own risk.

Licenses

GPL v2.

linuxx64.efi.stub comes from systemd.

minirec's People

Contributors

trumeet avatar

Stargazers

 avatar

Watchers

 avatar  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.