Git Product home page Git Product logo

setup's Introduction

ArchInstaller.py

A semi-automatic & configurable Arch Linux installer script written in Python.

Actual script configuration is done in the config.py module & custom_setup() method found at the top of setup.py.

You should already be familiar with Arch Linux before using this and be prepared to fix stuff yourself as things may and inevitably will go wrong.

DISCLAIMER: This is still alpha state software and will keep changing in the future.

Table of Contents

Deployment

The following examples expect you to already be booted into the ArchISO environment.

To fetch and run the script, one can execute:

curl https://git.io/JemEQ -Lo setup.py
python setup.py
# Fetch a copy of config.py as suggested by the script and edit it to suit your needs!
# Afterwards launch the script again and follow the instructions
python setup.py

For remote deployment of the scripts to a system (e.g. Virtual Machine) via ethernet I've been using the following:

TARGET #

passwd                –  required to use SSH
systemctl start sshd  –  launching the SSH server Daemon
ip a                  –  get live system IP for SSH / file transfer (e.g. 192.168.1.105)

Then to transfer the scripts via terminal from the current directory to the target system:

HOST $ scp *.py [email protected]:/root/
[email protected]'s password:
config.py                                                         100% 6246     2.3MB/s   00:00
setup.py                                                          100%  111KB  73.3MB/s   00:00

Using the script is as simple as running it like any other (Python) executable:

TARGET # ./setup.py

The rest should be self-explanatory when following the instructions during install :)

Lists in config

The config.py file has some options with long lists of available values; they're all catalogued here for your convenience:

Following progress

To follow the progress and view the commands being run by the script, switch to another TTY / login via SSH and do:

TARGET # tail -f /tmp/setup.log

NOTE: This will need to be ended with Ctrl + C when entering chroot as the file gets moved, then run this command again.

Once the system is installed the log will be moved to /var/log/setup.log on the target system for further investigation / removal.

Screenshots

Script initialization

Script init sequence

Disk partitioning

Partitioning with gdisk

Partitioning with cgdisk

Mounting partitions

Disk mounting menu

Installation

Setup installing compontents 1

Setup installing compontents 2

GRUB boot menu (shown when multibooting)

Themed GRUB boot menu

Desktop Environments (DEs)

Base system install

Installed base system

Cinnamon

Installed Cinnamon desktop

XFCE, GNOME, MATE, Budgie, Pantheon, Deepin, KDE (Plasma), LXQt, LXDE, Openbox, i3

Coming soon™️

Resources

setup's People

Contributors

jamikettunen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

setup's Issues

To-Do

Script

  • Add "Back" option to mounting menu
  • Make installer script UI localizable
  • Add dynamic progress messages e.g. for pacman & pacstrap

Add

  • Web server stack setup (LEMP / LAMP)
  • ALSA setup without pulseaudio

Improvements

  • Pre-built used AUR packages to speed up setup process dramatically
  • AMD GPU drivers setup
  • Power saving features
  • Assistive techologies setup
  • Post-install boot time improvements?
  • Add all other TODOs here...

Disks

  • Allow unmounting by choosing a mount again & run umount -R ...
  • Fully disallow mounted selections to be chosen in mounting menu
  • Prevent mounting to / on a NTFS volume (and other unsupported filesystems)
  • Add support for more filesystem types (notably Btrfs)
  • Add support for RAID in mounting & formatting options
  • Add support for LUKS encryption in mounting & formatting options

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.