Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- loadkeys ru
- setfont cyr-sun16
- #Разметка диска
- echo 'again=y
- while [ "$again" = "y" ]
- do
- echo
- echo "[Таблица разделов]"
- lsblk /dev/sd*
- echo
- read -p "Введите имя устройства, на котором будет создан раздел: " name
- read -p "Создать Основной (p) или Расширенный (e) раздел: " type
- read -p "Введите размер нового раздела: " size
- fdisk /dev/$name << EOF
- n
- $type
- $size
- w
- EOF
- echo
- printf "Создать еще один раздел? [y/n] "
- read again
- done' > fdisk.sh
- echo 'again=y
- while [ "$again" = "y" ]
- do
- echo
- echo "[Таблица разделов]"
- lsblk /dev/sd*
- echo
- read -p "Введите имя устройства, на котором будет создан раздел: " name
- read -p "Создать Основной (p) или Расширенный (e) раздел: " type
- read -p "Введите размер нового раздела: " size
- gdisk /dev/$name << EOF
- n
- $type
- $size
- w
- EOF
- echo
- printf "Создать еще один раздел? [y/n] "
- read again
- done' > gdisk.sh
- echo 'echo "[Разметка диска]"
- echo
- echo "1) MBR"
- echo "2) GPT"
- echo
- printf "Выберите таблицу разделов: "
- read doing
- case $doing in
- 1)
- sh fdisk.sh
- ;;
- 2)
- sh gdisk.sh
- ;;
- esac' > fgdisk.sh
- sh fgdisk.sh
- #Создание файловой системы
- echo 'again=y
- while [ "$again" = "y" ]
- do
- echo
- echo "[Создание файловой системы]"
- echo "1) Файловая система f2fs"
- echo "2) Файловая система ext2"
- echo "3) Журналируемая файловая система ext3"
- echo "4) Журналируемая файловая система ext4"
- echo "5) Журналируемая файловая система btrfs"
- echo "6) Журналируемая файловая система JFS"
- echo "7) Журналируемая файловая система XFS"
- echo
- printf "Выберите файловую систему: "
- read doing
- case $doing in
- 1)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.f2fs /dev/$dev
- mkdir /mnt
- mount /dev/$dev /mnt
- pacstrap -i f2fs-tools
- umount -l /mnt
- ;;
- 2)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.ext2 /dev/$dev
- ;;
- 3)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.ext3 /dev/$dev
- ;;
- 4)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.ext4 /dev/$dev
- ;;
- 5)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.btrfs /dev/$dev
- ;;
- 6)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.jfs /dev/$dev
- ;;
- 7)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " dev
- mkfs.xfs /dev/$dev
- ;;
- esac
- echo
- printf "Продолжить или перейти к следующему шагу? [y - продолжить/Enter - перейти к следующему шагу]: "
- read again
- done' > fs.sh
- sh fs.sh
- #Swap
- echo 'echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя swap раздела: " swap
- mkswap /dev/$swap
- swapon /dev/$swap' > swap.sh
- sh swap.sh
- #Монтирование разделов
- echo 'again=y
- while [ "$again" = "y" ]
- do
- echo
- echo "[Монтирование разделов]"
- echo "1) /"
- echo "2) /boot"
- echo "3) /home"
- echo "4) /tmp"
- echo "5) /usr"
- echo "6) /var"
- echo "7) /srv"
- echo "8) /opt"
- echo "9) /usr/local"
- echo
- printf "Выберите точку монтирования: "
- read doing
- case $doing in
- 1)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mount /dev/$name /mnt
- ;;
- 2)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/boot
- mount /dev/$name /mnt/boot
- ;;
- 3)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/home
- mount /dev/$name /mnt/home
- ;;
- 4)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/tmp
- mount /dev/$name /mnt/tmp
- ;;
- 5)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/usr
- mount /dev/$name /mnt/usr
- ;;
- 6)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/var
- mount /dev/$name /mnt/var
- ;;
- 7)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/srv
- mount /dev/$name /mnt/srv
- ;;
- 8)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/opt
- mount /dev/$name /mnt/opt
- ;;
- 9)
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя раздела: " name
- mkdir /mnt/usr/local
- mount /dev/$name /mnt/usr/local
- ;;
- esac
- echo
- printf "Продолжить монтирование разделов? [y/n] "
- read again
- done' > mount.sh
- sh mount.sh
- #Установка базовой системы
- echo 'echo
- echo "[Установка базовой системы]"
- pacstrap -i /mnt base base-devel' > base.sh
- sh base.sh
- #fstab
- echo 'genfstab -U -p /mnt >> /mnt/etc/fstab
- echo
- echo -n "Открыть fstab для просмотра или редактирования? [y/n] "
- read item
- case "$item" in
- y|Y)
- nano /mnt/etc/fstab
- ;;
- n|N)
- exit 0
- ;;
- *)
- ;;
- esac' > fstab.sh
- sh fstab.sh
- #DNS
- echo 'echo nameserver 8.8.8.8 > /etc/resolv.conf' > dns.sh
- #Обновление репозиториев
- echo 'pacman -Sy' > update.sh
- #Настройка локали
- echo 'nano /etc/locale.gen
- locale-gen
- echo
- read -p "Введите желаемую локаль (см. сгенерированные локали) [Прим: "ru_RU.UTF-8"]: " locale
- echo LANG=$locale > /etc/locale.conf
- read -p "Введите выбранную локаль для экспорта в текущий сеанс [Прим: "ru_RU.UTF-8"]: " locale
- export LANG=$locale' > locale.sh
- #Виртуальная консоль
- echo 'echo
- echo -n "Создать файл vconsole.conf? [y/n] "
- read item
- case "$item" in
- y|Y)
- echo KEYMAP= > /etc/vconsole.conf
- echo FONT= >> /etc/vconsole.conf
- nano /etc/vconsole.conf
- ;;
- n|N)
- exit 0
- ;;
- *)
- ;;
- esac' > vconsole.sh
- #Часовой пояс
- echo 'echo "[Часовой пояс]"
- echo "1) Конфигурация временной зоны с помощью tzselect"
- echo "2) Вручную"
- echo
- printf "Выберите вариант: "
- read doing
- case $doing in
- 1)
- tzselect
- ;;
- 2)
- read -p "Введите зону и субзону: " $zone $subzone
- ln -sf /usr/share/zoneinfo/$zone/$subzone /etc/localtime
- ;;
- esac' > tz.sh
- #Аппаратные часы
- echo 'echo "[Аппаратные часы]"
- echo "1) UTC"
- echo "2) Localtime"
- echo
- printf "Выберите режим: "
- read doing
- case $doing in
- 1)
- hwclock --systohc --utc
- ;;
- 2)
- hwclock --systohc localtime
- ;;
- esac' > time.sh
- #NTP
- echo 'echo
- echo -n "Установить NTP сервер? [y/n] "
- read item
- case "$item" in
- y|Y)
- pacman -S --noconfirm ntp
- systemctl enable ntpd.service
- ;;
- n|N)
- exit 0
- ;;
- *)
- ;;
- esac' > ntp.sh
- #Имя компьютера
- echo 'echo
- read -p "Введите имя компьютера: " hostname
- echo $hostname > /etc/hostname' > hostname.sh
- #Настройка сети
- echo 'echo "[Настройка сети]"
- echo "1) Проводное (динамическое)"
- echo "2) Беспроводное"
- echo
- printf "Выберите тип подключения: "
- read doing
- case $doing in
- 1)
- echo
- ip link
- echo
- read -p "Выберите сетевой адаптер: " eth
- systemctl enable dhcpcd@$eth.service
- ;;
- 2)
- pacman -S --noconfirm iw wpa_supplicant dialog
- echo
- ip link
- echo
- read -p "Выберите сетевой адаптер: " wlan
- wifi-menu $wlan
- ;;
- esac' > net.sh
- echo 'echo
- echo -n "Установить Network Manager? [y/n] "
- read item
- case "$item" in
- y|Y)
- pacman -S --noconfirm networkmanager
- systemctl enable NetworkManager.service
- pacman -Rsnc netctl
- ;;
- n|N)
- exit 0
- ;;
- *)
- ;;
- esac' > nm.sh
- #mkinitcpio
- echo 'echo
- echo "[Создание initramfs]"
- mkinitcpio -p linux' > mkinitcpio.sh
- echo 'echo
- echo "[Пароль для учетной записи root]"
- passwd
- echo
- echo "[Создание нового пользователя]"
- read -p "Введите имя пользователя: " username
- useradd -m -g users -G wheel,audio -s /bin/bash $username
- echo
- echo "[Пароль для учетной записи $username]"
- passwd $username' > user.sh
- #Графическая подсистема
- echo 'echo "[Графическая подсистема]"
- echo "1) Xorg"
- echo "2) Wayland"
- echo "3) XWayland"
- echo
- printf "Выберите графическую подсистему: "
- read doing
- case $doing in
- 1)
- pacman -S xorg-server
- ;;
- 2)
- pacman -S wayland
- ;;
- 3)
- pacman -S xorg-server-xwayland
- ;;
- esac' > x.sh
- #Видеодрайверы
- echo 'echo
- lspci -k | grep -A 2 -E "(VGA|3D)"
- echo
- echo "1) Для самых новых видеокарт [Beta]"
- echo "2) GeForce 400 серии и новее [NVCx и новее]"
- echo "3) GeForce 400 серии и новее [NVCx и новее][lts]"
- echo "4) GeForce 8000/9000, ION и 100-300 серии [NV5x, NV8x, NV9x и NVAx]"
- echo "5) GeForce 8000/9000, ION и 100-300 серии [NV5x, NV8x, NV9x и NVAx][lts]"
- echo "6) GeForce 6000/7000 серии [NV4x и NV6x]"
- echo "7) GeForce 6000/7000 серии [NV4x и NV6x][lts]"
- echo "8) GeForce 5 FX серии [NV30-NV36] (поддерживается Xorg до версии 1.15)"
- echo "9) GeForce 2/3/4 MX/Ti серии [NV11, V17-NV28] (поддерживается Xorg до версии 1.12)"
- echo
- printf "Выберите подходящий драйвер для вашей видеокарты: "
- read doing
- case $doing in
- 1)
- pacman -S --noconfirm nvidia-beta
- ;;
- 2)
- pacman -S --noconfirm nvidia
- ;;
- 3)
- pacman -S --noconfirm nvidia-lts
- ;;
- 4)
- pacman -S --noconfirm nvidia-340xx
- ;;
- 5)
- pacman -S --noconfirm nvidia-340xx-lts
- ;;
- 6)
- pacman -S --noconfirm nvidia-304xx
- ;;
- 7)
- pacman -S --noconfirm nvidia-304xx-lts
- ;;
- 8)
- pacman -S --noconfirm nvidia-173xx-dkms
- ;;
- 9)
- pacman -S --noconfirm nvidia-96xx-dkms
- ;;
- esac' > nvidia.sh
- echo 'echo "[Видеодрайверы]"
- echo "1) Intel"
- echo "2) AMD (недоступно)"
- echo "3) Nvidia"
- echo "4) Virtualbox"
- echo "5) VMware Workstation"
- echo
- printf "Выберите видеоадаптер: "
- read doing
- case $doing in
- 1)
- pacman -S --noconfirm xf86-video-intel
- ;;
- 2)
- again=y
- while [ "$again" = "y" ]
- do
- echo
- echo "недоступно"
- echo
- printf "Продолжить установку? [y/n] "
- read again
- ;;
- 3)
- sh nvidia.sh
- ;;
- 4)
- pacman -S --noconfirm xf86-video-mesa
- ;;
- 5)
- pacman -S --noconfirm xf86-video-vmware
- ;;
- esac' > drivers.sh
- #Окружение рабочего стола
- echo 'echo
- echo "1) plasma - группа пакетов с опциональной установкой"
- echo "2) plasma-meta - метапакет группы plasma"
- echo "3) plasma-desktop - минимальная установка"
- echo
- printf "Выберите категорию: "
- read doing
- case $doing in
- 1)
- pacman -S plasma
- ;;
- 2)
- pacman -S plasma-meta
- ;;
- 3)
- pacman -S plasma-desktop
- ;;
- esac' > plasma.sh
- echo 'echo
- echo "1) gnome - группа пакетов с опциональной установкой"
- echo "2) gnome-extra - окружение рабочего стола с дополнительными утилитами"
- echo "3) gnome-shell - минимальная установка"
- echo
- printf "Выберите категорию: "
- read doing
- case $doing in
- 1)
- pacman -S gnome
- ;;
- 2)
- pacman -S gnome-extra
- ;;
- 3)
- pacman -S gnome-shell
- ;;
- esac' > gnome.sh
- echo 'echo
- echo "1) mate - группа пакетов с опциональной установкой"
- echo "2) mate-extra - окружение рабочего стола с дополнительными утилитами"
- echo "3) mate-base - минимальная установка"
- echo
- printf "Выберите категорию: "
- read doing
- case $doing in
- 1)
- pacman -S mate
- ;;
- 2)
- pacman -S mate-extra
- ;;
- 3)
- pacman -S marco mate-panel mate-session-manager
- ;;
- esac' > mate.sh
- echo 'echo
- echo -n "Установить xfce4-goodies? [y/n] "
- read item
- case "$item" in
- y|Y)
- pacman -S xfce4-goodies
- ;;
- n|N)
- exit 0
- ;;
- *)
- ;;
- esac' > xfce4.sh
- echo 'echo
- echo "1) lxde - группа пакетов с опциональной установкой"
- echo "2) lxde-gtk3 - GTK +3 версия (эксперементальная)"
- echo
- printf "Выберите категорию: "
- read doing
- case $doing in
- 1)
- pacman -S lxde
- ;;
- 2)
- pacman -S lxde-gtk3
- ;;
- esac' > lxde.sh
- echo 'echo
- echo "[Окружение рабочего стола]"
- echo "1) KDE"
- echo "2) Gnome"
- echo "3) Cinnamon"
- echo "4) Mate"
- echo "5) XFCE"
- echo "6) LXDE"
- echo
- printf "Выберите окружение: "
- read doing
- case $doing in
- 1)
- sh plasma.sh
- ;;
- 2)
- sh gnome.sh
- ;;
- 3)
- pacman -S cinnamon
- ;;
- 4)
- sh mate.sh
- ;;
- 5)
- pacman -S xfce4
- sh xfce4.sh
- ;;
- 6)
- sh lxde.sh
- ;;
- esac' > de.sh
- #Менеджер дисплеев
- echo 'echo
- echo "[Менеджер дисплея]"
- echo "1) SDDM"
- echo "2) GDM"
- echo "3) LightDM"
- echo "4) XDM"
- echo "5) LXDM"
- echo
- printf "Выберите окружение: "
- read doing
- case $doing in
- 1)
- pacman -S --noconfirm sddm
- systemctl enable sddm.service
- ;;
- 2)
- pacman -S --noconfirm gdm
- systemctl enable gdm.service
- ;;
- 3)
- pacman -S --noconfirm lightdm lightdm-gtk-greeter
- systemctl enable lightdm.service
- ;;
- 4)
- pacman -S --noconfirm xorg-xdm
- systemctl enable xdm.service
- ;;
- 5)
- pacman -S --noconfirm lxdm
- systemctl enable lxdm.service
- ;;
- esac' > dm.sh
- #Bootloader
- echo 'echo
- echo -n "Установить os-prober? [y/n] "
- read item
- case "$item" in
- y|Y)
- pacman -S --noconfirm os-prober
- ;;
- n|N)
- exit 0
- ;;
- *)
- ;;
- esac' > os-prober.sh
- echo 'echo
- echo "[Установка загрузчика]"
- echo "1) Grub"
- echo "2) Syslinux"
- echo
- printf "Выберите загрузчик: "
- read doing
- case $doing in
- 1)
- pacman -S --noconfirm grub
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя устройства, на которое будет установлен загрузчик: " grub
- grub-install --target=i386-pc --recheck /dev/$grub
- grub-mkconfig -o /boot/grub/grub.cfg
- sh os-prober.sh
- ;;
- 2)
- pacman -S --noconfirm syslinux
- mkdir /boot/syslinux
- cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
- extlinux --install /boot/syslinux
- echo
- lsblk /dev/sd*
- echo
- read -p "Введите имя устройства, на которое будет установлен загрузочный код Syslinux: " syslinux
- dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/$syslinux
- ;;
- esac' > boot.sh
- #Chroot
- mount -o bind /dev /mnt/dev
- mount -t proc none /mnt/proc
- mount -o bind /sys /mnt/sys
- cp dns.sh /mnt/bin
- cp update.sh /mnt/bin
- cp locale.sh /mnt/bin
- cp vconsole.sh /mnt/bin
- cp tz.sh /mnt/bin
- cp time.sh /mnt/bin
- cp hostname.sh /mnt/bin
- cp net.sh /mnt/bin
- cp nm.sh /mnt/bin
- cp user.sh /mnt/bin
- cp x.sh /mnt/bin
- cp drivers.sh /mnt/bin
- cp de.sh /mnt/bin
- cp dm.sh /mnt/bin
- cp boot.sh /mnt/bin
- chmod +x /mnt/bin/dns.sh
- chmod +x /mnt/bin/update.sh
- chmod +x /mnt/bin/locale.sh
- chmod +x /mnt/bin/vconsole.sh
- chmod +x /mnt/bin/tz.sh
- chmod +x /mnt/bin/time.sh
- chmod +x /mnt/bin/hostname.sh
- chmod +x /mnt/bin/net.sh
- chmod +x /mnt/bin/nm.sh
- chmod +x /mnt/bin/user.sh
- chmod +x /mnt/bin/x.sh
- chmod +x /mnt/bin/drivers.sh
- chmod +x /mnt/bin/de.sh
- chmod +x /mnt/bin/dm.sh
- chmod +x /mnt/bin/boot.sh
- chroot /mnt /bin/dns.sh
- chroot /mnt /bin/update.sh
- chroot /mnt /bin/locale.sh
- chroot /mnt /bin/vconsole.sh
- chroot /mnt /bin/tz.sh
- chroot /mnt /bin/time.sh
- chroot /mnt /bin/hostname.sh
- chroot /mnt /bin/net.sh
- chroot /mnt /bin/nm.sh
- chroot /mnt /bin/user.sh
- chroot /mnt /bin/x.sh
- chroot /mnt /bin/drivers.sh
- chroot /mnt /bin/de.sh
- chroot /mnt /bin/dm.sh
- chroot /mnt /bin/boot.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement