Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- loadkeys ru
- setfont cyr-sun16
- #Разметка диска
- echo 'echo "[Разметка диска]"
- echo "1) MBR"
- echo "2) GPT"
- echo
- printf "Выберите таблицу разделов: "
- read doing
- case $doing in
- 1)
- 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
- ;;
- 2)
- 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
- ;;
- esac
- done' > fgdisk.sh
- sh fgdisk.sh
- #Создание файловой системы
- echo 'clear
- 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
- # echo "Заметка: после перехода в chroot прервите установку, установите пакет "f2fs-tools", затем выполните "sh menu.sh" и продолжайте установку с соответствующего пункта"
- ;;
- 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
- read -p "Введите имя swap раздела: " swap
- mkswap /dev/$swap
- swapon /dev/$swap
- #Монтирование разделов
- echo 'clear
- 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 Установка базовой системы...
- pacstrap -i /mnt base base-devel
- genfstab -U -p /mnt >> /mnt/etc/fstab
- #DNS
- echo 'echo nameserver 8.8.8.8 > /etc/resolv.conf' > install2.sh
- #Обновление списка зеркал
- pacman -Syu
- #Locale
- 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' >> install2.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' >> install2.sh
- #Часовой пояс
- echo 'echo "Работа над конфигурацией часового пояса не завершена! Можно пока что пользоваться временным вариантом. Все зоны и субзоны можно найти в /usr/share/zoneinfo. Для этого переключитесь в tty2 и введите "cd /usr/share/zoneinfo" (без кавычек), а затем наберите ls для просмотра всех часовых поясов.
- echo
- read -p "Введите зону и субзону: " $zone $subzone
- ln -s /usr/share/zoneinfo/$zone/$subzone /etc/localtime' >> install2.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' >> install2.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' >> install2.sh
- #Имя компьютера
- echo
- read -p "Введите имя компьютера: " hostname
- echo $hostname > /etc/hostname
- #Сеть
- echo 'clear
- 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
- 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
- sh nm.sh
- ;;
- 2)
- pacman -S --noconfirm iw wpa_supplicant dialog
- echo
- ip link
- echo
- read -p "Выберите сетевой адаптер: " wlan
- wifi-menu $wlan
- ;;
- esac' >> install2.sh
- #Config
- echo 'echo
- echo "[Создание initramfs]"
- mkinitcpio -p linux
- 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' >> install2.sh
- #Xorg
- pacman -S xorg-server
- #Видеодрайверы
- echo 'clear
- 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)
- echo
- lspci -k | grep -A 2 -E "(VGA|3D)"
- echo
- 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' > drivers.sh
- sh drivers.sh
- ;;
- 4)
- pacman -S --noconfirm xf86-video-mesa
- ;;
- 5)
- pacman -S --noconfirm xf86-video-vmware
- ;;
- esac' >> install2.sh
- #Окружение рабочего стола
- echo "Пока только KDE-minimal..."
- echo
- pacman -S plasma-desktop sddm dolphin konsole
- systemctl enable sddm.service
- #Bootloader
- echo 'clear
- 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
- 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
- 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' >> install2.sh
- rm -rf install2.sh
- # Chroot
- mount -o bind /dev /mnt/dev
- mount -t proc none /mnt/proc
- mount -o bind /sys /mnt/sys
- cp install2.sh /mnt/bin
- chmod +x /mnt/bin/install2.sh
- chroot /mnt /bin/install2.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement