• Stars
    star
    302
  • Rank 138,030 (Top 3 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ZSys daemon and client for zfs systems

ZSys

ZSys daemon and client for zfs systems

Code quality Go Report Card codecov License

ZSys is a Zfs SYStem tool targeting an enhanced ZOL experience.

It allows running multiple ZFS systems in parallel on the same machine, get automated snapshots, managing complex zfs dataset layouts separating user data from system and persistent data, and more.

Documentation

You can find a whole series of blog posts explaining in details the internals and goals of ZSys.

Usage

User commands

zsysctl

ZFS SYStem integration control zsys daemon

Synopsis

Zfs SYStem tool for an enhanced ZFS on Linux experience. It allows running multiple ZFS system in parallels on the same machine, get automated snapshots, managing complex zfs dataset layouts separating user data from system and persistent data, and more.

zsysctl COMMAND [flags]
Options
  -h, --help            help for zsysctl
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl completion

Generates completion scripts (will attempt to automatically detect shell)

Synopsis

To load completions: NOTE: When shell type isn't defined shell will be automatically identified based on the $SHELL environment vairable

Bash:

source <(zsysctl completion bash)

# To load completions for each session, execute once:
# Linux:
zsysctl completion bash > /etc/bash_completion.d/zsysctl
# macOS:
zsysctl completion bash > /usr/local/etc/bash_completion.d/zsysctl

Zsh:

# If shell completion is not already enabled in your environment,
# you will need to enable it.  You can execute the following once:

echo "autoload -U compinit; compinit" >> ~/.zshrc

# To load completions for each session, execute once:
zsysctl completion zsh > "${fpath[1]}/_zsysctl"

# You will need to start a new shell for this setup to take effect.

PowerShell:

zsysctl completion powershell | Out-String | Invoke-Expression

# To load completions for every new session, run:
zsysctl completion powershell > zsysctl.ps1
# and source this file from your PowerShell profile.
zsysctl completion [bash|zsh|powershell] [flags]
Options
  -h, --help   help for completion
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl list

List all the machines and basic information.

Synopsis

Alias of zsysctl machine list. List all the machines and basic information.

zsysctl list [flags]
Options
  -h, --help   help for list
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl machine

Machine management

zsysctl machine COMMAND [flags]
Options
  -h, --help   help for machine
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl machine list

List all the machines and basic information.

zsysctl machine list [flags]
Options
  -h, --help   help for list
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl machine show

Shows the status of the machine.

zsysctl machine show [MachineID] [flags]
Options
      --full   Give more detail informations on each machine.
  -h, --help   help for show
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl save

Saves the current state of the machine. By default it saves only the user state. state_id is generated if not provided.

Synopsis

Alias of zsysctl state save. Saves the current state of the machine. By default it saves only the user state. state_id is generated if not provided.

zsysctl save [state id] [flags]
Options
      --auto                 Signal this is an automated request triggered by script
  -h, --help                 help for save
      --no-update-bootmenu   Do not update bootmenu on system state save
  -s, --system               Save complete system state (users and system)
  -u, --user string          Save the state for a given user or current user if empty
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service

Service management

zsysctl service COMMAND [flags]
Options
  -h, --help   help for service
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service dump

Dumps the current state of zsys.

zsysctl service dump [flags]
Options
  -h, --help   help for dump
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service gc

Run daemon state saves garbage collection.

zsysctl service gc [flags]
Options
  -a, --all    Collects all the datasets including manual snapshots and clones.
  -h, --help   help for gc
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service loglevel

Sets the logging level of the daemon.

zsysctl service loglevel 0|1|2 [flags]
Options
  -h, --help   help for loglevel
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service refresh

Refreshes machines states.

zsysctl service refresh [flags]
Options
  -h, --help   help for refresh
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service reload

Reloads daemon configuration.

zsysctl service reload [flags]
Options
  -h, --help   help for reload
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service status

Shows the status of the daemon.

zsysctl service status [flags]
Options
  -h, --help   help for status
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service stop

Stops zsys daemon.

zsysctl service stop [flags]
Options
  -h, --help   help for stop
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl service trace

Start profiling until you exit this command yourself or when duration is done. Default is CPU profiling with a 30s timeout.

zsysctl service trace [flags]
Options
      --duration int    Duration of the capture. Default is 30 seconds. (default 30)
  -h, --help            help for trace
  -o, --output string   Dump the trace to a file. Default is ./zsys.<trace-type>.pprof
  -t, --type string     Type of profiling cpu or mem. Default is cpu. (default "cpu")
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl show

Shows the status of the machine.

Synopsis

Alias of zsysctl machine show. Shows the status of the machine.

zsysctl show [MachineID] [flags]
Options
      --full   Give more detail informations on each machine.
  -h, --help   help for show
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl state

Machine state management

zsysctl state COMMAND [flags]
Options
  -h, --help   help for state
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl state remove

Remove the current state of the machine. By default it removes only the user state if not linked to any system state.

zsysctl state remove [state id] [flags]
Options
      --dry-run       Dry run, will not remove anything
  -f, --force         Force removing, even if dependencies are found
  -h, --help          help for remove
  -s, --system        Remove system state (system and users linked to it)
  -u, --user string   Remove the state for a given user or current user if empty
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl state save

Saves the current state of the machine. By default it saves only the user state. state_id is generated if not provided.

zsysctl state save [state id] [flags]
Options
      --auto                 Signal this is an automated request triggered by script
  -h, --help                 help for save
      --no-update-bootmenu   Do not update bootmenu on system state save
  -s, --system               Save complete system state (users and system)
  -u, --user string          Save the state for a given user or current user if empty
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl version

Returns version of client and server

zsysctl version [flags]
Options
  -h, --help   help for version
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysd

ZFS SYStem integration daemon

Synopsis

Zfs SYStem daemon for an enhanced ZFS on Linux experience. It allows running multiple ZFS system in parallels on the same machine, get automated snapshots, managing complex zfs dataset layouts separating user data from system and persistent data, and more.

zsysd [flags]
Options
  -h, --help            help for zsysd
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysd completion

Generates completion scripts (will attempt to automatically detect shell)

Synopsis

To load completions: NOTE: When shell type isn't defined shell will be automatically identified based on the $SHELL environment vairable

Bash:

source <(zsysd completion bash)

# To load completions for each session, execute once:
# Linux:
zsysd completion bash > /etc/bash_completion.d/zsysd
# macOS:
zsysd completion bash > /usr/local/etc/bash_completion.d/zsysd

Zsh:

# If shell completion is not already enabled in your environment,
# you will need to enable it.  You can execute the following once:

echo "autoload -U compinit; compinit" >> ~/.zshrc

# To load completions for each session, execute once:
zsysd completion zsh > "${fpath[1]}/_zsysd"

# You will need to start a new shell for this setup to take effect.

PowerShell:

zsysd completion powershell | Out-String | Invoke-Expression

# To load completions for every new session, run:
zsysd completion powershell > zsysd.ps1
# and source this file from your PowerShell profile.
zsysd completion [bash|zsh|powershell] [flags]
Options
  -h, --help   help for completion
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

System commands

Those commands are hidden from help and should primarily be used by the system itself.

zsysctl boot

Ensure that the right datasets are ready to be mounted and committed during early boot

zsysctl boot COMMAND [flags]
Options
  -h, --help            help for boot
  -p, --print-changes   Display if any zfs datasets have been modified to boot
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl boot commit

Commit system and user datasets states as a successful boot

zsysctl boot commit [flags]
Options
  -h, --help   help for commit
Options inherited from parent commands
  -p, --print-changes   Display if any zfs datasets have been modified to boot
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl boot prepare

Prepare boot by ensuring correct system and user datasets are switched on and off

zsysctl boot prepare [flags]
Options
  -h, --help   help for prepare
Options inherited from parent commands
  -p, --print-changes   Display if any zfs datasets have been modified to boot
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl boot update-lastused

Update last used timestamp

zsysctl boot update-lastused [flags]
Options
  -h, --help   help for update-lastused
Options inherited from parent commands
  -p, --print-changes   Display if any zfs datasets have been modified to boot
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl boot update-menu

Update system boot menu

zsysctl boot update-menu [flags]
Options
      --auto   Signal this is an automated request triggered by script
  -h, --help   help for update-menu
Options inherited from parent commands
  -p, --print-changes   Display if any zfs datasets have been modified to boot
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl userdata

User datasets creation and rename

zsysctl userdata COMMAND [flags]
Options
  -h, --help   help for userdata
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl userdata create

Create a new home user dataset via an user dataset (if doesn't exist) creation

zsysctl userdata create USER HOME_DIRECTORY [flags]
Options
  -h, --help   help for create
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl userdata dissociate

dissociate current user data from current system but preserve history

zsysctl userdata dissociate USER [flags]
Options
  -h, --help     help for dissociate
  -r, --remove   Empty home directory content if not associated to any machine state
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysctl userdata set-home

Rename a user's home directory via renaming corresponding user dataset

zsysctl userdata set-home OLD_HOME NEW_HOME [flags]
Options
  -h, --help   help for set-home
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

zsysd boot-prepare

Prepare boot by ensuring correct system and user datasets are switched on and off, synchronously

zsysd boot-prepare [flags]
Options
  -h, --help   help for boot-prepare
Options inherited from parent commands
  -v, --verbose count   issue INFO (-v) and DEBUG (-vv) output

More Repositories

1

yaru

All Ubuntu Yaru GNOME themes
SCSS
1,354
star
2

ubuntu-make

Easy setup of common tools for developers on Ubuntu.
HTML
1,197
star
3

gnome-shell-extension-appindicator

Adds KStatusNotifierItem support to the Shell
JavaScript
1,196
star
4

app-center

App Store for Ubuntu made with Flutter 🧡 💙
Dart
644
star
5

archive_yaru.dart

Ubuntu Yaru Flutter Theme
Dart
336
star
6

yaru.dart

Ubuntu Yaru Flutter widgets and themes for building desktop and web applications
Dart
206
star
7

adsys

Active Directory bridging tool suite
Go
199
star
8

snappy-playpen

ARCHIVED. Preserved for posterity, but these examples are no longer maintained here. Please take discussion to the snapcraft forum.
Shell
179
star
9

gnome-shell-communitheme

GNOME Shell Ubuntu community theme "communitheme"
CSS
147
star
10

aad-auth

Azure AD authentication module for Ubuntu
Go
143
star
11

WSL

Ubuntu WSL image build and launcher code.
Go
143
star
12

authd

Authentication daemon for external Brokers
Go
108
star
13

snapcraft-desktop-helpers

Various launchers for snapcraft wiki parts
C
73
star
14

ubuntu-report

Report hardware and other collected metrics like installer or upgrade information
Go
68
star
15

libreoffice-style-yaru-fullcolor

A fullcolor icon pack for Libreoffice of the awesome Yaru theme
Shell
65
star
16

face-detection-demo

Code for face detection demo snap
Go
37
star
17

snap-tutorials-code

Code and examples used in snap related tutorials
QML
34
star
18

archive_yaru_icons.dart

Ubuntu Yaru Flutter Icon Theme
Dart
27
star
19

user_manager

A tutorial for creating an Ubuntu Linux Flutter app, using the yaru theme
Dart
26
star
20

handy_window.dart

Provides modern-looking Handy windows with rounded bottom corners for Flutter applications on Linux
C
26
star
21

codelabs

Ubuntu codelabs offline website
HTML
25
star
22

yaru_colors.dart

Yaru Colors for Flutter
Dart
23
star
23

gnome-sdk

GNOME SDK/Platform snap
Python
22
star
24

yaru_window.dart

Provides API for interacting with top-level Flutter windows.
Dart
22
star
25

libreoffice

This repository hosts the snap info to package up the Libreoffice snap.
Python
21
star
26

font-ubuntu

Polymer imports for ubuntu fonts.
HTML
17
star
27

codelabs-source

HTML
16
star
28

zsys-install

Zfs experiment on ubuntu system
Shell
16
star
29

desktop-snaps

Snap automation tools
Python
15
star
30

wsl-setup

WSL setup starts the setup and reconfigure GUI or TUI
Shell
15
star
31

ubuntu-wsl-splash

A graphical application to enhance user experience with Ubuntu on WSL during the distro installation process.
Dart
14
star
32

docker-snapcraft

Docker image autobuild for latests snapcraft on latest ubuntu LTS version
12
star
33

GoWSL

GoWSL is a package that wraps around the wslApi.dll for safe and idiomatic use within Go projects.
Go
12
star
34

tutorial-deployment

Tutorial deployment tools
Go
11
star
35

gnome-boxes

GNOME Boxes
Shell
10
star
36

zfs

Temporary fork of ZOL (manually pushed to have it in github dashboard)
C
10
star
37

thunderbird

Python
10
star
38

ubuntu-proxy-manager

D-Bus service to manage system proxy settings on Ubuntu Desktop
Go
9
star
39

gnome-calculator

GNOME Calculator Snap Package
9
star
40

authd-oidc-brokers

OpenID Connect Authd brokers
Go
9
star
41

communitheme-sounds

The Ubuntu community sound theme "Communitheme"
Meson
8
star
42

homebrew-microk8s

Homebrew MicroK8s repo for the MacOS installer
Ruby
7
star
43

microk8s-website

HTML
7
star
44

grubzfs-testsuite

Test for zfs (zsys/non zsys) grub menu generation
Go
7
star
45

snow-on-me-snap

A simple nodejs webserver serving christmas snow on demand and showing up configure snap options
JavaScript
7
star
46

communitheme-snap-helpers

Various build and run helper for communitheme snap
Shell
7
star
47

snap-tools

Tools useful for snap maintenance by the ~ubuntu-desktop team
Shell
6
star
48

cheese

Take photos and videos with your webcam, with fun graphical effects
6
star
49

gtk-common-themes

Shell
6
star
50

app-center-ratings

Rust
6
star
51

dev-scripts-ubuntu

Random scripts for doing Ubuntu work
Python
6
star
52

ubuntu-release-metrics

Code to fetch data to display on https://ubuntu-release.kpi.ubuntu.com/
Python
6
star
53

uupgrade-web

Ubuntu Upgrade checker web frontend
Python
6
star
54

face-detection-web

Single page website for face detection (using face-detection-demo backend) using Polymer
JavaScript
6
star
55

gnome-system-monitor

System Monitor
5
star
56

simple-webserver-part

Snapcraft simple webserver part
Go
5
star
57

yaru_test.dart

Extensions for testing Yaru Flutter applications
Dart
5
star
58

gedit

Edit text files
5
star
59

flutter_project_template

5
star
60

simple-scan

Document Scanning Application
5
star
61

communitheme-set-default

Tools to help end user resetting communitheme settings
Shell
5
star
62

christmas-music-carousel-snap

Snap for a christmas music carousel
Go
5
star
63

desktop-cve-import

Build reports of the Ubuntu Desktop Snaps which could benefit from a rebuild to fix CVE issues in their staged packages
Python
5
star
64

wsl-actions-example

A small demonstration on how to use our Github actions to run your CI on WSL
Python
5
star
65

uupgrade-docker

Docker containers for upgrade jobs
Shell
4
star
66

kstore

Key store
C
4
star
67

booth-demo-websites

Demo websites configuration for Ubuntu Demo manager
4
star
68

community-fosdem-2022-content

4
star
69

gnome-text-editor

GNOME Text Editor
4
star
70

booth-demo-manager

Display snap for events
Go
4
star
71

desktop-devel-feedback

Shell
4
star
72

gnome-chess

This repository is the snap data that grabs the upstream gnome-chess and packages it as a snap.
4
star
73

community-fosdem-2022-static

4
star
74

gnome-mines

Clear hidden mines from a minefield
4
star
75

ubuntu-core-slides

Web version of ubuntu-core-slides exported.
4
star
76

gnome-shell-ubuntu-extensions

The ubuntu gnome-shell-extensions
4
star
77

snaps-demo-manager

Manage snaps used in our demo by autoinstalling, autoremoving and such
Go
3
star
78

go-i18n

i18n wrapper joining gettext support for Linux and Windows
Go
3
star
79

deb-ci

3
star
80

gnome-2048

GNOME 2048 Snap Package
3
star
81

uupgrade-worker

3
star
82

tali

Roll dice and score points
3
star
83

gnome-sudoku

3
star
84

gnome-font-viewer

3
star
85

evince

Document viewer for popular document formats
3
star
86

decorate

Go package containing various helpers to decorate errors with fewer lines of code in functions.
Go
3
star
87

quadrapassel

Quadrapassel Snap Package
3
star
88

gtk-theme-pop

Shell
3
star
89

snap-theme-examples

Experimenting some snap themes possible syntax
3
star
90

gnome-mahjongg

Match tiles and clear the board
3
star
91

test-contributions-review

This is just a project to test contribution review solutions
C++
3
star
92

gnome-contacts

snap packaging for gnome-contacts
2
star
93

gnome-taquin

2
star
94

gnome-info-collect

A simple utility to collect system information.
2
star
95

community-events-assets

2
star
96

gnome-dictionary

2
star
97

gnome-recipes

Snap packaging for gnome-recipes
2
star
98

gnome-weather

2
star
99

gnome-logs

Log viewer for the systemd journal
2
star
100

drawing

2
star