Stage 4: Calamares installer and Btrfs snapshots (0.2.0)
- Package Calamares 3.4.3 (Qt6, widgets UI) with xbps-src. - das-installer: Calamares setup for Void/runit with Das OS branding and slides. It copies the clean live image (live-base), builds locales and the host-only initramfs, rewrites kernels without sparse tails (GRUB 2.12 cannot read Btrfs holes at the end of a file), then removes itself. - das-snapshots: flat Btrfs layout (@, @home, @snapshots, @var_log, @var_cache_xbps), snapper with hourly snapshots via cronie, grub-btrfs menu, snapper-rollback, and a dracut module that boots read-only snapshots with a RAM overlay. - das-settings 0.2.0: start LightDM with the system locale. - Live image: GRUB, efibootmgr and the new packages; Das OS /etc/issue. - Build: wipe stale destdirs before building packages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
---
|
||||
efiBootLoader: "grub"
|
||||
kernelSearchPath: "/boot"
|
||||
kernelPattern: "^vmlinuz.*"
|
||||
kernelParams: [ "quiet", "loglevel=3" ]
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "grub-probe"
|
||||
efiBootMgr: "efibootmgr"
|
||||
efiBootloaderId: "dasos"
|
||||
installEFIFallback: true
|
||||
installHybridGRUB: false
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
displaymanagers:
|
||||
- lightdm
|
||||
defaultDesktopEnvironment:
|
||||
executable: "startxfce4"
|
||||
desktopFile: "xfce"
|
||||
basicSetup: false
|
||||
sysconfigSetup: false
|
||||
lightdm:
|
||||
preferred_greeters: ["lightdm-gtk-greeter.desktop"]
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
restartNowMode: user-unchecked
|
||||
restartNowCommand: "loginctl reboot"
|
||||
notifyOnFinished: false
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
crypttabOptions: luks
|
||||
tmpOptions:
|
||||
default:
|
||||
tmpfs: true
|
||||
options: "defaults,nosuid,nodev,mode=1777"
|
||||
ssd:
|
||||
tmpfs: true
|
||||
options: "defaults,noatime,nosuid,nodev,mode=1777"
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
overwrite: false
|
||||
prefer_grub_d: false
|
||||
keep_distributor: false
|
||||
kernel_params: [ "quiet", "loglevel=3" ]
|
||||
defaults:
|
||||
GRUB_TIMEOUT: 5
|
||||
GRUB_DEFAULT: "saved"
|
||||
GRUB_DISABLE_SUBMENU: true
|
||||
GRUB_TERMINAL_OUTPUT: "console"
|
||||
GRUB_DISABLE_RECOVERY: true
|
||||
GRUB_DISABLE_OS_PROBER: false
|
||||
always_use_defaults: false
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf"
|
||||
convertedKeymapPath: "/usr/share/kbd/keymaps/xkb"
|
||||
writeEtcDefaultKeyboard: false
|
||||
configure:
|
||||
kwin: false
|
||||
gnome: false
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
region: "Europe"
|
||||
zone: "Kyiv"
|
||||
geoip:
|
||||
style: none
|
||||
@@ -0,0 +1,6 @@
|
||||
# Void has no systemd: only D-Bus needs a machine id (/var/lib/dbus/machine-id).
|
||||
---
|
||||
systemd: false
|
||||
dbus: true
|
||||
dbus-symlink: false
|
||||
entropy-copy: false
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: [ bind ]
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: [ bind ]
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
efi: true
|
||||
|
||||
# The flat layout that snapper-rollback expects: the root in @ and snapshots
|
||||
# in @snapshots. Home, logs and the package cache stay out of root snapshots,
|
||||
# so a rollback never touches personal files.
|
||||
btrfsSubvolumes:
|
||||
- mountPoint: /
|
||||
subvolume: /@
|
||||
- mountPoint: /home
|
||||
subvolume: /@home
|
||||
- mountPoint: /.snapshots
|
||||
subvolume: /@snapshots
|
||||
- mountPoint: /var/log
|
||||
subvolume: /@var_log
|
||||
- mountPoint: /var/cache/xbps
|
||||
subvolume: /@var_cache_xbps
|
||||
|
||||
mountOptions:
|
||||
- filesystem: default
|
||||
options: [ defaults ]
|
||||
- filesystem: efi
|
||||
options: [ defaults, umask=0077 ]
|
||||
- filesystem: btrfs
|
||||
options: [ defaults, noatime, compress=zstd:1 ]
|
||||
- filesystem: ext4
|
||||
options: [ defaults, noatime ]
|
||||
- filesystem: xfs
|
||||
options: [ defaults, noatime ]
|
||||
@@ -0,0 +1,10 @@
|
||||
# The target is a copy of the live system: drop the installer and whatever was
|
||||
# installed only for it.
|
||||
---
|
||||
backend: xbps
|
||||
skip_if_no_internet: false
|
||||
update_db: false
|
||||
update_system: false
|
||||
operations:
|
||||
- try_remove:
|
||||
- das-installer
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
efi:
|
||||
mountPoint: "/boot/efi"
|
||||
recommendedSize: 512MiB
|
||||
minimumSize: 64MiB
|
||||
label: "EFI"
|
||||
|
||||
userSwapChoices:
|
||||
- none
|
||||
- small
|
||||
- suspend
|
||||
initialSwapChoice: none
|
||||
|
||||
drawNestedPartitions: false
|
||||
alwaysShowPartitionLabels: true
|
||||
allowManualPartitioning: true
|
||||
initialPartitioningChoice: none
|
||||
|
||||
# Btrfs subvolumes (see mount.conf) give snapper snapshots and rollback.
|
||||
defaultFileSystemType: "btrfs"
|
||||
availableFileSystemTypes: [ "btrfs", "ext4", "xfs" ]
|
||||
|
||||
# Disk encryption needs extra initramfs and GRUB setup that Das OS does not
|
||||
# have yet.
|
||||
enableLuksAutomatedPartitioning: false
|
||||
|
||||
essentialMounts: [ "live-*", "control", "ventoy" ]
|
||||
lvm:
|
||||
enable: false
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 900
|
||||
verbose: true
|
||||
script:
|
||||
- command: "/usr/libexec/das/installer/postinstall"
|
||||
timeout: 900
|
||||
@@ -0,0 +1,9 @@
|
||||
# The first snapshot is the freshly installed system. grub-mkconfig then adds
|
||||
# it to the boot menu through grub-btrfs.
|
||||
---
|
||||
dontChroot: false
|
||||
timeout: 300
|
||||
verbose: true
|
||||
script:
|
||||
- "-snapper --no-dbus -c root create -d 'Fresh install' -c number --userdata important=yes"
|
||||
- "-grub-mkconfig -o /boot/grub/grub.cfg"
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
dontChroot: true
|
||||
timeout: 60
|
||||
script:
|
||||
- "/usr/libexec/das/installer/mount-source"
|
||||
@@ -0,0 +1,7 @@
|
||||
# Copy the clean live image that shellprocess@source mounts, not the running
|
||||
# live root (see mount-source).
|
||||
---
|
||||
unpack:
|
||||
- source: "/run/das-installer/root"
|
||||
sourcefs: "file"
|
||||
destination: ""
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
defaultGroups:
|
||||
- name: users
|
||||
must_exist: true
|
||||
system: true
|
||||
- name: wheel
|
||||
must_exist: true
|
||||
system: true
|
||||
- audio
|
||||
- video
|
||||
- input
|
||||
- storage
|
||||
- network
|
||||
- optical
|
||||
- scanner
|
||||
- lp
|
||||
- kvm
|
||||
- plugdev
|
||||
- name: bluetooth
|
||||
must_exist: false
|
||||
system: true
|
||||
|
||||
sudoersGroup: wheel
|
||||
sudoersConfigureWithGroup: true
|
||||
autologinGroup: autologin
|
||||
|
||||
setRootPassword: true
|
||||
doReusePassword: true
|
||||
displayAutologin: true
|
||||
doAutologin: false
|
||||
|
||||
passwordRequirements:
|
||||
minLength: 4
|
||||
maxLength: -1
|
||||
allowWeakPasswords: true
|
||||
allowWeakPasswordsDefault: true
|
||||
|
||||
user:
|
||||
shell: /bin/bash
|
||||
forbidden_names: [ root, live ]
|
||||
home_permissions: "o700"
|
||||
|
||||
hostname:
|
||||
location: EtcFile
|
||||
writeHostsFile: true
|
||||
template: "${login}-dasos"
|
||||
forbidden_names: [ localhost ]
|
||||
|
||||
presets:
|
||||
fullName:
|
||||
editable: true
|
||||
loginName:
|
||||
editable: true
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
showSupportUrl: true
|
||||
showKnownIssuesUrl: false
|
||||
showReleaseNotesUrl: false
|
||||
showDonateUrl: false
|
||||
|
||||
requirements:
|
||||
requiredStorage: 15
|
||||
requiredRam: 1.5
|
||||
internetCheckUrl: https://voidlinux.org
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- internet
|
||||
- root
|
||||
- screen
|
||||
required:
|
||||
- storage
|
||||
- ram
|
||||
- root
|
||||
|
||||
geoip:
|
||||
style: none
|
||||
Reference in New Issue
Block a user