Update README.md

This commit is contained in:
Anton Hvornum 2020-07-01 08:54:14 +02:00 committed by GitHub
parent c986ffd409
commit f0bc987e1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 19 deletions

View File

@ -1,7 +1,8 @@
# <img src="logo.png" alt="drawing" width="200"/> # <img src="logo.png" alt="drawing" width="200"/>
Just another guided/automated [Arch Linux](https://wiki.archlinux.org/index.php/Arch_Linux) installer. Just another guided/automated [Arch Linux](https://wiki.archlinux.org/index.php/Arch_Linux) installer with a twist.
The installer also doubles as a python library to access each individual installation step for customized installs.
Pre-built ISO's can be found here which autostarts this script *(in guided mode)*: https://hvornum.se/archiso/ Pre-built ISO's can be found here which autostarts archinstall *(in a safe guided mode)*: https://hvornum.se/archiso/
* archinstall [discord](https://discord.gg/cqXU88y) server * archinstall [discord](https://discord.gg/cqXU88y) server
* archinstall guided install ISO's: https://hvornum.se/archiso/ * archinstall guided install ISO's: https://hvornum.se/archiso/
@ -32,38 +33,38 @@ This will start a guided install with the same safety checks as previous.<br>
Again, a guided install starts with safety checks.<br> Again, a guided install starts with safety checks.<br>
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 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 ## Scripting an installation
So, assuming you're building your own ISO and want to create an automated install.<br> Assuming you're building your own ISO and want to create an automated install process.<br>
This is probably what you'll need, a minimal example of how to install using the library. This is probably what you'll need, a minimal example of how to install using archinstall as a Python library.
```python ```python
import archinstall, getpass import archinstall, getpass
selected_hdd = archinstall.select_disk(archinstall.all_disks()) hdd = archinstall.select_disk(archinstall.all_disks())
disk_password = getpass.getpass(prompt='Disk password (won\'t echo): ') disk_password = getpass.getpass(prompt='Disk password (won\'t echo): ')
with archinstall.Filesystem(selected_hdd, archinstall.GPT) as fs: with archinstall.Filesystem(hdd, archinstall.GPT) as fs:
fs.use_entire_disk('luks2') fs.use_entire_disk('luks2')
with archinstall.luks2(fs) as crypt: with archinstall.Luks2(fs) as crypt:
if selected_hdd.partition[1]['size'] == '512M': if hdd.partition[1]['size'] == '512M':
raise OSError('Trying to encrypt the boot partition for petes sake..') 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') key_file = crypt.encrypt(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) unlocked_crypt_vol = crypt.mount(hdd.partition[1], 'luksloop', key_file)
with archinstall.installer(root_partition, hostname='testmachine') as installation: with archinstall.Installer(unlocked_crypt_vol, hostname='testmachine') as installation:
if installation.minimal_installation(): if installation.minimal_installation():
installation.add_bootloader() installation.add_bootloader()
installation.add_additional_packages(['nano', 'wget', 'git']) installation.add_additional_packages(['nano', 'wget', 'git'])
installation.install_profile('desktop') installation.install_profile('desktop')
installation.user_create('anton', 'test') installation.user_create('anton', 'test')
installation.user_set_pw('root', 'toor') installation.user_set_pw('root', 'toor')
installation.add_AUR_support() installation.add_AUR_support()
``` ```
This installer will perform the following: This installer will perform the following: