Giter VIP home page Giter VIP logo

arch-installer's Introduction

Arch Installer

This project aims to provide you with a pure Arch-Linux experience but without the hassle of all the manual installation steps one has to perform. Thus this project provides an installation script that performs common installation steps like setting up the locale and installing commonly used packages.

All packages are installed via the package manager pacman. Therefore, after installation you can modify everything to your liking as in a pure arch-linux installation. Note that pacaur is built, installed and used to install further AUR packages.

The initial inspiration and the concept for this project were taken from this blog: https://blog.chendry.org/automating-arch-linux-installation/. This blog also contains useful information how to create a custom installer medium. Most of the inital installation steps are quite universal and were taken from the Arch Beginners Guide from which the developers took helpful information and guidance. It is always a useful source, especially if you want to fork this project to modify it to your needs.

This version will format your partitions and install Arch and download and install a set of packages and terminal/desktop styles. It is not meant to keep bootloaders or disk formattings etc. intact!

Using this repository

You may simply download an iso from the latest release and prepare a bootable medium with it. If you do not have the partitions set up look into the section Pre-installation partitioning.

Booting a machine using this iso will land you in Arch's zsh-shell. You may use ./autorun.sh to start the installation process. You will be asked a series of questions, after which corresponding settings are made and packages downloaded and installed.

Note that the default keyboard layout is US so in case you have a different keyboard layout you have to look up the mapping for the ./. You can then choose your keyboard layout during installation before anything needs to be typed.

Pre-installation partitioning

The installation requires two partitions, called Arch and EFI respectively, since this procedure is primarily intended for re-installation onto a pre-existing partition. You may thus have to mkpart beforehand. If you want to avoid overriding your partitions you have to modify the 01_partitions script in the pyscripts folder.

The following or variations of it can be used to prepare the disk:

parted

mklabel GPT
mkpart ESP fat32 1MiB 513MiB
mkpart primary ext4 513MiB 100%
set 1 boot on
quit

mkfs.ext4 -L Arch /dev/sda2
mkfs.fat -F32 /dev/sda1
fatlabel /dev/sda1 EFI

Alternatively you can manually call ./prepare_disk.sh. For more information see wiki.archlinux.org.

VirtualBox

If you are using VirtualBox, be aware of the following:

  • EFI needs to be activated (Settings -> System)
  • nested paging needs to be deactivated (Settings -> System -> Processor).

Building your own installer ISO

Using archiso, you can generate your own iso to boot into. To do this, switch to a folder of your choice and execute the following commands:

sudo pacman -S archiso
git clone https://github.com/Trick-17/arch-installer.git
cd arch-installer/releng
sh createIso.sh

An iso will be generated in the sub-folder out. Note that you can of course modify certain files in order to e.g. add further packages to the live iso (see also https://blog.chendry.org/automating-arch-linux-installation/).

arch-installer's People

Contributors

danielschuerhoff avatar gpmueller avatar nohs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

arch-installer's Issues

Replace yaourt by aura

Aura can be called as sudo and can thus be integrated way easier into the existing scripts.

Packages: add simplescreenrecorder?

This is a nice little tool to make screencapture-videos - should we add it to media?

I could actually use it in developer to make videos of my code running, but it's not important to have it in that category.

Suggestion: additional ARM version

I do not yet have a well-defined idea of how to do this, but I imagine that with a second iso attached to a release and possibly a second script or letting the script autodetect the cpu type, one could enable an ARM installation with mostly the same scripts.

It seems that both the regular and community repositories are made available for ARM at https://archlinuxarm.org/ but I am not sure yet what exactly would need to be changed to get our installer running with it. For example is there special care needed for the mirrorlists?

I have a raspberry pi for testing, but maybe this would be helpful for emulation https://github.com/unicorn-engine/unicorn (?)

Pacman and Mirrorlist might be out of date and result in slow download speed.

I suppose the mirrorlist is in the ISO, which would mean that it is out of date!
We could write a script to update pacman and update the mirrorlist in the beginning before using pacstrap.

mirrorlist is in /etc/pacman.d/mirrorlist
When updating pacman (or pacman.mirrorlist?), if there is a new mirrorlist, a mirrorlist.pacnew is created. The corresponding section for the region (always use Germany?) needs to be commented in and replace the old mirrorlist.

KDE Wallet not working immediately

KDE Wallet requires a key:
image
Can we add one by default or does the user have to do this?

This Wallet Service is requested by e.g. Chromium...

Server packages

At this point we could start working on server packages. The installer is modular enough and we could try around with creating a small home media server.

Estimation of needed diskspace before install?

A 10GB vbox disk (which corresponds to 6.4GB of actual space) seems to be too small to install the full desktop package set.
Maybe we could somehow get an estimate of the needed space and print a warning if needed, as the installation otherwise fails after all packages were downloaded and built.

Choosing plasma-meta instead of plasma group

Since we are anyways only installing the entire plasma package, we could as well install plasma-meta. This way, new packages that come to the plasma desktop will be installed during an update.

Arch does no longer boot after setup

The desktop loading fails with the current master branch version. Mabybe we should roll back to a working version and try out new stuff in separate branches. Having a non-working version in the current master branch sucks, especially when you expect you can do a quick reinstall just to find out, nothing works.

autopep8 should be part of dev packages

Autopep8 helps formatting your python code according to many PEP8 guidelines. It is also used by the vscode python plugin. Therefore, I think it would be useful to have it available as part of the dev packages.

Steam is missing

To convince ppl of the easy to use nature of this project, I think we should offer at least steam, which is one of the easy ways to game on linux.

Clean startup

There are still two messages displayed on startup in the following order:
image
image

Scripts are a mess.

Maybe we should switch to python to have a cleaner, less error-prone version of the scripts. There are just too many copy-paste passages :/

Error in prepare_disk.sh

After mklabel:

mke2fs 1.43.3 (04-Sep-2016)
The file /dev/sda2 does not exist and no size was specified
mkfs.fat 4.0 (2016-05-06)
mkfs.fat: unable to open /dev/sda1: No such file or Directory
open: No such file or directory

pip for python2

It seems that pip is not installed for python2 by default. This is very confusing as this is usually the standard.
If we have python2, I suggest we add python2-pip

user-input script needs improvement

Should probably be rewritten in python.

Please select your System < Desktop/Server >
Please select your packages < minimal/full >
Please select your Desktop < None/kde >
Please select your graphics vendor < nvidia/amd/vbox >
...

Bug in 13-setup-user

The following appears after typing the password.

arch-installer/scripts/13-setup-user.sh: line 10: root: command not found
Please type in a password for  user:

Warnings during setup packages

The following warnings/(errors?) appear during 02-setup-packages.sh

line47: break: only meaningful in a for', while', or`until' loop
line52: ...(same message)
line 87: ...(same message)
line 166: ...(same message)

Better greeter

The greeter at the moment uses the username. However, it would be nicer to have the full name displayed ("Welcome Bob S....."). This can be achived by:

full_user="$(getent passwd $USER | cut -d ':' -f 5)"
...
echo "    Welcome \e[34m${full_user}\e[0m"
...

However, the full name also has to be set first, during the install process.

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.