pastebin

Paste Search Dynamic
Recent pastes
arch-rus
  1. #!/bin/bash
  2. loadkeys ru
  3. setfont cyr-sun16
  4. clear
  5. echo "
  6.  
  7. Скрипт писал Порунцов Юрий
  8.  
  9. Порунцов Юрий https://vk.com/poruncov https://t.me/poruncov
  10.  
  11. UEFI или Legacy на выбор!
  12.  
  13. Важная информация!
  14. Вся разметка диска производиться только в cfdisk!
  15.  
  16. Не забудьте указать для
  17. UEFI
  18. type=EFI для boot раздела также указать
  19. type=linux для других разделов будущей системы ( root/swap(type=swap)/home раздела )
  20.  
  21. Legacy
  22. type=linux для других разделов будущей системы ( root/swap(type=swap)/home раздела )
  23.  
  24. De ---> на выбор KDE Lxde Xfce Gnome Lxqt Mate i3
  25. Dm ---> на выбор sddm lxdm gdm
  26. "
  27. #####
  28. echo " готовы приступить?  "
  29. while
  30.     read -n1 -p  "
  31.    1 - да
  32.    
  33.    0 - нет: " hello # sends right after the keypress
  34.     echo ''
  35.     [[ "$hello" =~ [^10] ]]
  36. do
  37.     :
  38. done
  39.  if [[ $hello == 1 ]]; then
  40.   clear
  41.   echo "Добро пожаловать в установку ArchLinux"
  42.   elif [[ $hello == 0 ]]; then
  43.    exit  
  44. fi
  45. ###
  46. echo ""
  47. echo "
  48. Данный этап поможет вам избежать проблем с ключами
  49.  
  50. Pacmаn, если используете не свежий образ ArchLinux для установки! "
  51.  
  52. echo ""
  53. echo " Обновим ключи?  "
  54. while
  55.     read -n1 -p  "
  56.    1 - да
  57.    
  58.    0 - нет: " x_key
  59.     echo ''
  60.     [[ "$x_key" =~ [^10] ]]
  61. do
  62.     :
  63. done
  64.  if [[ $x_key == 1 ]]; then
  65.   clear
  66.   pacman-key --refresh-keys
  67.   elif [[ $x_key == 0 ]]; then
  68.    echo " Обновление ключей пропущено "  
  69. fi
  70. ##
  71. ##
  72. clear
  73. echo " Здесь выбирайте то каким режимом запущен установочный образ ArchLinux"
  74. echo " Если вы загрузились в Uefi тогда "1" если legacy тогда "2" "
  75. echo " Режим legacy только для mbr-таблицы разделов, Uefi для Gpt- таблицы разделов"
  76. echo   ""
  77. echo "#################################################"
  78. echo "#########  Пример вывода efibootmbr    ##########"
  79. echo "####                                        #####"
  80. echo "####      Если вы видите похожий список     #####"
  81. echo "####     это означает что вы загрузились    #####"
  82. echo "####             в режиме !!!UEFI!!!        #####"        
  83. echo "####                                        #####"
  84. echo "####  BootOrder: 0003,0001,2001,2002,2003   #####"
  85. echo "####  Boot0000* USB HDD: Generic Flash Disk #####"
  86. echo "####  Boot0001* Windows Boot Manager        #####"
  87. echo "#################################################"
  88. echo ""
  89. echo "#################################################"
  90. echo "########  Пример вывода efibootmbr     ##########"
  91. echo "####                                         ####"
  92. echo "####     Eсли вы увидите сообщение           ####"      
  93. echo "####       такого содержания:                ####"
  94. echo "####       EFI variables are not             ####"       
  95. echo "####     supported on this system.           ####"
  96. echo "####                                         ####"
  97. echo "#### <<<  Значит у вас legacy    >>>         ####"  
  98. echo "#################################################"
  99. echo ""
  100. efibootmgr
  101. echo ""
  102. echo " UEFI( no grub ) или Grub-legcy? "
  103. while
  104.     read -n1 -p  "
  105.    1 - UEFI
  106.    
  107.    2 - GRUB-legacy
  108.    
  109.    0 - exit " menu # sends right after the keypress
  110.     echo ''
  111.     [[ "$menu" =~ [^120] ]]
  112. do
  113.     :
  114. done
  115. if [[ $menu == 1 ]]; then
  116. clear
  117.  
  118. pacman -Sy --noconfirm
  119. echo ""
  120. lsblk -f
  121. echo " Здесь вы можете удалить boot от старой системы, файлы Windows загрузчика не затрагиваются."
  122. echo " если вам необходимо полность очистить boot раздел, то пропустите этот этап далее установка предложит отформатировать boot раздел "
  123. echo " При установке дуал бут раздел не нужно форматировать!!! "
  124. echo ""
  125. echo 'удалим старый загрузчик linux'
  126. while
  127.     read -n1 -p  "
  128.    1 - удалим старый загрузчкик линукс
  129.    
  130.    0 -(пропустить) - данный этап можно пропустить если установка производиться первый раз или несколько OS  " boots
  131.     echo ''
  132.     [[ "$boots" =~ [^10] ]]
  133. do
  134.     :
  135. done
  136. if [[ $boots == 1 ]]; then
  137.   clear
  138.  lsblk -f
  139.   echo ""
  140. read -p "Укажите boot раздел (sda2/sdb2 ( например sda2 )):" bootd
  141. mount /dev/$bootd /mnt
  142. cd /mnt
  143. ls | grep -v EFI | xargs rm -rfv
  144. cd /mnt/EFI
  145. ls | grep -v Boot | grep -v Microsoft | xargs rm -rfv
  146. cd /root
  147. umount /mnt
  148.   elif [[ $boots == 0 ]]; then
  149.    echo " очистка boot раздела пропущена, далее вы сможете его отформатировать! "  
  150. fi
  151. #
  152. pacman -Sy --noconfirm
  153. ##############################
  154. clear
  155. echo ""
  156. echo " Выбирайте "1 ", если ранее не производилась разметка диска и у вас нет разделов для ArchLinux "
  157. echo ""
  158. echo 'Нужна разметка диска?'
  159. while
  160.     read -n1 -p  "
  161.    1 - да
  162.    
  163.    0 - нет: " cfdisk # sends right after the keypress
  164.     echo ''
  165.     [[ "$cfdisk" =~ [^10] ]]
  166. do
  167.     :
  168. done
  169.  if [[ $cfdisk == 1 ]]; then
  170.    clear
  171.  lsblk -f
  172.   echo ""
  173.   read -p "Укажите диск (sda/sdb например sda или sdb) : " cfd
  174. cfdisk /dev/$cfd
  175. echo ""
  176. clear
  177. elif [[ $cfdisk == 0 ]]; then
  178.    echo ""
  179.    clear
  180.    echo 'разметка пропущена.'  
  181. fi
  182. #
  183.   clear
  184.   lsblk -f
  185.   echo ""
  186.   read -p "Укажите ROOT раздел(sda/sdb 1.2.3.4 (sda5 например)):" root
  187. echo ""
  188. mkfs.ext4 /dev/$root -L root
  189. mount /dev/$root /mnt
  190. echo ""
  191. ########## boot  ########
  192.  clear
  193.  lsblk -f
  194.   echo ""
  195. echo 'форматируем BOOT?'
  196. while
  197.     read -n1 -p  "
  198.    1 - да
  199.    
  200.    0 - нет: " boots # sends right after the keypress
  201.     echo ''
  202.     [[ "$boots" =~ [^10] ]]
  203. do
  204.     :
  205. done
  206.  if [[ $boots == 1 ]]; then
  207.   read -p "Укажите BOOT раздел(sda/sdb 1.2.3.4 (sda7 например)):" bootd
  208.   mkfs.fat -F32 /dev/$bootd
  209.   mkdir /mnt/boot
  210.   mount /dev/$bootd /mnt/boot
  211.   elif [[ $boots == 0 ]]; then
  212.  read -p "Укажите BOOT раздел(sda/sdb 1.2.3.4 (sda7 например)):" bootd
  213.  mkdir /mnt/boot
  214. mount /dev/$bootd /mnt/boot
  215. fi
  216. ############ swap   ####################################################
  217.  clear
  218.  lsblk -f
  219.   echo ""
  220. echo 'добавим swap раздел?'
  221. while
  222.     read -n1 -p  "
  223.    1 - да
  224.    
  225.    0 - нет: " swap # sends right after the keypress
  226.     echo ''
  227.     [[ "$swap" =~ [^10] ]]
  228. do
  229.     :
  230. done
  231.  if [[ $swap == 1 ]]; then
  232.   read -p "Укажите swap раздел(sda/sdb 1.2.3.4 (sda7 например)):" swaps
  233.   mkswap /dev/$swaps -L swap
  234.   swapon /dev/$swaps
  235.   elif [[ $swap == 0 ]]; then
  236.    echo 'добавление swap раздела пропущено.'  
  237. fi
  238. ################  home     ############################################################
  239.  clear
  240.  lsblk -f
  241.   echo ""
  242. echo " Если у вас есть HOME раздел от предыдущей системы его можно не форматировать"
  243. echo " При указании пользователя укажите, то имя которое было ранее, тогда система сама восстановит home раздел "
  244. echo ""
  245. echo ' Форматируем HOME раздел?'
  246. while
  247.     read -n1 -p  "
  248.    1 - да
  249.    
  250.    0 - нет: " homeF # sends right after the keypress
  251.     echo ''
  252.     [[ "$homeF" =~ [^10] ]]
  253. do
  254.     :
  255. done
  256.    if [[ $homeF == 1 ]]; then
  257.    echo ""
  258.    read -p "Укажите HOME раздел(sda/sdb 1.2.3.4 (sda6 например)):" home
  259.    mkfs.ext4 /dev/$home -L home
  260.    elif [[ $homeF == 0 ]]; then
  261.    echo 'Форматирыване домашнего раздела пропущено.'  
  262. fi
  263. echo 'Добавим раздел  HOME ?'
  264. while
  265.     read -n1 -p  "
  266.    1 - да
  267.    
  268.    0 - нет: " homes # sends right after the keypress
  269.     echo ''
  270.     [[ "$homes" =~ [^10] ]]
  271. do
  272.     :
  273. done
  274.    if [[ $homes == 0 ]]; then
  275.      echo 'пропущено'
  276.   elif [[ $homes == 1 ]]; then
  277.     read -p "Укажите HOME раздел(sda/sdb 1.2.3.4 (sda6 например)):" home
  278.     mkdir /mnt/home
  279.     mount /dev/$home /mnt/home
  280.   fi
  281. ###################  раздел  ###############################################################
  282.  clear
  283. echo 'Добавим разделы  Windows (ntfs/fat32)?'
  284. while
  285.     read -n1 -p  "
  286.    1 - да
  287.    
  288.    0 - нет: " wind # sends right after the keypress
  289.     echo ''
  290.     [[ "$wind" =~ [^10] ]]
  291. do
  292.     :
  293. done
  294. if [[ $wind == 0 ]]; then
  295.   echo 'пропущено'
  296.   elif [[ $wind == 1 ]]; then
  297.   echo "#####################################################################################"
  298. echo ""
  299.   echo 'Добавим раздел диск "C" Windows?'
  300. while
  301.     read -n1 -p  "
  302.    1 - да
  303.    
  304.    0 - нет: " diskC # sends right after the keypress
  305.     echo ''
  306.     [[ "$diskC" =~ [^10] ]]
  307. do
  308.     :
  309. done
  310. if [[ $diskC == 0 ]]; then
  311.   echo 'пропущено'
  312.   elif [[ $diskC == 1 ]]; then
  313.    clear
  314.  lsblk -f
  315.   echo ""
  316.   read -p " Укажите диск "C" раздел(sda/sdb 1.2.3.4 (sda4 например) ) : " diskCc
  317.   mkdir /mnt/C
  318.   mount /dev/$diskCc /mnt/C
  319.   fi
  320. ############### disk D ##############
  321. echo 'Добавим раздел диск "D" Windows?'
  322. while
  323.     read -n1 -p  "
  324.    1 - да
  325.    
  326.    0 - нет: " diskD # sends right after the keypress
  327.     echo ''
  328.     [[ "$diskD" =~ [^10] ]]
  329. do
  330.     :
  331. done
  332. if [[ $diskD == 1 ]]; then
  333.  clear
  334.  lsblk -f
  335.   echo ""
  336.   read -p " Укажите диск "D" раздел(sda/sdb 1.2.3.4 (sda5 например)) : " diskDd
  337.   mkdir /mnt/D
  338.   mount /dev/$diskDd /mnt/D
  339.   elif [[ $diskD == 0 ]]; then
  340.   echo 'пропущено'
  341.   fi
  342. ###### disk E ########
  343. echo 'Добавим раздел диск "E" Windows?'
  344. while
  345.     read -n1 -p  "
  346.    1 - да
  347.    
  348.    0 - нет: " diskE  # sends right after the keypress
  349.     echo ''
  350.     [[ "$diskE" =~ [^10] ]]
  351. do
  352.     :
  353. done
  354.  if [[ $diskE == 1 ]]; then
  355.   clear
  356.  lsblk -f
  357.   echo ""
  358.   read -p " Укажите диск "E" раздел(sda/sdb 1.2.3.4 (sda5 например)) : " diskDe
  359.   mkdir /mnt/E
  360.   mount /dev/$diskDe /mnt/E
  361.   elif [[ $diskE == 0 ]]; then
  362.   echo 'пропущено'
  363.   fi
  364.   fi
  365.  
  366. echo '3.1 Выбор зеркал для загрузки. Ставим зеркало от Яндекс'
  367. echo "Server = http://mirror.yandex.ru/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
  368.  
  369. echo '3.2 Установка основных пакетов'
  370. pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd netctl
  371.  
  372. echo '3.3 Настройка системы'
  373. genfstab -pU /mnt >> /mnt/etc/fstab
  374.  
  375. read -p "Введите имя компьютера: " hostname
  376. read -p "Введите имя пользователя: " username
  377.  
  378. echo 'Прописываем имя компьютера'
  379. echo $hostname > /etc/hostname
  380. ln -svf /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime
  381.  
  382. echo '3.4 Добавляем русскую локаль системы'
  383. echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
  384. echo "ru_RU.UTF-8 UTF-8" >> /etc/locale.gen
  385.  
  386. echo 'Обновим текущую локаль системы'
  387. locale-gen
  388.  
  389. echo 'Указываем язык системы'
  390. echo 'LANG="ru_RU.UTF-8"' > /etc/locale.conf
  391.  
  392. echo 'Вписываем KEYMAP=ru FONT=cyr-sun16'
  393. echo 'KEYMAP=ru' >> /etc/vconsole.conf
  394. echo 'FONT=cyr-sun16' >> /etc/vconsole.conf
  395.  
  396. echo 'Создадим загрузочный RAM диск'
  397. mkinitcpio -p linux
  398.  
  399. echo '3.5 Устанавливаем загрузчик'
  400. pacman -Syy
  401. pacman -S grub --noconfirm
  402. grub-install /dev/sda
  403.  
  404. echo 'Обновляем grub.cfg'
  405. grub-mkconfig -o /boot/grub/grub.cfg
  406.  
  407. echo 'Ставим программу для Wi-fi'
  408. pacman -S dialog wpa_supplicant --noconfirm
  409.  
  410. echo 'Добавляем пользователя'
  411. useradd -m -g users -G wheel -s /bin/bash $username
  412.  
  413. echo 'Создаем root пароль'
  414. passwd
  415.  
  416. echo 'Устанавливаем пароль пользователя'
  417. passwd $username
  418.  
  419. echo 'Устанавливаем SUDO'
  420. echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers
  421.  
  422. echo 'Раскомментируем репозиторий multilib Для работы 32-битных приложений в 64-битной системе.'
  423. echo '[multilib]' >> /etc/pacman.conf
  424. echo 'Include = /etc/pacman.d/mirrorlist' >> /etc/pacman.conf
  425. pacman -Syy
  426.  
  427. echo "Куда устанавливем Arch Linux на виртуальную машину?"
  428. read -p "1 - Да, 0 - Нет: " vm_setting
  429. if [[ $vm_setting == 0 ]]; then
  430.   gui_install="xorg-server xorg-drivers xorg-xinit"
  431. elif [[ $vm_setting == 1 ]]; then
  432.   gui_install="xorg-server xorg-drivers xorg-xinit virtualbox-guest-utils"
  433. fi
  434.  
  435. echo 'Ставим иксы и драйвера'
  436. pacman -S $gui_install
  437.  
  438. echo "Какое DE ставим?"
  439. read -p "1 - XFCE, 2 - KDE, 3 - Openbox: " vm_setting
  440. if [[ $vm_setting == 1 ]]; then
  441.   pacman -S xfce4 xfce4-goodies --noconfirm
  442. elif [[ $vm_setting == 2 ]]; then
  443.   pacman -Sy plasma-meta kdebase --noconfirm
  444. elif [[ $vm_setting == 3 ]]; then  
  445.   pacman -S  openbox xfce4-terminal
  446. fi
  447.  
  448. echo 'Cтавим DM'
  449. pacman -S sddm --noconfirm
  450. systemctl enable sddm.service -f
  451.  
  452. echo 'Ставим шрифты'
  453. pacman -S ttf-liberation ttf-dejavu --noconfirm
  454.  
  455. echo 'Ставим сеть'
  456. pacman -S networkmanager network-manager-applet ppp --noconfirm
  457.  
  458. echo 'Подключаем автозагрузку менеджера входа и интернет'
  459. systemctl enable NetworkManager
Parsed in 0.123 seconds