Reorganized hal CLI into subcommand groups + MIT licensed
CLI structure now:
hal {status,diagnose,unlock,forget} HOST
hal connect {rescue,chroot,server} HOST [CMD]
hal setup {image,dropbear,grub,encrypt-root} HOST
hal fix {boot,network,grub,kernel,static-ip,upgrade,expand-fs} HOST
Added subcommands cover the previously-manual sections of the README:
setup image — upload autosetup + run installimage
setup dropbear — install dropbear + mkinitcpio plugins + patch HOOKS
setup grub — initial grub install for LUKS boot
setup encrypt-root — full LUKS conversion of installed root
connect server — SSH to booted Arch (vs rescue/chroot)
unlock — cryptroot-unlock via dropbear with passphrase from keyring
fix expand-fs — lvresize + btrfs resize
Renames (breaking):
upgrade-system -> fix upgrade
expand-fs -> fix expand-fs
forget-passphrase -> forget
reinstall-grub -> fix grub
downgrade-kernel -> fix kernel
use-static-ip -> fix static-ip
fix-{boot,network} -> fix {boot,network}
install-{image,grub} -> setup {image,grub}
setup-dropbear -> setup dropbear
encrypt-root -> setup encrypt-root
Removed downgrade-initramfs (never verified, narrow use case).
README rewritten to reference only hal commands; raw bash blocks for
pacman/cryptsetup/grub-install/mount/chroot are gone. Added autosetup.example
as a template for `hal setup image --autosetup PATH`.
Licensed under MIT (LICENSE file added). Author and homepage shown in
hal --version, hal --help, pyproject.toml, and README.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
31
autosetup.example
Normal file
31
autosetup.example
Normal file
@@ -0,0 +1,31 @@
|
||||
## Hetzner Online GmbH - installimage - config
|
||||
## Copy to a working file, adjust DRIVE / HOSTNAME / sizes to your box,
|
||||
## then upload via: hal install-image <host> --autosetup <path>
|
||||
|
||||
## Adjust DRIVE1 / DRIVE2 to your actual disks. Typical values:
|
||||
## - /dev/sda /dev/sdb (SATA/SAS auction boxes)
|
||||
## - /dev/nvme0n1 /dev/nvme1n1 (NVMe-based servers)
|
||||
DRIVE1 /dev/sda
|
||||
DRIVE2 /dev/sdb
|
||||
|
||||
## SOFTWARE RAID:
|
||||
## activate software RAID? < 0 | 1 >
|
||||
SWRAID 1
|
||||
## Choose the level for the software RAID < 0 | 1 | 10 >
|
||||
SWRAIDLEVEL 1
|
||||
|
||||
## BOOTLOADER:
|
||||
BOOTLOADER grub
|
||||
|
||||
## HOSTNAME: adapt to your needs
|
||||
HOSTNAME hetzner-arch-luks
|
||||
|
||||
## PARTITIONS / FILESYSTEMS:
|
||||
## /boot must be its own partition (btrfs/ext4); root and swap on LVM.
|
||||
PART /boot btrfs 512M
|
||||
PART lvm vg0 all
|
||||
LV vg0 swap swap swap 8G
|
||||
LV vg0 root / btrfs 10G
|
||||
|
||||
## OPERATING SYSTEM IMAGE:
|
||||
IMAGE /root/.oldroot/nfs/install/../images/archlinux-latest-64-minimal.tar.gz
|
||||
Reference in New Issue
Block a user