Compare commits

19 Commits

Author SHA1 Message Date
e513fe2c60 Corrected name of patches.sources (was patches.list) 2025-10-14 15:56:50 -04:00
8a78dd7f96 Moved packages array into relavent if statement 2025-10-14 11:45:10 -04:00
bee95926b7 Moved packages array into relavent if statement 2025-10-14 11:43:46 -04:00
67763d1b39 Added swap size limit of 32 GiB 2025-10-14 11:39:01 -04:00
203a09eb05 Added elementary OS as condition to install mmdebstrap, etc. 2025-10-13 20:00:41 -04:00
5b4a77f615 Added proper flags to mmdebstrap 2025-10-13 19:53:01 -04:00
939359b94e Removed installation of zfs-initramfs as it is now handled by mmdebstrap 2025-10-13 19:38:54 -04:00
12beaaf5d2 Removed elementary OS package installations due to now being handled by mmdebstrap 2025-10-13 19:38:07 -04:00
211a0413f5 Remove sources.list 2025-10-13 19:26:21 -04:00
7ba4a4f60f Put packages to include via mmdebstrap into array 2025-10-13 19:25:13 -04:00
328b02a294 Updated sources files to deb822 format 2025-10-13 19:20:28 -04:00
a36854c208 Linux kernel excluded from pulling from Backports 2025-10-10 21:35:13 -04:00
6268d684c6 Added 'whois' to list of packages to install in live environment 2025-07-21 15:54:18 -04:00
ee48fb7560 'pre-inst.sh' now automatically runs 'install.sh' inside chroot 2025-07-21 15:51:32 -04:00
bba89f8185 Rearranged order of entries in temporary root crontab 2025-07-21 15:50:47 -04:00
802fa4f3c8 Moved automatic execution of 'finalize.sh' to cronjob at reboot 2025-07-21 15:11:12 -04:00
26f59f4a91 Symlink '/sbin/shutdown' and '/sbin/reboot' to '/usr/bin' if not present there 2025-07-21 14:15:09 -04:00
ae6fc22074 Trigger 'finalize.sh' automatically at end of script instead of having to be run after reboot 2025-07-21 14:10:16 -04:00
7244296734 Updated message at end of script 2025-07-21 14:07:45 -04:00
6 changed files with 128 additions and 69 deletions

View File

@@ -10,31 +10,42 @@ source \
if [[ "${1}" == '-1' ]]; then
packages=(\
console-setup \
cryptsetup \
curl \
dosfstools \
dpkg-dev \
efibootmgr \
ethtool \
firmware-{ast,atheros,bnx{2,2x},brcm80211,iwlwifi,libertas,linux,realtek,zd1211} \
flatpak \
keyboard-configuration \
linux-{headers,image}-amd64 \
locales \
nano \
network-manager \
openssh-{client,server} \
popularity-contest \
printer-driver-all \
systemd-timesyncd \
tasksel \
zfs-initramfs \
zstd\
)
include="--include=${packages[0]}"
for ((i=1;i<${#packages[@]};i++)); do
include+=" --include=${packages[${i}]}"
done
mmdebstrap \
--skip=check/empty \
--components=main,non-free-firmware,contrib \
--mode=root \
--format=directory \
--include=console-setup \
--include=cryptsetup \
--include=curl \
--include=dosfstools \
--include=dpkg-dev \
--include=efibootmgr \
--include=ethtool \
--include=firmware-{ast,atheros,bnx{2,2x},brcm80211,iwlwifi,libertas,linux,realtek,zd1211} \
--include=flatpak \
--include=keyboard-configuration \
--include=linux-{headers,image}-amd64 \
--include=locales \
--include=nano \
--include=network-manager \
--include=openssh-{client,server} \
--include=popularity-contest \
--include=printer-driver-all \
--include=systemd-timesyncd \
--include=tasksel \
--include=zstd \
${include} \
"${VERSION_CODENAME}" \
/mnt
elif [[ "${1}" == '-2' ]]; then

View File

@@ -10,31 +10,86 @@ source \
if [[ "${1}" == '-1' ]]; then
packages=(\
console-setup \
cryptsetup \
curl \
dosfstools \
dpkg-dev \
efibootmgr \
ethtool \
flatpak \
keyboard-configuration \
linux-generic \
locales \
nano \
network-manager \
openssh-{client,server} \
popularity-contest \
zfs-initramfs \
zstd\
)
include="--include=${packages[0]}"
for ((i=1;i<${#packages[@]};i++)); do
include+=" --include=${packages[${i}]}"
done
mmdebstrap \
--include='' \
--skip=check/empty \
--components=main,restricted,universe,multiverse \
--mode=root \
--format=directory \
${include} \
"${UBUNTU_VERSION_CODENAME}" \
/mnt
elif [[ "${1}" == '-2' ]]; then
cat <<EOF >/mnt/etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ ${UBUNTU_VERSION_CODENAME} main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ ${UBUNTU_VERSION_CODENAME} main restricted universe multiverse
cat <<EOF >/mnt/etc/apt/sources.list.d/${UBUNTU_VERSION_CODENAME}.sources
# ${UBUNTU_VERSION_CODENAME^}
Enabled: yes
Types: deb deb-src
URIs: http://archive.ubuntu.com/ubuntu/
Suites: ${UBUNTU_VERSION_CODENAME}
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
deb http://security.ubuntu.com/ubuntu/ ${UBUNTU_VERSION_CODENAME}-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ ${UBUNTU_VERSION_CODENAME}-security main restricted universe multiverse
# ${UBUNTU_VERSION_CODENAME^} Security
Enabled: yes
Types: deb deb-src
URIs: http://security.ubuntu.com/ubuntu/
Suites: ${UBUNTU_VERSION_CODENAME}-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
deb http://archive.ubuntu.com/ubuntu/ ${UBUNTU_VERSION_CODENAME}-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ ${UBUNTU_VERSION_CODENAME}-updates main restricted universe multiverse
# ${UBUNTU_VERSION_CODENAME^} Updates
Enabled: yes
Types: deb deb-src
URIs: http://archive.ubuntu.com/ubuntu/
Suites: ${UBUNTU_VERSION_CODENAME}-updates
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
cat <<EOF >/mnt/etc/apt/sources.list.d/elementary.list
deb https://ppa.launchpadcontent.net/elementary-os/stable/ubuntu ${UBUNTU_VERSION_CODENAME} main
deb-src https://ppa.launchpadcontent.net/elementary-os/stable/ubuntu ${UBUNTU_VERSION_CODENAME} main
cat <<EOF >/mnt/etc/apt/sources.list.d/elementary.sources
Enabled: yes
Types: deb deb-src
URIs: https://ppa.launchpadcontent.net/elementary-os/stable/ubuntu
Suites: ${UBUNTU_VERSION_CODENAME}
Components: main
Signed-By: /etc/apt/trusted.gpg.d/elementary.key.asc
EOF
cat <<EOF >/mnt/etc/apt/sources.list.d/patches.list
deb https://ppa.launchpadcontent.net/elementary-os/os-patches/ubuntu ${UBUNTU_VERSION_CODENAME} main
deb-src https://ppa.launchpadcontent.net/elementary-os/os-patches/ubuntu ${UBUNTU_VERSION_CODENAME} main
cat <<EOF >/mnt/etc/apt/sources.list.d/patches.sources
Enabled: yes
Types: deb deb-src
URIs: https://ppa.launchpadcontent.net/elementary-os/os-patches/ubuntu
Suites: ${UBUNTU_VERSION_CODENAME}
Components: main
Signed-By: /etc/apt/trusted.gpg.d/patches.key.asc
EOF
rm /mnt/etc/apt/sources.list
elif [[ "${1}" == '-3' ]]; then
rsync -pogAXtlHrDx \
/etc/skel \

View File

@@ -71,26 +71,7 @@ EOF
fi
fi
if [[ "${ID}" == 'elementary' ]]; then
apt \
install \
--yes \
--no-install-recommends \
console-setup \
cryptsetup \
curl \
dpkg-dev \
efibootmgr \
ethtool \
flatpak \
keyboard-configuration \
linux-generic \
locales \
nano \
network-manager \
openssh-{client,server} \
popularity-contest
elif [[ "${ID}" == 'fedora' ]]; then
if [[ "${ID}" == 'fedora' ]]; then
if [[ "${VERSION_ID}" -lt '41' ]]; then
dnf \
config-manager \
@@ -147,10 +128,6 @@ EOF
tzdata \
keyboard-configuration \
console-setup
apt install \
--yes \
zfs-initramfs
fi
if [[ "${ID}" == 'debian' ]]; then

View File

@@ -44,6 +44,10 @@ sgdisk \
if [[ "${ENABLE_SWAP}" == "yes" ]]; then
SWAP_SIZE="$(((($(vmstat -sS M | grep 'total memory' | sed 's/ M total memory//') / 1024) + 1) * 2))"
if [[ "${SWAP_SIZE#}" -gt '32' ]]; then
SWAP_SIZE='32'
fi
sgdisk \
-n2:0:+${SWAP_SIZE}G \
-t2:BF02 \

View File

@@ -130,6 +130,10 @@ EOF
Package: *
Pin: release n=${VERSION_CODENAME}*
Pin-Priority: 990
Package: linux-*
Pin: release n=${VERSION_CODENAME}-backports
Pin-Priority: -1
EOF
if [[ "${VERSION_CODENAME}" == 'bookworm' ]]; then
@@ -233,11 +237,11 @@ EOF
if [[ "${ID}" == 'fedora' ]]; then
printf \
'@reboot /usr/bin/home-fix.sh\n' | \
"@reboot\tsudo -u ${USERNAME} '${BASEDIR}/finalize.sh'\n@reboot\t/usr/bin/home-fix.sh\n" | \
tee /var/spool/cron/root &> /dev/null
elif [[ "${ID}" == 'debian' ]]; then
printf \
'@reboot /usr/bin/home-fix.sh\n' | \
"@reboot\tsudo -u ${USERNAME} '${BASEDIR}/finalize.sh'\n@reboot\t/usr/bin/home-fix.sh\n" | \
tee /var/spool/cron/crontabs/root &> /dev/null
chown \
@@ -250,6 +254,14 @@ EOF
fi
fi
if [[ ! -f '/usr/bin/shutdown' ]]; then
ln -s /sbin/shutdown /usr/bin/shutdown
fi
if [[ ! -f '/usr/bin/reboot' ]]; then
ln -s /sbin/reboot /usr/bin/reboot
fi
zfs \
snapshot \
${HOSTNAME,,}/ROOT/${ID}@post-install
@@ -261,7 +273,7 @@ cat << EOF
Script has finished running
Please reboot your computer
Please exit the chroot
Press any key to return to the main menu
EOF

View File

@@ -53,7 +53,7 @@ if [[ -f '/usr/bin/gsettings' ]]; then
false
fi
if [[ "${ID}" == 'debian' ]]; then
if [[ "${ID}" == 'debian' ]] || [[ "${ID}" == 'elementary' ]]; then
apt \
update && \
apt \
@@ -61,8 +61,9 @@ if [[ "${ID}" == 'debian' ]]; then
--yes \
mmdebstrap \
gdisk \
zfsutils-linux \
systemd-timesyncd
systemd-timesyncd \
whois \
zfsutils-linux
elif [[ "${ID}" == 'fedora' ]]; then
if [[ "${VERSION_ID}" -lt '41' ]]; then
dnf config-manager \
@@ -190,8 +191,7 @@ printf \
chroot \
/mnt \
bash \
--login
"$(printf "${BASEDIR}\n" | sed 's|.*\/|\/|')/install.sh"
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -I {} umount -Rlf {}