{"id":42528772,"url":"https://github.com/dzacca/zfs_on_root","last_synced_at":"2026-01-28T16:10:41.141Z","repository":{"id":184980152,"uuid":"671848582","full_name":"dzacca/zfs_on_root","owner":"dzacca","description":"Script for installing Ubuntu Desktop w/ ZFS on Root, ZFSBootMenu, and rEFInd","archived":false,"fork":false,"pushed_at":"2024-05-07T12:36:05.000Z","size":112,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-08T11:35:28.737Z","etag":null,"topics":["ubuntu","zfs","zfs-filesystem","zfs-snapshots","zfsbootmenu","zfsonlinux","zfsonroot"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dzacca.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-28T09:25:11.000Z","updated_at":"2024-05-07T14:50:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ed0b1b4-eed4-4368-8063-2aadd2323ce8","html_url":"https://github.com/dzacca/zfs_on_root","commit_stats":null,"previous_names":["dzacca/zfs_on_root"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/dzacca/zfs_on_root","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzacca%2Fzfs_on_root","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzacca%2Fzfs_on_root/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzacca%2Fzfs_on_root/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzacca%2Fzfs_on_root/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dzacca","download_url":"https://codeload.github.com/dzacca/zfs_on_root/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dzacca%2Fzfs_on_root/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28846832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ubuntu","zfs","zfs-filesystem","zfs-snapshots","zfsbootmenu","zfsonlinux","zfsonroot"],"created_at":"2026-01-28T16:10:41.073Z","updated_at":"2026-01-28T16:10:41.132Z","avatar_url":"https://github.com/dzacca.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZFS_ON_ROOT\n\n## for Ubuntu 23.04 and higher\n\nThis is a very basic script that I created to make it quicker for me to set up VMs or play around with ZFS-based installation of Ubuntu.\nThe script will set up a system using [ZFSBootMenu](https://docs.zfsbootmenu.org/en/v2.2.x/index.html)(ZBM) and [rEFInd](https://www.rodsbooks.com/refind/).\nEFI entries are created directly wich efibootmgr for ZBM **and** for rEFInd. Why? Purely to have a backup in case something goes wrong.\n\nWhy ZBM? Because I had enough of random issues with GRUB and ZFS. ZBM just works and integrates a number of ZFS dedicated functionalities that makes my life easier.\nWhy rEFInd? Now, this is not technically needed, but it's simple to use, tweak, and maintain and works like a charm in dual/multi-boot environments.\n\nThe script is based on the documentation from\n[OpenZFS](https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubuntu/Ubuntu%2022.04%20Root%20on%20ZFS.html#step-5-grub-installation), [ZFSBootMenu](https://docs.zfsbootmenu.org/en/v2.2.x/index.html), and with some ideas taken from  [ubuntu-server-zfsbootmenu](https://github.hscsec.cn/Sithuk/ubuntu-server-zfsbootmenu).\nThe script currently install Ubuntu on a single disk, with zpool encrypted with native ZFS encryption, and no ZSys installation (I don't use ZSys and it will be deprecated in any case). The layout of the partitions is a modified version of what used by ZFSBootMenu as I create the following:\n\n- Partition 1: EFI\n- Partition 2: Swap (size is automatically calculated by the script and it's set at the same size of the amount of memory you have)\n- Partition 3: zroot\n\nThe script uses the ZFS layout recommended by ZBM\n\nStarting from version 1.0.16 the script has been production-tested on various brands of laptops and desktops machines with no reported issue.\nThere's little to no documentation at this stage, although the script is pretty much self-explanatory.\n\nFeel free to provide feedback, open issues, or send pull requests.\n\n### Important\n\nYou need to update the variables in `zfs_on_root_zbm.sh` to point to the correct\ndisk and setup the initial variables to define the behaviour of the script.\n\nIf your machine uses RTL8821CE as a wifi chipset you are 99% guaranteed to face connectivity issues bad enough to impact the stability of your \nsystem, even during the installation. Set the relevant variable to \"true\" and the script will download, compile, and install the working drivers.\nIf you are in this situation **connect your machine to the network with a physical cable and avoid wifi during the installation**.\n\n### Usage\n\n```bash\ngsettings set org.gnome.desktop.media-handling automount false\nsudo -i \n```\n\n```bash\ncd\napt update \u0026\u0026 sudo apt install -y git vim\ngit clone https://github.com/dzacca/zfs_on_root.git\ncd zfs_on_root\nvi zfs_on_root_zbm.sh\n```\n\nEdit the variables at the beginning of the file and make sure to change RUN to true, or the script will exit without doing anything.\n\n```shell\n# Change ${RUN} to true to execute the script\nRUN=\"false\"\n\n# Variables - Populate/tweak this before launching the script\nexport DISTRO=\"desktop\"           #server, desktop\nexport RELEASE=\"mantic\"           # The short name of the release as it appears in the repository (mantic, jammy, etc)\nexport DISK=\"sda\"                 # Enter the disk name only (sda, sdb, nvme1, etc)\nexport PASSPHRASE=\"SomeRandomKey\" # Encryption passphrase for \"${POOLNAME}\"\nexport PASSWORD=\"mypassword\"      # temporary root password \u0026 password for ${USERNAME}\nexport HOSTNAME=\"myhost\"          # hostname of the new machine\nexport USERNAME=\"myuser\"          # user to create in the new machine\nexport MOUNTPOINT=\"/mnt\"          # debootstrap target location\nexport LOCALE=\"en_US.UTF-8\"       # New install language setting.\nexport TIMEZONE=\"Europe/Rome\"     # New install timezone setting.\nexport RTL8821CE=\"false\"          # Download and install RTL8821CE drivers as the default ones are faulty\n\n## Auto-reboot at the end of installation? (true/false)\nREBOOT=\"false\"\n\n########################################################################\n#### Enable/disable debug. Only used during the development phase.\nDEBUG=\"false\"\n########################################################################\n########################################################################\n########################################################################\nPOOLNAME=\"zroot\" #\"${POOLNAME}\" is the default name used in the HOW TO from ZFSBootMenu. You can change it to\n                 # whateven you want but I discourage it.\n```\n\nas root, execute the script `./zfs_on_root_zbm.sh`\n\nI adedd an option to download and install rl8821ce drivers as the \nones shipped with ubuntu always gives me headhaches.\n\n#### Important - EFI Default entry \nIf at the end of the installation, when you reboot, rEFInd doesn't show up, it's likely that your BIOS is pointing to another EFI entry.\nEnter the machine set-up menu at boot time and change the boot order to use rEFInd as the default one.\n\n### To Do\n\n- add options for more customisation\n\n### Contributors\n- https://github.com/VVSShh\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdzacca%2Fzfs_on_root","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdzacca%2Fzfs_on_root","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdzacca%2Fzfs_on_root/lists"}