Решил для освоения «скриптинга» накатать скрипт установки Arch Linux (под свою машину, под текущую конфигурацию).
Проблема в том, что не создаётся файл «/mnt/setup», система сразу перезагружается, без выполнения arch-chroot. В чём косяк?
Сам скрипт:
wifi-menu #автоматизировать
timedatectl set-ntp true
parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary 1 128
parted /dev/sda mkpart primary 128 126gb
parted /dev/sda mkpart primary 126gb 128gb
parted /dev/sda align-check opt 1
parted /dev/sda align-check opt 2
parted /dev/sda align-check opt 3
parted /dev/sda set 1 boot on
mkfs.vfat -F32 /dev/sda1
mkfs.btrfs -f /dev/sda2
mkswap /dev/sda3
swapon /dev/sda3
mount -o rw,noatime,compress=lzo,ssd,space_cache,commit=120,discard,subvolid=5,subvol=/ /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
pacman -Sy --noconfirm reflector
reflector --sort rate --save /etc/pacman.d/mirrorlist
pacstrap /mnt base btrfs-tools #intel-ucode gdm networkmanager gnome-terminal sudo gnome-control-center chromium telegram transmission-gtk gnome-keyring xdg-user-dirs-gtk gnome-screenshoot gnome-tweaks
genfstab -U /mnt >> /mnt/etc/fstab
sed -i "s/0 2/0 0/" /mnt/etc/fstab #не уверен что там будет при каждой установке "0 2", но пока работает
#создаём файл настройки
echo "ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime" $cat > /mnt/setup
echo "hwclock --systohc" $cat >> /mnt/setup
echo -e "echo \042ru_RU.UTF-8 UTF-8\042 \044cat > /etc/locale.gen" $cat >> /mnt/setup
echo "locale-gen" $cat >> /mnt/setup
echo -e "echo \042LANG=ru_RU.UTF-8\042 \044cat > /etc/locale.conf" $cat >> /mnt/setup
echo -e "echo \042FONT=cyr-sun16\042 \044cat > /etc/vconsole.conf" $cat >> /mnt/setup
echo -e "echo \042vltsoy97\042 \044cat > /etc/hostname" $cat >> /mnt/setup
echo -e "echo -e \0042127.0.0.1\0134tlocalhost\0134n::1\0134tlocalhost\0134n127.0.1.1\0134tvltsoy97.localdomain vltsoy97\042 \044cat > /etc/hosts" $cat >> /mnt/setup
echo -e "echo -e \042типопароль\0134nтипопароль\0134n\042 | passwd" $cat >> /mnt/setup
echo "bootctl --path=/boot install" $cat >> /mnt/setup
echo -e "echo -e \042default\0134tarch\042 \044cat > /boot/loader/loader.conf" $cat >> /mnt/setup
echo -e "echo -e \042title\0134tArch Linux\0134nlinux\0134t/vmlinuz-linux\0134ninitrd\0134t/intel-ucode.img\0134ninitrd\0134t/initramfs-linux.img\0134noptions\0134troot=PARTUUID= rw\042 \044cat > /boot/loader/entries/arch.conf" $cat >> /mnt/setup
echo -e "PARTUUID=\044(blkid -s PARTUUID -o value /dev/sda2)" $cat >> /mnt/setup
echo -e "sed -i \042s/PARTUUID= /PARTUUID=\044PARTUUID /\042 /boot/loader/entries/arch.conf" $cat >> /mnt/setup
echo "useradd -m -g users -G whell,audio,lp,storage,video,network,power -s /bin/bash vltsoy97" $cat >> /mnt/setup
echo -e "echo -e \042типопароль\0134nтипопароль\0134n\042 | passwd vltsoy97" $cat >> /mnt/setup
#добавить загрузку-распаковку-cp в /usr/lib/firmware/intel-ucode/
#добавить настройку visudo
#echo "systemctl enable gdm.service" $cat >> /mnt/setup
#echo "systemctl enable NetworkManager.service" $cat >> /mnt/setup
echo "exit" $cat >> /mnt/setup
#файл настройки создан, наверное...
arch-chroot /mnt /mnt/setup
umount -R /mnt
reboot
И какие ещё могут возникнуть проблемы?
Тестирую по хардкору, без виртуалки.
arch, bash, script, ошибки, учебный процесс