This guide provides step-by-step instructions on how to use the GetLainux project.
- System Requirements
- Installation Methods
- Building the Project
- Running the Installer
- Installation Modes
- Troubleshooting
- OS: Linux (Arch Linux, Ubuntu, Fedora, etc.)
- RAM: Minimum 1GB (4GB recommended)
- CPU: Dual-core or better
- Disk Space:
- For building: 2GB free space in
/tmp - For installation: 20GB+ free space
- For building: 2GB free space in
- Internet: Required for downloading packages
# Arch Linux
sudo pacman -S gcc ncurses curl openssl arch-install-scripts
# Ubuntu/Debian
sudo apt-get install build-essential libncurses5-dev libncursesw5-dev libcurl4-openssl-dev libssl-dev
# Kali Linux
sudo apt-get update
sudo apt-get install build-essential libncurses5-dev libncursesw5-dev libcurl4-openssl-dev libssl-dev
# Fedora
sudo dnf install gcc ncurses-devel curl-devel openssl-devel# Install Go 1.21 or later
# Arch Linux
sudo pacman -S go
# Ubuntu/Debian
sudo apt-get install golang-go
# Fedora
sudo dnf install golang# Arch Linux
sudo pacman -S arch-install-scripts dosfstools e2fsprogs gptfdisk grub efibootmgr
# Ubuntu/Debian (if installing on Arch from Ubuntu)
sudo apt-get install arch-install-scripts dosfstools e2fsprogs gdisk grub-efi-amd64This project has 2 types of installers:
- Location:
src/installer/ - Binary:
bin/installer.lain - Features: Full-featured, ncurses-based TUI
- Location:
go/directory - Features: Modern TUI with bubbletea
chmod +x build.sh./build.shScript automatically:
- Checks all source files
- Compiles C installer
- Creates binary:
bin/installer.lain - Asks for confirmation before building
ls -lh bin/installer.lain# Navigate to project root
cd /path/to/GetLainux
# Compile manually
gcc \
src/installer/installer.c \
src/utils/network_connection/network_sniffer.c \
src/utils/network_connection/network_state.c \
src/installer/ui/logo.c \
src/installer/vm/vm.c \
src/installer/system_utils/log_message.c \
src/installer/system_utils/run_command.c \
src/installer/disk_utils/disk_info.c \
src/installer/locale/lang.c \
src/installer/locale/ru.c \
src/installer/locale/en.c \
src/installer/settings/settings.c \
-o bin/installer.lain \
-lncurses \
-lcurl \
-lcrypto \
-Wextra \
-O2 \
-std=c11 \
-D_DEFAULT_SOURCE# Navigate to go directory
cd go
# Download dependencies
go mod download
# Build
go build -o ../bin/getlainux-installer-go main.go
# Or build from root
cd ..
go build -o bin/getlainux-installer-go ./main.gochmod +x bin/installer.lain# Important: Run as root or with sudo
sudo ./bin/installer.lain- Partition disks
- Mount filesystems
- Install system packages
- Configure bootloader
# Make executable
chmod +x bin/getlainux-installer-go
# Run
sudo ./bin/getlainux-installer-go- Boot from GetLainux ISO or run from live USB
- Start installer:
sudo ./bin/installer.lain - Select "Install on Hardware"
- Choose target disk (carefully!)
- Confirm installation (type "YES" or "TURBO")
- Wait for installation to complete
- Reboot system
- Partitions the disk (GPT/UEFI or MBR/BIOS)
- Formats partitions (FAT32 for EFI, ext4 for root)
- Installs Arch Linux base system
- Configures network, locale, timezone
- Installs GRUB bootloader
- Sets up default user (username:
getlainux, password:getlainux)
# Install QEMU
# Arch Linux
sudo pacman -S qemu libvirt virt-manager
# Ubuntu/Debian
sudo apt-get install qemu-system-x86 qemu-utils libvirt-clients libvirt-daemon-system
# Fedora
sudo dnf install qemu-kvm libvirt virt-manager- Run installer:
sudo ./bin/installer.lain - Select "Install on Virtual Machine"
- Installer will:
- Check QEMU dependencies
- Create virtual disk (20GB)
- Download ISO (if needed)
- Launch QEMU VM
- Install GetLainux inside VM
Shows detailed system information:
- CPU model and cores
- RAM size
- Disk information
- Graphics card
- UEFI/BIOS firmware type
- Virtualization support
Verifies if system meets minimum requirements:
- RAM check (1GB minimum)
- CPU check (dual-core recommended)
- Disk space check (2GB in /tmp)
Choose installation type:
- Minimal: Base system only
- Standard: Base + XFCE desktop
- Development: Full dev tools
- Server: Server packages
- Security: Hardened kernel
Tests internet connectivity:
- Checks multiple endpoints (8.8.8.8, 1.1.1.1, archlinux.org)
- Shows public IP
- Network diagnostics
| Key | Action |
|---|---|
↑ / ↓ |
Navigate menu |
Enter |
Select option |
q |
Quit/Exit |
b |
Go back |
l |
Toggle language (EN/RU) |
- Install on Hardware - Install on real machine
- Install on Virtual Machine - Install in VM
- Hardware Information - View system specs
- System Requirements Check - Verify requirements
- Configuration Selection - Choose install type
- View Disk Information - List available disks
- Check Network - Test internet connection
- Network Diagnostics - Detailed network info
- Exit Installer - Quit program
Edit configs/getlainux.cfg:
name=GetLainux
version=0.1
date=2025.01.15
author=Nishant Gaurav
package=pacman, aurGetLainux includes automatic kernel optimization during installation. The optimization:
- Tunes kernel parameters for maximum performance
- Optimizes CPU scheduler settings
- Configures memory management
- Applies boot-time optimizations
Manual Optimization:
cd kernel
sudo ./optimize_kernel.sh /For details, see kernel/README.md.
Edit kernel/config.txt:
NAME=lainuxOS
VERSION=1.1
AUTHOR=Nishant Gaurav
IMPORT=default
cd kernel
gcc compile_kernel.c -o compile_kernel
./compile_kernelSolution:
# Install ncurses development package
# Arch Linux
sudo pacman -S ncurses
# Ubuntu/Debian
sudo apt-get install libncurses5-dev libncursesw5-dev
# Fedora
sudo dnf install ncurses-develSolution:
# Make executable
chmod +x bin/installer.lain
# Run with sudo
sudo ./bin/installer.lainSolution:
# Check internet connection
ping -c 3 8.8.8.8
# Start network service (if needed)
sudo systemctl start NetworkManager
# or
sudo systemctl start dhcpcdSolution:
# List disks manually
lsblk
# Check disk permissions
sudo fdisk -l
# Ensure you're running as root
sudo ./bin/installer.lainSolution:
- Ensure disk is not mounted
- Check disk is not in use
- Verify disk permissions
- Try unmounting all partitions:
sudo umount /dev/sdX* 2>/dev/nullSolution:
cd go
go mod download
go mod tidy
go build -o ../bin/getlainux-installer-go main.goSolution:
# Install QEMU
sudo pacman -S qemu libvirt # Arch
sudo apt-get install qemu-system-x86 # Ubuntu
# Enable virtualization in BIOS
# Check if virtualization is enabled:
grep -E '(vmx|svm)' /proc/cpuinfo- Data Loss: Installation will ERASE ALL DATA on selected disk
- Root Access: Always run installer with
sudoor as root - Testing: Use VM mode for testing, not on production/work machines
- Backup: Always backup important data before installation
- Internet: Stable internet connection required for package downloads
- Test First: Always test in VM before real installation
- Check Requirements: Verify system meets minimum requirements
- Network: Ensure stable internet before starting
- Disk Selection: Double-check disk selection (wrong disk = data loss!)
- Read Logs: Check installation logs if something fails
# 1. Clone/download project
cd GetLainux
# 2. Install dependencies
sudo pacman -S gcc ncurses curl openssl arch-install-scripts
# 3. Build installer
chmod +x build.sh
./build.sh
# Type 'y' when prompted
# 4. Run installer (in VM recommended)
sudo ./bin/installer.lain
# 5. Follow on-screen instructions
# - Select "Install on Virtual Machine" for testing
# - Or "Install on Hardware" for real installationFor issues, questions, or contributions:
- GitHub: https://github.com/CodewithEvilxd/GetLainux
- Issues: Create an issue on GitHub
- Documentation: Check
docs/directory
- Main README:
README.md - Source README:
src/README.md - API Documentation:
docs/API.md - Project Info:
docs/INFO.md
Happy Installing! 🚀
Remember: Always test in VM first!