Merge pull request #16 from Torxed/experimental

Fixed #14, #9 - No more accidental disk eating
This commit is contained in:
Anton Hvornum 2019-09-24 15:58:56 +02:00 committed by GitHub
commit 0b59fe245b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 8 deletions

View File

@ -1,5 +1,5 @@
# archinstall
Just a bare bone automated [Arch](https://wiki.archlinux.org/index.php/Arch_Linux) install with network deployment instructions based on MAC-address.
Just a bare bone automated [Arch](https://wiki.archlinux.org/index.php/Arch_Linux) install with optional network deployment instructions based on MAC-address.
Pre-built ISO's can be found here: https://hvornum.se/archiso/
@ -7,13 +7,12 @@ Pre-built ISO's can be found here: https://hvornum.se/archiso/
In a live-cd environment, do:
# wget https://raw.githubusercontent.com/Torxed/archinstall/master/archinstall.py
# python3 archinstall.py --default
# pacman -S --noconfirm python; python archinstall.py --default
> **CAUTION**: If no **other** parameters are given, **it will devour the first disk in your system** (Usually `/dev/sda`, `/dev/nvme0n1` etc).
This will install a basic Arch Linux, without interaction, on the first drive it finds *(after user confirms it)*.<br>
Use `--drive=/dev/sdb` etc to change the desired destination, or skip `--default` if you want to get options for your installation.
This will install a basic Arch Linux, without interaction, on the first drive it finds. Use `--drive=/dev/sdb` etc to change the desired destination, or skip `--default` if you want to get options for your installation.
> NOTE: This assumes Python is installed on your 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/). Below is examples and a cheat sheet on how to create such a ISO *(with different flavors)*.
> NOTE: 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. Below is examples and a cheat sheet on how to create such a ISO *(with different flavors)*.
# Features

View File

@ -466,7 +466,6 @@ if __name__ == '__main__':
exit(1)
## Setup some defaults (in case no command-line parameters or netdeploy-params were given)
if not 'drive' in args: args['drive'] = sorted(list(harddrives.keys()))[0] # First drive found
if not 'size' in args: args['size'] = '100%'
if not 'start' in args: args['start'] = '513MiB'
if not 'pwfile' in args: args['pwfile'] = '/tmp/diskpw'
@ -480,6 +479,12 @@ if __name__ == '__main__':
if not 'profiles-path' in args: args['profiles-path'] = profiles_path
if not 'rerun' in args: args['rerun'] = None
if not 'ignore-rerun' in args: args['ignore-rerun'] = False
if not 'localtime' in args: args['localtime'] = 'Europe/Stockholm' if args['country'] == 'SE' else 'GMT+0' # TODO: Arbitrary for now
if not 'drive' in args:
drives = list(harddrives.keys())
if len(drives) > 1 and 'force' not in args and ('default' in args and 'first-drive' not in args):
raise KeyError("Multiple disks found, --drive=/dev/X not specified (or --force/--first-drive)")
args['drive'] = sorted(drives)[0] # First drive found
rerun = args['ignore-rerun']
if args['drive'][0] != '/':
@ -580,6 +585,9 @@ if __name__ == '__main__':
# if not args['password']:
print(json.dumps(args, indent=4))
if args['default'] and not 'force' in args:
if(input('Are these settings OK? (No return beyond this point) N/y: ').lower() != 'y'):
exit(1)
if not os.path.isfile(args['pwfile']):
#PIN = '0000'
@ -722,7 +730,7 @@ if __name__ == '__main__':
fstab.write('\ntmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0\n') # Redundant \n at the start? who knoes?
o = b''.join(sys_command('/usr/bin/arch-chroot /mnt rm /etc/localtime').exec())
o = b''.join(sys_command('/usr/bin/arch-chroot /mnt ln -s /usr/share/zoneinfo/Europe/Stockholm /etc/localtime').exec())
o = b''.join(sys_command('/usr/bin/arch-chroot /mnt ln -s /usr/share/zoneinfo/{localtime} /etc/localtime'.format(**args)).exec())
o = b''.join(sys_command('/usr/bin/arch-chroot /mnt hwclock --hctosys --localtime').exec())
#o = sys_command('arch-chroot /mnt echo "{hostname}" > /etc/hostname'.format(**args)).exec()
#o = sys_command("arch-chroot /mnt sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen").exec()