# Masterthesis
This is the place preferably for the development of scripts (Shell, Python, ...) for my master thesis.
## Why Arch Linux?
Because I'm a big fan of Debian GNU/Linux on servers I have build Debian-Live-DVDs for other (older) projects.
But for forensics and virtualization you often need to be up to date and that is why I have switched to Arch Linux (rolling release) with "archiso".
For development (and maybe later use) a living installation on a removable media was more comfortable.
I use a Samsung T5 with 256MB. I think a lot of other devices will work too.
It could be that I will generate an ISO image again after development is complete (probably never).
## Installation
After reading https://wiki.archlinux.org/index.php/Install_Arch_Linux_on_a_removable_medium to increase the lifetime of my flash drive I have changed the following steps compared to the https://wiki.archlinux.org/index.php/Installation_guide:
* skip the creation of a swap partition!
* use ext4 without a journal!
## Post-installation (as root)
```shell
# timedatectl set-ntp true
# ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
# vi /etc/locale.gen
# locale-gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# echo "KEYMAP=de-latin1" > /etc/vconsole.conf
# localectl set-keymap --no-convert de-latin1
# echo "hellonium" > /etc/hostname
# echo "127.0.1.1 hellonium.localdomain hellonium" >> /etc/hosts
# pacman -S intel-ucode amd-ucode linux-firmware
# grub-install --target=x86_64-efi --efi-directory=boot --removable --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
# systemctl enable systemd-networkd.service
# systemctl start systemd-networkd.service
# rm /etc/resolv.conf
# systemctl enable systemd-resolved.service
# systemctl start systemd-resolved.service
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
# groupadd lucifer
# useradd -m -g lucifer -G wheel,optical,storage -s /bin/bash lucifer
# passwd lucifer
```
## Install Arch Linux packages (as root)
```shell
# pacman -S xf86-video-intel intel-compute-runtime nvidia opencl-nvidia xf86-video-amdgpu xf86-video-ati opencl-mesa xf86-video-nouveau xf86-video-vesa base-devel bash-completion bc binwalk chntpw dconf-editor firefox galculator gdm gedit git gnome grub hashcat inetutils libeatmydata libewf lvm2 mdadm minisign mlocate multipath-tools nano openssh ophcrack pacman-contrib python-pycryptodome qemu qemu-arch-extra signify sleuthkit sudo testdisk ttf-dejavu vim vinagre which xarchiver xorg xorg-apps xorg-drivers xorg-fonts
```
(I hope I have not missed a package!?)
## More configuration (as root)
```shell
# localectl --no-convert set-x11-keymap de
# visudo (uncomment %wheel ... NOPASSWD:)
# systemctl enable sshd.service
# systemctl start sshd.service
# sudo usermod -a -G kvm lucifer
# sudo sytemctl enable gdm
```
## The AUR part
I have choosen trizen for installing AUR recipes.
Install it as user (lucifer):
```shell
$ mkdir ~/builds && cd ~/builds
$ git clone https://aur.archlinux.org/trizen.git
$ cd trizen
$ makepkg -sirc
```
Now you will be able to install AUR packages as a user (lucifer) with trizen like:
```shell
$ trizen -S
```
## Install AUR packages (as lucifer)
```shell
$ trizen -S aic94xx-firmware upd72020x-fw wd719x-firmware dc3dd fred guymager perl-image-exiftool regripper-git xmount
```
The following recipes could be somewhat problematic:
```shell
$ trizen -S zfs-linux zfs-utils
```
## How to use
Because it is more a prototype at the moment most of the 'magic' is in the Nautilus script folder ([/home/lucifer/.local/share/nautilus/scripts](https://git.neumannsland.de/casualscripter/Masterthesis/src/branch/master/home/lucifer/.local/share/nautilus/scripts)).
I plan to add some examples of usage as text and screenshots to the [wiki](https://git.neumannsland.de/casualscripter/Masterthesis/wiki)...