From 9ea95890429f50cb7057a47d9d1625cb312ad1b3 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Tue, 30 Jun 2020 21:51:41 +0200 Subject: Update README.md --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 6 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 0be80bad..236529f5 100644 --- a/README.md +++ b/README.md @@ -3,20 +3,73 @@ Just another guided/automated [Arch Linux](https://wiki.archlinux.org/index.php/ Pre-built ISO's can be found here which autostarts this script *(in guided mode)*: https://hvornum.se/archiso/ -# How-to / Usecases +# Usage ## Run on Live-CD (Binary) # wget https://gzip.app/archinstall # chmod +x archinstall; ./archinstall -## Run on Live-CD (Python): +This downloads and runs a "compiled" *(using nuitka)* version of the project.
+It defaults to starting a guided install with some safety checks in place. - # wget https://raw.githubusercontent.com/Torxed/archinstall/master/archinstall.py - # pacman -S --noconfirm python; python archinstall.py +## Run on Live-CD with Python: -This will start a guided install.
-Add `--default` for a unattended minimalistic installation of Arch Linux. + # wget https://raw.githubusercontent.com/Torxed/archinstall/master/installer.py + # pacman -S --noconfirm python; python install.py + +This will start a guided install with the same safety checks as previous.
+ +## Run using PIP and Python module: + + # pip install archinstall + # python -m archinstall + +Again, a guided install starts with safety checks.
+This assumes tho that Python and Pip is present (not always the case on the default Arch Linux ISO), see above for pre-built ISO's containing Python+pip + +## Scripting a installation + +So, assuming you're building your own ISO and want to create an automated install.
+This is probably what you'll need, a minimal example of how to install using the library. + + import archinstall, getpass + + + selected_hdd = archinstall.select_disk(archinstall.all_disks()) + disk_password = getpass.getpass(prompt='Disk password (won\'t echo): ') + + with archinstall.Filesystem(selected_hdd, archinstall.GPT) as fs: + fs.use_entire_disk('luks2') + with archinstall.luks2(fs) as crypt: + if selected_hdd.partition[1]['size'] == '512M': + raise OSError('Trying to encrypt the boot partition for petes sake..') + + key_file = crypt.encrypt(selected_hdd.partition[1], password=disk_password, key_size=512, hash_type='sha512', iter_time=10000, key_file='./pwfile') + crypt.mount(selected_hdd.partition[1], 'luksloop', key_file) + + with archinstall.installer(root_partition, hostname='testmachine') as installation: + if installation.minimal_installation(): + installation.add_bootloader() + + installation.add_additional_packages(['nano', 'wget', 'git']) + installation.install_profile('desktop') + + installation.user_create('anton', 'test') + installation.user_set_pw('root', 'toor') + + installation.add_AUR_support() + +This installer will perform the following: + + * Prompt the user to select a disk and disk-password + * Proceed to wipe said disk + * Sets up a default 100% used disk with encryption + * Installs a basic instance of Arch Linux *(base base-devel linux linux-firmware btrfs-progs efibootmgr)* + * Installs and configures a bootloader + * Install additional packages *(nano, wget, git)* + * Installs a network-profile called `desktop` *(more on network profiles in the docs)* + * Adds AUR support by compiling and installing [yay](https://github.com/Jguer/yay) > **Creating your own ISO:** Follow [ArchISO](https://wiki.archlinux.org/index.php/archiso)'s guide on how to create your own ISO or use a pre-built [guided ISO](https://hvornum.se/archiso/) to skip the python installation step, or to create auto-installing ISO templates. Further down are examples and cheat sheets on how to create different live ISO's. -- cgit v1.2.3-54-g00ecf