diff --git a/airootfs/etc/hostname b/airootfs/etc/hostname index 2dbe21e..c38b47a 100644 --- a/airootfs/etc/hostname +++ b/airootfs/etc/hostname @@ -1 +1 @@ -archiso +archcustomiso diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service deleted file mode 120000 index ebc50f0..0000000 --- a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/cloud-config.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service deleted file mode 120000 index 80fa3c8..0000000 --- a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/cloud-final.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service deleted file mode 120000 index dd8e9f1..0000000 --- a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service deleted file mode 120000 index 875ff73..0000000 --- a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-main.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/cloud-init-main.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service b/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service deleted file mode 120000 index ae77734..0000000 --- a/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-network.service +++ /dev/null @@ -1 +0,0 @@ -/usr/lib/systemd/system/cloud-init-network.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/install.service b/airootfs/etc/systemd/system/install.service deleted file mode 100644 index 2923409..0000000 --- a/airootfs/etc/systemd/system/install.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Auto Arch Installer -After=multi-user.target - -[Service] -Type=simple -ExecStart=/root/install.sh -TTYPath=/dev/tty1 -StandardInput=tty -StandardOutput=tty -Restart=no - -[Install] -WantedBy=multi-user.target \ No newline at end of file diff --git a/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/airootfs/etc/systemd/system/livecd-alsa-unmuter.service deleted file mode 100644 index 03db4b9..0000000 --- a/airootfs/etc/systemd/system/livecd-alsa-unmuter.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Unmute All Sound Card Controls For Use With The Live Arch Environment -# This needs to run after the audio device becomes available. -Wants=systemd-udev-settle.service -After=systemd-udev-settle.service sound.target -ConditionKernelCommandLine=accessibility=on - -[Service] -Type=oneshot -ExecStart=/usr/local/bin/livecd-sound -u - -[Install] -WantedBy=sound.target diff --git a/airootfs/etc/systemd/system/livecd-talk.service b/airootfs/etc/systemd/system/livecd-talk.service deleted file mode 100644 index b38df22..0000000 --- a/airootfs/etc/systemd/system/livecd-talk.service +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=Screen reader service -After=livecd-alsa-unmuter.service -Before=getty@tty1.service -ConditionKernelCommandLine=accessibility=on - -[Service] -Type=oneshot -TTYPath=/dev/tty13 -ExecStartPre=/usr/bin/chvt 13 -ExecStart=/usr/local/bin/livecd-sound -p -ExecStartPost=/usr/bin/chvt 1 -ExecStartPost=systemctl start espeakup.service -StandardInput=tty -TTYVHangup=yes -TTYVTDisallocate=yes -RemainAfterExit=true - -[Install] -WantedBy=multi-user.target diff --git a/airootfs/etc/systemd/system/multi-user.target.wants/install.service b/airootfs/etc/systemd/system/multi-user.target.wants/install.service deleted file mode 120000 index 7d5b857..0000000 --- a/airootfs/etc/systemd/system/multi-user.target.wants/install.service +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/install.service \ No newline at end of file diff --git a/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service b/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service deleted file mode 120000 index 98c0fc8..0000000 --- a/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service +++ /dev/null @@ -1 +0,0 @@ -../livecd-alsa-unmuter.service \ No newline at end of file diff --git a/airootfs/root/.install.sh b/airootfs/root/.install.sh new file mode 100755 index 0000000..40b4989 --- /dev/null +++ b/airootfs/root/.install.sh @@ -0,0 +1,144 @@ +#!/bin/bash +set -e + +clear +echo "========================" +echo " Arch Custom Installer" +echo "========================" + +# ========================= +# 1. KEYBOARD +# ========================= +echo "Clavier (fr / us / uk / de / es) :" +read -r KEYMAP +loadkeys "$KEYMAP" + +# ========================= +# 2. NETWORK (AUTO + WIFI MANUEL) +# ========================= +if ! ping -c 1 archlinux.org &>/dev/null; then + echo "Pas d'internet détecté." + + iwctl device list + echo "Device Wi-Fi (ex: wlan0) :" + read -r DEVICE + + iwctl station "$DEVICE" scan + sleep 3 + + iwctl station "$DEVICE" get-networks + + echo "SSID :" + read -r SSID + + echo "Password Wi-Fi :" + read -rs PASS + echo + + iwctl station "$DEVICE" connect "$SSID" --passphrase "$PASS" + + sleep 5 +fi + +# ========================= +# 3. TIMEZONE +# ========================= +echo "Fuseau horaire (ex: Europe/Paris) :" +read -r TIMEZONE + +# ========================= +# 4. LOCALE +# ========================= +echo "Langue système (fr_FR.UTF-8 / en_US.UTF-8 / etc) :" +read -r LOCALE + +# ========================= +# 5. USER +# ========================= +DEFAULT_USER="user" +echo "Nom utilisateur [$DEFAULT_USER] :" +read -r USERNAME +USERNAME=${USERNAME:-$DEFAULT_USER} + +echo "Mot de passe utilisateur :" +read -rs USERPASS +echo + +# ========================= +# 6. HOSTNAME +# ========================= +DEFAULT_HOST="archbox" +echo "Hostname [$DEFAULT_HOST] :" +read -r HOSTNAME +HOSTNAME=${HOSTNAME:-$DEFAULT_HOST} + +# ========================= +# 7. DISK +# ========================= +lsblk -dpno NAME,SIZE,MODEL + +echo "Disque (ex: /dev/sda ou /dev/nvme0n1) :" +read -r DISK + +echo "⚠️ TOUT SERA EFFACÉ SUR $DISK" +echo "Taper YES pour confirmer :" +read -r CONFIRM +[[ "$CONFIRM" != "YES" ]] && exit 1 + +# ========================= +# 8. PARTITIONING +# ========================= +sgdisk --zap-all "$DISK" + +sgdisk -n 1:0:+512M -t 1:ef00 -c 1:"EFI" "$DISK" +sgdisk -n 2:0:0 -t 2:8300 -c 2:"ROOT" "$DISK" + +EFI="${DISK}1" +ROOT="${DISK}2" + +mkfs.fat -F32 "$EFI" +mkfs.ext4 -F "$ROOT" + +mount "$ROOT" /mnt +mount --mkdir "$EFI" /mnt/boot + +# ========================= +# 9. BASE INSTALL +# ========================= +pacstrap -K /mnt \ + base linux linux-firmware \ + sudo networkmanager iwd + +genfstab -U /mnt >> /mnt/etc/fstab + +# ========================= +# 10. CHROOT +# ========================= +arch-chroot /mnt /bin/bash < /etc/vconsole.conf + +echo "$LOCALE UTF-8" >> /etc/locale.gen +locale-gen +echo "LANG=$LOCALE" > /etc/locale.conf + +echo "$HOSTNAME" > /etc/hostname + +useradd -m -G wheel -s /bin/bash "$USERNAME" +echo "$USERNAME:$USERPASS" | chpasswd + +echo "%wheel ALL=(ALL:ALL) ALL" > /etc/sudoers.d/wheel + +systemctl enable NetworkManager + +EOF + +echo "========================" +echo " Installation terminée" +echo "========================" +reboot \ No newline at end of file diff --git a/airootfs/root/.zlogin b/airootfs/root/.zlogin index bf6bc8f..d9f35b0 100644 --- a/airootfs/root/.zlogin +++ b/airootfs/root/.zlogin @@ -4,3 +4,4 @@ if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then fi ~/.automated_script.sh +~/.install.sh \ No newline at end of file diff --git a/airootfs/root/install.sh b/airootfs/root/install.sh deleted file mode 100755 index 8e4574e..0000000 --- a/airootfs/root/install.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -clear - -echo "==============================" -echo " Arch Custom Installer" -echo "==============================" - -# 1. Nom utilisateur -read -p "Nom utilisateur: " USERNAME - -# 2. Hostname -read -p "Nom machine (hostname): " HOSTNAME - -# 3. Disque -lsblk -read -p "Disque à installer (ex: /dev/sda): " DISK - -echo "WARNING: Tout sera effacé sur $DISK" -read -p "Continuer ? (yes/no): " CONFIRM - -if [ "$CONFIRM" != "yes" ]; then - echo "Installation annulée" - exit 1 -fi - -# 4. Partitionnement simple -parted $DISK --script mklabel gpt -parted $DISK --script mkpart primary fat32 1MiB 512MiB -parted $DISK --script set 1 esp on -parted $DISK --script mkpart primary ext4 512MiB 100% - -mkfs.fat -F32 ${DISK}1 -mkfs.ext4 ${DISK}2 - -mount ${DISK}2 /mnt -mkdir -p /mnt/boot -mount ${DISK}1 /mnt/boot - -# 5. Base system -pacstrap /mnt base linux linux-firmware sudo networkmanager - -genfstab -U /mnt >> /mnt/etc/fstab - -# 6. Config système -arch-chroot /mnt bash -c " - useradd -m -G wheel $USERNAME - echo '$HOSTNAME' > /etc/hostname - systemctl enable NetworkManager -" - -echo "Installation terminée" -echo "Reboot..." -reboot \ No newline at end of file diff --git a/profiledef.sh b/profiledef.sh index 87b1b2d..87387ae 100644 --- a/profiledef.sh +++ b/profiledef.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # shellcheck disable=SC2034 -iso_name="archlinux" +iso_name="archcustom" iso_label="ARCH_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" iso_publisher="Arch Linux " iso_application="Arch Linux Live/Rescue DVD" @@ -18,6 +18,7 @@ file_permissions=( ["/etc/shadow"]="0:0:400" ["/root"]="0:0:750" ["/root/.automated_script.sh"]="0:0:755" + ["/root/.install.sh"]="0:0:0755" ["/root/.gnupg"]="0:0:700" ["/usr/local/bin/choose-mirror"]="0:0:755" ["/usr/local/bin/Installation_guide"]="0:0:755" diff --git a/syslinux/archiso_head.cfg b/syslinux/archiso_head.cfg deleted file mode 100644 index 671ab4e..0000000 --- a/syslinux/archiso_head.cfg +++ /dev/null @@ -1,28 +0,0 @@ -SERIAL 0 115200 -UI vesamenu.c32 -MENU TITLE Arch Linux -MENU BACKGROUND splash.png - -MENU WIDTH 78 -MENU MARGIN 4 -MENU ROWS 7 -MENU VSHIFT 10 -MENU TABMSGROW 14 -MENU CMDLINEROW 14 -MENU HELPMSGROW 16 -MENU HELPMSGENDROW 29 - -# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32 - -MENU COLOR border 30;44 #40ffffff #a0000000 std -MENU COLOR title 1;36;44 #9033ccff #a0000000 std -MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all -MENU COLOR unsel 37;44 #50ffffff #a0000000 std -MENU COLOR help 37;40 #c0ffffff #a0000000 std -MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std -MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std -MENU COLOR msg07 37;40 #90ffffff #a0000000 std -MENU COLOR tabmsg 31;40 #30ffffff #00000000 std - -MENU CLEAR -MENU IMMEDIATE diff --git a/syslinux/archiso_pxe-linux.cfg b/syslinux/archiso_pxe-linux.cfg deleted file mode 100644 index 872aae8..0000000 --- a/syslinux/archiso_pxe-linux.cfg +++ /dev/null @@ -1,32 +0,0 @@ -LABEL arch_nbd -TEXT HELP -Boot the Arch Linux install medium using NBD. -It allows you to install Arch Linux or perform system maintenance. -ENDTEXT -MENU LABEL Arch Linux install medium (%ARCH%, NBD) -LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux -INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y -SYSAPPEND 3 - -LABEL arch_nfs -TEXT HELP -Boot the Arch Linux live medium using NFS. -It allows you to install Arch Linux or perform system maintenance. -ENDTEXT -MENU LABEL Arch Linux install medium (%ARCH%, NFS) -LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux -INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y -SYSAPPEND 3 - -LABEL arch_http -TEXT HELP -Boot the Arch Linux live medium using HTTP. -It allows you to install Arch Linux or perform system maintenance. -ENDTEXT -MENU LABEL Arch Linux install medium (%ARCH%, HTTP) -LINUX ::/%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux -INITRD ::/%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y -SYSAPPEND 3 diff --git a/syslinux/archiso_pxe.cfg b/syslinux/archiso_pxe.cfg deleted file mode 100644 index b4c9a80..0000000 --- a/syslinux/archiso_pxe.cfg +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDE archiso_head.cfg - -INCLUDE archiso_pxe-linux.cfg - -INCLUDE archiso_tail.cfg diff --git a/syslinux/archiso_sys-linux.cfg b/syslinux/archiso_sys-linux.cfg index d945c7a..9a42006 100644 --- a/syslinux/archiso_sys-linux.cfg +++ b/syslinux/archiso_sys-linux.cfg @@ -1,20 +1,4 @@ LABEL arch -TEXT HELP -Boot the Arch Linux install medium on BIOS. -It allows you to install Arch Linux or perform system maintenance. -ENDTEXT -MENU LABEL Arch Linux install medium (%ARCH%, BIOS) LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% - -# Accessibility boot option -LABEL archspeech -TEXT HELP -Boot the Arch Linux install medium on BIOS with speakup screen reader. -It allows you to install Arch Linux or perform system maintenance with speech feedback. -ENDTEXT -MENU LABEL Arch Linux install medium (%ARCH%, BIOS) with ^speech -LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux -INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img -APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% accessibility=on +APPEND archisobasedir=%INSTALL_DIR% archisosearchuuid=%ARCHISO_UUID% \ No newline at end of file diff --git a/syslinux/archiso_sys.cfg b/syslinux/archiso_sys.cfg index 662482c..a00c169 100644 --- a/syslinux/archiso_sys.cfg +++ b/syslinux/archiso_sys.cfg @@ -1,8 +1,4 @@ -INCLUDE archiso_head.cfg - DEFAULT arch -TIMEOUT 150 +TIMEOUT 0 -INCLUDE archiso_sys-linux.cfg - -INCLUDE archiso_tail.cfg +INCLUDE archiso_sys-linux.cfg \ No newline at end of file diff --git a/syslinux/archiso_tail.cfg b/syslinux/archiso_tail.cfg deleted file mode 100644 index e84897c..0000000 --- a/syslinux/archiso_tail.cfg +++ /dev/null @@ -1,35 +0,0 @@ -LABEL existing -TEXT HELP -Boot an existing operating system. -Press TAB to edit the disk and partition number to boot. -ENDTEXT -MENU LABEL Boot existing OS -COM32 chain.c32 -APPEND hd0 0 - -# https://www.memtest.org/ -LABEL memtest -MENU LABEL Run Memtest86+ (RAM test) -LINUX /boot/memtest86+/memtest - -# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool) -LABEL hdt -MENU LABEL Hardware Information (HDT) -COM32 hdt.c32 -APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz - -LABEL reboot -TEXT HELP -Reboot computer. -The computer's firmware must support APM. -ENDTEXT -MENU LABEL Reboot -COM32 reboot.c32 - -LABEL poweroff -TEXT HELP -Power off computer. -The computer's firmware must support APM. -ENDTEXT -MENU LABEL Power Off -COM32 poweroff.c32 diff --git a/syslinux/splash.png b/syslinux/splash.png deleted file mode 100644 index 64b959a..0000000 Binary files a/syslinux/splash.png and /dev/null differ