#!/usr/bin/env ash format_disk(){ echo "===FORMATTING DISK===" apk add parted e2fsprogs ram="8" # in whole number GiB (round up) table="EFI-GPT" # EFI-GPT or MBR or BIOS-GPT [ "$table" == "MBR" ] && \ parted -s /dev/sda \ mklabel msdos \ mkpart primary linux-swap 2MiB ${ram}GiB \ mkpart primary ext4 ${ram}GiB 100% \ set 2 boot on \ && mkswap -L SWAP /dev/sda1 \ && swapon /dev/sda1 \ && mkfs.ext4 -n ROOT /dev/sda2 [ "$table" == "EFI-GPT" ] && \ parted -s /dev/sda \ mklabel gpt \ mkpart primary fat32 1MiB +260MiB \ mkpart primary linux-swap 260MiB +${ram}GiB \ mkpart primary ext4 ${ram}GiB 100% \ set 1 esp on \ set 3 boot on \ && mkdosfs -n EFI /dev/sda1 \ && mkswap -L SWAP /dev/sda2 \ && swapon /dev/sda2 \ && mkfs.ext4 -n ROOT /dev/sda3 [ "$table" == "BIOS-GPT" ] && \ parted -s /dev/sda \ mklabel gpt \ mkpart primary fat32 1MiB 2MiB \ mkpart primary linux-swap 100MiB ${ram}GiB \ mkpart primary ext4 ${ram}GiB 100% \ set 1 bios_grub on \ set 3 boot on \ && mkdosfs -n EFI /dev/sda1 \ && mkswap -L SWAP /dev/sda2 \ && swapon /dev/sda2 \ && mkfs.ext4 -n ROOT /dev/sda3 echo -e "\n\n" } chroot_dir="" arch="" mirror="" branch="latest-stable" version="" set_chroot_dir(){ echo "===CHROOT DIRECTORY===" mkdir -p /mnt/chroot chroot_dir="/mnt/chroot" } set_arch(){ arch=`uname -m` } set_mirror(){ echo "===SETTING MIRROR===" data="" for s in $(wget -qO - \ http://rsync.alpinelinux.org/alpine/MIRRORS.txt) do t=$(time -f "%E" wget -q $s/MIRRORS.txt -T 2 -O /dev/null 2>&1) echo "$s was $t" data="$data$t $s\n" done mirror=`echo -e $data \ | sort \ | grep "http" \ | head -n 1 \ | awk '{print $3}'` echo "${mirror}/${branch}/main" >> /etc/apk/repositories apk upgrade && apk upgrade echo "==RESULTS==" echo -e "${mirror}\n\n" } set_version(){ version=`wget -O - -o /dev/null \ ${mirror}/${branch}/main/${arch}/ \ | grep "apk-tools-static" \ | sed -e 's/.*apk-tools-static-//' \ | sed -e 's/\.apk.*//'` } get_alpine(){ wget \ ${mirror}/${branch}/main/${arch}\ /apk-tools-static-${version}.apk tar -xzf apk-tools-static-*.apk ./sbin/apk.static -X ${mirror}/${branch}/main -U \ --allow-untrusted --root ${chroot_dir} --initdb add alpine-base } mk_chroot(){ # dev mounts mount /dev/ ${chroot_dir}/dev/ --bind mount -o remount,ro,bind ${chroot_dir}/dev # proc and sysfs mount -t proc none ${chroot_dir}/proc mount -o bind /sys ${chroot_dir}/sys # dns cp -L /etc/resolv.conf ${chroot_dir}/etc/ mkdir -p ${chroot_dir}/root # apk sources mkdir -p ${chroot_dir}/etc/apk echo "${mirror}/${branch}/main" > \ ${chroot_dir}/etc/apk/repositories } set_mirror && \ # fix the start and end format_disk && \ set_chroot_dir #&& \ #set_arch && \ #set_version && \ #get_alpine && \ #mk_chroot #cat << EOF | chroot ${chroot_dir} ash -l #mkdir boop #echo "did it work?" #EOF