diff --git a/system_setup/install.md b/system_setup/install.md new file mode 100644 index 0000000..accee56 --- /dev/null +++ b/system_setup/install.md @@ -0,0 +1,51 @@ +# OEMDRV Bootstrap — install.sh + +`install.sh` prepares a target machine for automated Fedora deployment. It shrinks an existing partition to carve out a dedicated **OEMDRV** partition, which Anaconda/Kickstart will detect automatically during installation. + +## What it does + +1. Lists all ext4 and btrfs partitions that have enough free space to be shrunk. +2. Asks you to select one and shrinks it by **4 GiB**. +3. Creates a new 4 GiB BTRFS partition labeled `OEMDRV` in the freed space. +4. Mounts it to `/opt/sys_config` with `compress=zstd:6`. +5. Clones this repository (depth 1) into `/opt/sys_config`. + +## Prerequisites + +- Run as **root** on the target machine (live system or installed OS). +- The following tools must be present: `parted`, `e2fsck`, `resize2fs` or `btrfs-progs`, `mkfs.btrfs`, `git`, `curl`. +- The partition you want to shrink must **not** be the root filesystem (`/`) and must have at least **4.5 GiB free**. +- Network access to `gitea.dtext.online`. + +## Run directly from the repository + +```bash +bash <(curl -fsSL https://gitea.dtext.online/obel1x/fedora-OEMDRV/raw/branch/main/system_setup/install.sh) +``` + +> The script requires root. Run the command above as root, or prefix with `sudo`. + +## After the script completes + +Configure your environment before running any installation: + +```sh +cp /opt/sys_config/config/setup_system.conf.dist /opt/sys_config/config/setup_system.conf +# Edit setup_system.conf — set TLDOMAIN, SERVERFQDN_IPA, SERVERFQDN_NC, and paths. +``` + +Optionally add local per-machine overrides in `config.d/`: + +```sh +# Example: use the devel branch on this machine +echo 'export UPGRADEBRANCH="devel"' > /opt/sys_config/config.d/system_defines.conf +``` + +Once configured, boot the Fedora installer from USB — Anaconda will detect the `OEMDRV` partition and run the Kickstart automatically. + +## Supported filesystems for shrinking + +| Filesystem | Method | +|---|---| +| ext4 | `e2fsck` + `resize2fs` (offline) | +| btrfs | `btrfs filesystem resize` (temporary mount) |