Git Product home page Git Product logo

zbm-luks-unlock's Introduction

zbm-luks-unlock

A custom build of ZFSBootMenu to allow unlocking and using zfs pools residing in luks volumes.

Usage

  1. Make sure either podman or docker is installed.

  2. Clone the current repository

  3. Fetch the latest zbm-builder.sh script from ZFSBootMenu repository

    curl -O https://raw.githubusercontent.com/zbm-dev/zfsbootmenu/master/zbm-builder.sh
    
  4. Build a custom ZFSBootMenu image by using current repository as a build directory

    cd zbm-luks-unlock
    ./zbm-builder.sh -H
    
  5. The newly built ZFSBootMenu image will reside in the build directory

How it works

The hooks mechanism of ZFSBootMenu is used to inject two hooks into the boot process.

First is the luks-unlock.sh early-setup hook that prompts the user for the passphrase that unlocks the luks volumes. This allows ZFSBootMenu to discover zfs pools residing in luks volumes. The passphrase is also stored a relevant keyfile in memory to be used by the later hooks.

Second is the initramfs-inject.sh boot-sel hook that with a clever trick, injects the keyfile created by the previous hook to the initramfs of the selected boot environment. This allows a properly configured system (either using kernel params or a relevant /etc/crypttab file) to use this keyfile to automatically unlock the luks volumes to be used, without asking again the user for the passphrase.

License

This project is licensed under the same MIT license as ZFSBootMenu. Please see LICENSE for details.

zbm-luks-unlock's People

Contributors

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