summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <mail2xengineering@protonmail.com>2019-12-15 11:05:58 +0100
committerxengineering <mail2xengineering@protonmail.com>2019-12-15 11:05:58 +0100
commit5dd3ee9231199e45f69db62f2a0f46cb7c53694d (patch)
tree868a6905ed790e457746208e0e0933b44ac90431
parenta9d270eddc062c336c40e1ef8e2c732986222673 (diff)
downloadarchinstall-5dd3ee9231199e45f69db62f2a0f46cb7c53694d.tar
archinstall-5dd3ee9231199e45f69db62f2a0f46cb7c53694d.tar.zst
archinstall-5dd3ee9231199e45f69db62f2a0f46cb7c53694d.zip
Splitted new stage/util files from old bin files.
-rw-r--r--archinstall.sh2
-rw-r--r--bin/first_stage.sh172
-rw-r--r--bin/second_stage.sh74
-rw-r--r--stages/first_stage.sh154
-rw-r--r--stages/second_stage.sh56
5 files changed, 247 insertions, 211 deletions
diff --git a/archinstall.sh b/archinstall.sh
index ce3b8e8..66fa6d1 100644
--- a/archinstall.sh
+++ b/archinstall.sh
@@ -104,5 +104,5 @@ sleep $DELAY
# Launching first stage
-bash $REPOSITORY_PATH/stages/first_stage.sh \
+bash $REPOSITORY_PATH/bin/first_stage.sh \
$DELAY $REPOSITORY_PATH $LOG_FILE_PATH $CONFIG_FILE_PATH | tee -a $LOG_FILE_PATH
diff --git a/bin/first_stage.sh b/bin/first_stage.sh
new file mode 100644
index 0000000..6ced555
--- /dev/null
+++ b/bin/first_stage.sh
@@ -0,0 +1,172 @@
+#!/bin/bash
+
+
+# archinstall - A minimal Installation Script for Arch Linux
+# Copyright (C) 2019 xengineering
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+####################
+# first_stage.sh #
+####################
+
+
+DELAY=$1
+REPOSITORY_PATH=$2
+LOG_FILE_PATH=$3
+CONFIG_FILE_PATH=$4
+
+
+mkdir $(dirname "$CONFIG_FILE_PATH")
+touch $CONFIG_FILE_PATH
+python $REPOSITORY_PATH/bin/write_config.py $CONFIG_FILE_PATH
+disk=$(python $REPOSITORY_PATH/bin/get_config_string.py $CONFIG_FILE_PATH "disk")
+disk_path=/dev/$disk
+hostname=$(python $REPOSITORY_PATH/bin/get_config_string.py $CONFIG_FILE_PATH "hostname")
+desktop=$(python $REPOSITORY_PATH/bin/get_config_string.py $CONFIG_FILE_PATH "desktop")
+
+
+echo "All data on disk '$disk' will be finally lost!"
+echo "Are you SURE that you want to install Arch Linux to '$disk'?!"
+echo "Type 'Yes' for installation and 'No' for abort."
+read answer
+if [ $answer == "Yes" ]; then
+ echo ""
+ echo "Starting installation process - OK"
+ echo ""
+else
+ echo ""
+ echo "Abort of installation process!"
+ exit
+fi
+
+
+# Check if booted with UEFI
+
+if [ -d "/sys/firmware/efi/efivars" ]; then
+ echo "Booted with UEFI - OK"
+ echo ""
+ sleep $DELAY
+else
+ echo "Not booted with UEFI. Please enable it in your mainboard settings. - FAILED"
+ exit
+fi
+
+
+# Partitioning
+
+wipefs -a $disk_path # make sure that fdisk does not ask for removing
+ # signatures which breaks the script
+fdisk $disk_path << EOF
+g
+n
+1
+
++512M
+n
+2
+
+
+p
+w
+EOF
+boot_partition_path="${disk_path}1"
+root_partition_path="${disk_path}2"
+echo "Partitioning finished - OK"
+sleep $DELAY
+echo ""
+
+
+# Create Filesystems
+
+mkfs.fat -F32 $boot_partition_path
+mkfs.ext4 $root_partition_path
+fatlabel $boot_partition_path "BOOT"
+e2label $root_partition_path "ROOT"
+echo "Created filesystems - OK"
+sleep $DELAY
+echo ""
+
+
+# Mount Root Filesystem
+
+mount $root_partition_path /mnt
+echo "Mounted root partition - OK"
+sleep $DELAY
+echo ""
+
+
+# Install basic Packages
+
+echo "Going to install packages ..."
+sleep $DELAY
+echo ""
+pacstrap /mnt base linux linux-firmware dhcpcd nano sudo grub efibootmgr
+if [ "$desktop" = "yes" ]; then
+ pacstrap /mnt xorg lightdm lightdm-gtk-greeter xfce4 mousepad
+fi
+echo ""
+echo "Installed packages - OK"
+sleep $DELAY
+echo ""
+
+
+# Copy repository from live image to root partition
+
+cp -r $REPOSITORY_PATH /mnt$REPOSITORY_PATH
+
+
+# Generate /etc/fstab file
+
+genfstab -U /mnt >> /mnt/etc/fstab
+echo "Generated /etc/fstab - OK"
+sleep $DELAY
+echo ""
+
+
+# Launch second stage in chroot
+
+echo "bash $REPOSITORY_PATH/bin/second_stage.sh $hostname \
+${disk_path}1 $REPOSITORY_PATH $CONFIG_FILE_PATH $desktop" | arch-chroot /mnt
+
+
+# Copy log and config from live image to root partition
+
+cp $LOG_FILE_PATH /mnt$LOG_FILE_PATH
+mkdir /mnt$(dirname "$CONFIG_FILE_PATH")
+cp $CONFIG_FILE_PATH /mnt$CONFIG_FILE_PATH
+
+
+# Unmount root partition
+
+cd /root && umount $root_partition_path
+echo "Unmounted root partition - OK"
+sleep $DELAY
+echo ""
+
+
+# Final Messages
+
+cat << EOF
+#################################################################
+# #
+# The default login is user root with password 'root'. #
+# You can now power off your machine with 'poweroff', #
+# remove the installation media and boot your new #
+# Arch Linux machine! #
+# #
+#################################################################
+
+EOF
diff --git a/bin/second_stage.sh b/bin/second_stage.sh
new file mode 100644
index 0000000..bd6ddf9
--- /dev/null
+++ b/bin/second_stage.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+
+# archinstall - A minimal Installation Script for Arch Linux
+# Copyright (C) 2019 xengineering
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
+#####################
+# second_stage.sh #
+#####################
+
+
+# Argument Processing
+
+hostname=$1
+boot_partition_path=$2
+REPOSITORY_PATH=$3
+CONFIG_FILE_PATH=$4
+desktop=$5
+
+
+# Localization
+
+bash $REPOSITORY_PATH/bin/localization.sh
+
+
+# Network Configuration
+
+bash $REPOSITORY_PATH/bin/network_configuration.sh $hostname
+
+
+# Initramfs
+
+# implement if needed ...
+
+
+# Set default Password
+
+echo "root:root" | chpasswd
+echo "Default password for user root set - OK"
+echo ""
+sleep 1
+
+
+# Bootloader Installation
+
+bash $REPOSITORY_PATH/bin/install_bootloader.sh $boot_partition_path
+
+
+# Desktop Installation
+
+if [ "$desktop" = "yes" ]; then
+ bash $REPOSITORY_PATH/bin/configure_desktop.sh
+fi
+
+
+# Good bye chroot
+
+echo "Leaving chroot environment - OK"
+echo ""
+sleep 1
diff --git a/stages/first_stage.sh b/stages/first_stage.sh
index 6799d50..2d19b9a 100644
--- a/stages/first_stage.sh
+++ b/stages/first_stage.sh
@@ -16,157 +16,3 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-
-####################
-# first_stage.sh #
-####################
-
-
-DELAY=$1
-REPOSITORY_PATH=$2
-LOG_FILE_PATH=$3
-CONFIG_FILE_PATH=$4
-
-
-mkdir $(dirname "$CONFIG_FILE_PATH")
-touch $CONFIG_FILE_PATH
-python $REPOSITORY_PATH/bin/write_config.py $CONFIG_FILE_PATH
-disk=$(python $REPOSITORY_PATH/bin/get_config_string.py $CONFIG_FILE_PATH "disk")
-disk_path=/dev/$disk
-hostname=$(python $REPOSITORY_PATH/bin/get_config_string.py $CONFIG_FILE_PATH "hostname")
-desktop=$(python $REPOSITORY_PATH/bin/get_config_string.py $CONFIG_FILE_PATH "desktop")
-
-
-echo "All data on disk '$disk' will be finally lost!"
-echo "Are you SURE that you want to install Arch Linux to '$disk'?!"
-echo "Type 'Yes' for installation and 'No' for abort."
-read answer
-if [ $answer == "Yes" ]; then
- echo ""
- echo "Starting installation process - OK"
- echo ""
-else
- echo ""
- echo "Abort of installation process!"
- exit
-fi
-
-
-# Check if booted with UEFI
-
-if [ -d "/sys/firmware/efi/efivars" ]; then
- echo "Booted with UEFI - OK"
- echo ""
- sleep $DELAY
-else
- echo "Not booted with UEFI. Please enable it in your mainboard settings. - FAILED"
- exit
-fi
-
-
-# Partitioning
-
-wipefs -a $disk_path # make sure that fdisk does not ask for removing
- # signatures which breaks the script
-fdisk $disk_path << EOF
-g
-n
-1
-
-+512M
-n
-2
-
-
-p
-w
-EOF
-boot_partition_path="${disk_path}1"
-root_partition_path="${disk_path}2"
-echo "Partitioning finished - OK"
-sleep $DELAY
-echo ""
-
-
-# Create Filesystems
-
-mkfs.fat -F32 $boot_partition_path
-mkfs.ext4 $root_partition_path
-fatlabel $boot_partition_path "BOOT"
-e2label $root_partition_path "ROOT"
-echo "Created filesystems - OK"
-sleep $DELAY
-echo ""
-
-
-# Mount Root Filesystem
-
-mount $root_partition_path /mnt
-echo "Mounted root partition - OK"
-sleep $DELAY
-echo ""
-
-
-# Install basic Packages
-
-echo "Going to install packages ..."
-sleep $DELAY
-echo ""
-pacstrap /mnt base linux linux-firmware dhcpcd nano sudo grub efibootmgr
-if [ "$desktop" = "yes" ]; then
- pacstrap /mnt xorg lightdm lightdm-gtk-greeter xfce4 mousepad
-fi
-echo ""
-echo "Installed packages - OK"
-sleep $DELAY
-echo ""
-
-
-# Copy repository from live image to root partition
-
-cp -r $REPOSITORY_PATH /mnt$REPOSITORY_PATH
-
-
-# Generate /etc/fstab file
-
-genfstab -U /mnt >> /mnt/etc/fstab
-echo "Generated /etc/fstab - OK"
-sleep $DELAY
-echo ""
-
-
-# Launch second stage in chroot
-
-echo "bash $REPOSITORY_PATH/stages/second_stage.sh $hostname \
-${disk_path}1 $REPOSITORY_PATH $CONFIG_FILE_PATH $desktop" | arch-chroot /mnt
-
-
-# Copy log and config from live image to root partition
-
-cp $LOG_FILE_PATH /mnt$LOG_FILE_PATH
-mkdir /mnt$(dirname "$CONFIG_FILE_PATH")
-cp $CONFIG_FILE_PATH /mnt$CONFIG_FILE_PATH
-
-
-# Unmount root partition
-
-cd /root && umount $root_partition_path
-echo "Unmounted root partition - OK"
-sleep $DELAY
-echo ""
-
-
-# Final Messages
-
-cat << EOF
-#################################################################
-# #
-# The default login is user root with password 'root'. #
-# You can now power off your machine with 'poweroff', #
-# remove the installation media and boot your new #
-# Arch Linux machine! #
-# #
-#################################################################
-
-EOF
diff --git a/stages/second_stage.sh b/stages/second_stage.sh
index bd6ddf9..2d19b9a 100644
--- a/stages/second_stage.sh
+++ b/stages/second_stage.sh
@@ -16,59 +16,3 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-
-#####################
-# second_stage.sh #
-#####################
-
-
-# Argument Processing
-
-hostname=$1
-boot_partition_path=$2
-REPOSITORY_PATH=$3
-CONFIG_FILE_PATH=$4
-desktop=$5
-
-
-# Localization
-
-bash $REPOSITORY_PATH/bin/localization.sh
-
-
-# Network Configuration
-
-bash $REPOSITORY_PATH/bin/network_configuration.sh $hostname
-
-
-# Initramfs
-
-# implement if needed ...
-
-
-# Set default Password
-
-echo "root:root" | chpasswd
-echo "Default password for user root set - OK"
-echo ""
-sleep 1
-
-
-# Bootloader Installation
-
-bash $REPOSITORY_PATH/bin/install_bootloader.sh $boot_partition_path
-
-
-# Desktop Installation
-
-if [ "$desktop" = "yes" ]; then
- bash $REPOSITORY_PATH/bin/configure_desktop.sh
-fi
-
-
-# Good bye chroot
-
-echo "Leaving chroot environment - OK"
-echo ""
-sleep 1