Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.10 KB | None | 0 0
  1. #!/bin/bash
  2. loadkeys ru
  3. setfont cyr-sun16
  4.  
  5. #Разметка диска
  6. echo 'echo "[Разметка диска]"
  7. echo "1) MBR"
  8. echo "2) GPT"
  9. echo
  10. printf "Выберите таблицу разделов: "
  11. read doing
  12. case $doing in
  13. 1)
  14. again=y
  15. while [ "$again" = "y" ]
  16. do
  17. echo
  18. echo "[Таблица разделов]"
  19. lsblk /dev/sd*
  20. echo
  21. read -p "Введите имя устройства, на котором будет создан раздел: " name
  22. read -p "Создать Основной (p) или Расширенный (e) раздел: " type
  23. read -p "Введите размер нового раздела: " size
  24. fdisk /dev/$name << EOF
  25. n
  26. $type
  27.  
  28.  
  29. $size
  30. w
  31. EOF
  32. echo
  33. printf "Создать еще один раздел? [y/n] "
  34. read again
  35. ;;
  36. 2)
  37. again=y
  38. while [ "$again" = "y" ]
  39. do
  40. echo
  41. echo "[Таблица разделов]"
  42. lsblk /dev/sd*
  43. echo
  44. read -p "Введите имя устройства, на котором будет создан раздел: " name
  45. read -p "Создать Основной (p) или Расширенный (e) раздел: " type
  46. read -p "Введите размер нового раздела: " size
  47. gdisk /dev/$name << EOF
  48. n
  49. $type
  50.  
  51.  
  52. $size
  53. w
  54. EOF
  55. echo
  56. printf "Создать еще один раздел? [y/n] "
  57. read again
  58. ;;
  59. esac
  60. done' > fgdisk.sh
  61. sh fgdisk.sh
  62.  
  63. #Создание файловой системы
  64. echo 'clear
  65. again=y
  66. while [ "$again" = "y" ]
  67. do
  68. echo
  69. echo "[Создание файловой системы]"
  70. echo "1) Файловая система f2fs"
  71. echo "2) Файловая система ext2"
  72. echo "3) Журналируемая файловая система ext3"
  73. echo "4) Журналируемая файловая система ext4"
  74. echo "5) Журналируемая файловая система btrfs"
  75. echo "6) Журналируемая файловая система JFS"
  76. echo "7) Журналируемая файловая система XFS"
  77. echo
  78. printf "Выберите файловую систему: "
  79. read doing
  80. case $doing in
  81. 1)
  82. echo
  83. lsblk /dev/sd*
  84. echo
  85. read -p "Введите имя раздела: " dev
  86. mkfs.f2fs /dev/$dev
  87. # echo "Заметка: после перехода в chroot прервите установку, установите пакет "f2fs-tools", затем выполните "sh menu.sh" и продолжайте установку с соответствующего пункта"
  88. ;;
  89. 2)
  90. echo
  91. lsblk /dev/sd*
  92. echo
  93. read -p "Введите имя раздела: " dev
  94. mkfs.ext2 /dev/$dev
  95. ;;
  96. 3)
  97. echo
  98. lsblk /dev/sd*
  99. echo
  100. read -p "Введите имя раздела: " dev
  101. mkfs.ext3 /dev/$dev
  102. ;;
  103. 4)
  104. echo
  105. lsblk /dev/sd*
  106. echo
  107. read -p "Введите имя раздела: " dev
  108. mkfs.ext4 /dev/$dev
  109. ;;
  110. 5)
  111. echo
  112. lsblk /dev/sd*
  113. echo
  114. read -p "Введите имя раздела: " dev
  115. mkfs.btrfs /dev/$dev
  116. ;;
  117. 6)
  118. echo
  119. lsblk /dev/sd*
  120. echo
  121. read -p "Введите имя раздела: " dev
  122. mkfs.jfs /dev/$dev
  123. ;;
  124. 7)
  125. echo
  126. lsblk /dev/sd*
  127. echo
  128. read -p "Введите имя раздела: " dev
  129. mkfs.xfs /dev/$dev
  130. ;;
  131. esac
  132. echo
  133. printf "Продолжить или перейти к следующему шагу? [y - продолжить/Enter - перейти к следующему шагу]: "
  134. read again
  135. done' > fs.sh
  136. sh fs.sh
  137.  
  138. #Swap
  139. echo
  140. read -p "Введите имя swap раздела: " swap
  141. mkswap /dev/$swap
  142. swapon /dev/$swap
  143.  
  144. #Монтирование разделов
  145. echo 'clear
  146. again=y
  147. while [ "$again" = "y" ]
  148. do
  149. echo
  150. echo "[Монтирование разделов]"
  151. echo "1) /"
  152. echo "2) /boot"
  153. echo "3) /home"
  154. echo "4) /tmp"
  155. echo "5) /usr"
  156. echo "6) /var"
  157. echo "7) /srv"
  158. echo "8) /opt"
  159. echo "9) /usr/local"
  160. echo
  161. printf "Выберите точку монтирования: "
  162. read doing
  163. case $doing in
  164. 1)
  165. echo
  166. lsblk /dev/sd*
  167. echo
  168. read -p "Введите имя раздела: " name
  169. mount /dev/$name /mnt
  170. ;;
  171. 2)
  172. echo
  173. lsblk /dev/sd*
  174. echo
  175. read -p "Введите имя раздела: " name
  176. mkdir /mnt/boot
  177. mount /dev/$name /mnt/boot
  178. ;;
  179. 3)
  180. echo
  181. lsblk /dev/sd*
  182. echo
  183. read -p "Введите имя раздела: " name
  184. mkdir /mnt/home
  185. mount /dev/$name /mnt/home
  186. ;;
  187. 4)
  188. echo
  189. lsblk /dev/sd*
  190. echo
  191. read -p "Введите имя раздела: " name
  192. mkdir /mnt/tmp
  193. mount /dev/$name /mnt/tmp
  194. ;;
  195. 5)
  196. echo
  197. lsblk /dev/sd*
  198. echo
  199. read -p "Введите имя раздела: " name
  200. mkdir /mnt/usr
  201. mount /dev/$name /mnt/usr
  202. ;;
  203. 6)
  204. echo
  205. lsblk /dev/sd*
  206. echo
  207. read -p "Введите имя раздела: " name
  208. mkdir /mnt/var
  209. mount /dev/$name /mnt/var
  210. ;;
  211. 7)
  212. echo
  213. lsblk /dev/sd*
  214. echo
  215. read -p "Введите имя раздела: " name
  216. mkdir /mnt/srv
  217. mount /dev/$name /mnt/srv
  218. ;;
  219. 8)
  220. echo
  221. lsblk /dev/sd*
  222. echo
  223. read -p "Введите имя раздела: " name
  224. mkdir /mnt/opt
  225. mount /dev/$name /mnt/opt
  226. ;;
  227. 9)
  228. echo
  229. lsblk /dev/sd*
  230. echo
  231. read -p "Введите имя раздела: " name
  232. mkdir /mnt/usr/local
  233. mount /dev/$name /mnt/usr/local
  234. ;;
  235. esac
  236. echo
  237. printf "Продолжить монтирование разделов? [y/n] "
  238. read again
  239. done' > mount.sh
  240. sh mount.sh
  241.  
  242. #Установка базовой системы
  243. echo
  244. echo Установка базовой системы...
  245. pacstrap -i /mnt base base-devel
  246. genfstab -U -p /mnt >> /mnt/etc/fstab
  247.  
  248. #DNS
  249. echo 'echo nameserver 8.8.8.8 > /etc/resolv.conf' > install2.sh
  250.  
  251. #Обновление списка зеркал
  252. pacman -Syu
  253.  
  254. #Locale
  255. echo 'nano /etc/locale.gen
  256. locale-gen
  257. echo
  258. read -p "Введите желаемую локаль (см. сгенерированные локали) [Прим: "ru_RU.UTF-8"]: " locale
  259. echo LANG=$locale > /etc/locale.conf
  260. read -p "Введите выбранную локаль для экспорта в текущий сеанс [Прим: "ru_RU.UTF-8"]: " locale
  261. export LANG=$locale' >> install2.sh
  262.  
  263. #Виртуальная консоль
  264. echo 'echo
  265. echo -n "Создать файл vconsole.conf? [y/n] "
  266. read item
  267. case "$item" in
  268. y|Y)
  269. echo KEYMAP= > /etc/vconsole.conf
  270. echo FONT= >> /etc/vconsole.conf
  271. nano /etc/vconsole.conf
  272. ;;
  273. n|N)
  274. exit 0
  275. ;;
  276. *)
  277. ;;
  278. esac' >> install2.sh
  279.  
  280. #Часовой пояс
  281. echo 'echo "Работа над конфигурацией часового пояса не завершена! Можно пока что пользоваться временным вариантом. Все зоны и субзоны можно найти в /usr/share/zoneinfo. Для этого переключитесь в tty2 и введите "cd /usr/share/zoneinfo" (без кавычек), а затем наберите ls для просмотра всех часовых поясов.
  282. echo
  283. read -p "Введите зону и субзону: " $zone $subzone
  284. ln -s /usr/share/zoneinfo/$zone/$subzone /etc/localtime' >> install2.sh
  285.  
  286. #Аппаратные часы
  287. echo 'echo "[Аппаратные часы]"
  288. echo "1) UTC"
  289. echo "2) Localtime"
  290. echo
  291. printf "Выберите загрузчик: "
  292. read doing
  293. case $doing in
  294. 1)
  295. hwclock --systohc --utc
  296. ;;
  297. 2)
  298. hwclock --systohc localtime
  299. ;;
  300. esac' >> install2.sh
  301.  
  302. #NTP
  303. echo 'echo
  304. echo -n "Установить NTP сервер? [y/n] "
  305. read item
  306. case "$item" in
  307. y|Y)
  308. pacman -S --noconfirm ntp
  309. systemctl enable ntpd.service
  310. ;;
  311. n|N)
  312. exit 0
  313. ;;
  314. *)
  315. ;;
  316. esac' >> install2.sh
  317.  
  318. #Имя компьютера
  319. echo
  320. read -p "Введите имя компьютера: " hostname
  321. echo $hostname > /etc/hostname
  322.  
  323. #Сеть
  324. echo 'clear
  325. echo "[Настройка сети]"
  326. echo "1) Проводное (динамическое)"
  327. echo "2) Беспроводное"
  328. echo
  329. printf "Выберите загрузчик: "
  330. read doing
  331. case $doing in
  332. 1)
  333. echo
  334. ip link
  335. echo
  336. read -p "Выберите сетевой адаптер: " eth
  337. systemctl enable dhcpcd@$eth.service
  338. echo 'echo
  339. echo -n "Установить Network Manager? [y/n] "
  340. read item
  341. case "$item" in
  342. y|Y)
  343. pacman -S --noconfirm networkmanager
  344. systemctl enable NetworkManager.service
  345. pacman -Rsnc netctl
  346. ;;
  347. n|N)
  348. exit 0
  349. ;;
  350. *)
  351. ;;
  352. esac' > nm.sh
  353. sh nm.sh
  354. ;;
  355. 2)
  356. pacman -S --noconfirm iw wpa_supplicant dialog
  357. echo
  358. ip link
  359. echo
  360. read -p "Выберите сетевой адаптер: " wlan
  361. wifi-menu $wlan
  362. ;;
  363. esac' >> install2.sh
  364.  
  365. #Config
  366. echo 'echo
  367. echo "[Создание initramfs]"
  368. mkinitcpio -p linux
  369. echo
  370. echo "[Пароль для учетной записи root]"
  371. passwd
  372. echo
  373. echo "[Создание нового пользователя]"
  374. read -p "Введите имя пользователя: " username
  375. useradd -m -g users -G wheel,audio -s /bin/bash $username
  376. echo
  377. echo "[Пароль для учетной записи $username]"
  378. passwd $username' >> install2.sh
  379.  
  380. #Xorg
  381. pacman -S xorg-server
  382.  
  383. #Видеодрайверы
  384. echo 'clear
  385. echo "[Видеодрайверы]"
  386. echo "1) Intel"
  387. echo "2) AMD (недоступно)"
  388. echo "3) Nvidia"
  389. echo "4) Virtualbox"
  390. echo "5) VMware Workstation"
  391. echo
  392. printf "Выберите видеоадаптер: "
  393. read doing
  394. case $doing in
  395. 1)
  396. pacman -S --noconfirm xf86-video-intel
  397. ;;
  398. 2)
  399. again=y
  400. while [ "$again" = "y" ]
  401. do
  402. echo
  403. echo "недоступно"
  404. echo
  405. printf "Продолжить установку? [y/n] "
  406. read again
  407. 3)
  408. echo
  409. lspci -k | grep -A 2 -E "(VGA|3D)"
  410. echo
  411. echo 'echo "1) Для самых новых видеокарт [Beta]"
  412. echo "2) GeForce 400 серии и новее [NVCx и новее]"
  413. echo "3) GeForce 400 серии и новее [NVCx и новее][lts]"
  414. echo "4) GeForce 8000/9000, ION и 100-300 серии [NV5x, NV8x, NV9x и NVAx]"
  415. echo "5) GeForce 8000/9000, ION и 100-300 серии [NV5x, NV8x, NV9x и NVAx][lts]"
  416. echo "6) GeForce 6000/7000 серии [NV4x и NV6x]"
  417. echo "7) GeForce 6000/7000 серии [NV4x и NV6x][lts]"
  418. echo "8) GeForce 5 FX серии [NV30-NV36] (поддерживается Xorg до версии 1.15)"
  419. echo "9) GeForce 2/3/4 MX/Ti серии [NV11, V17-NV28] (поддерживается Xorg до версии 1.12)"
  420. echo
  421. printf "Выберите подходящий драйвер для вашей видеокарты: "
  422. read doing
  423. case $doing in
  424. 1)
  425. pacman -S --noconfirm nvidia-beta
  426. ;;
  427. 2)
  428. pacman -S --noconfirm nvidia
  429. ;;
  430. 3)
  431. pacman -S --noconfirm nvidia-lts
  432. ;;
  433. 4)
  434. pacman -S --noconfirm nvidia-340xx
  435. ;;
  436. 5)
  437. pacman -S --noconfirm nvidia-340xx-lts
  438. ;;
  439. 6)
  440. pacman -S --noconfirm nvidia-304xx
  441. ;;
  442. 7)
  443. pacman -S --noconfirm nvidia-304xx-lts
  444. ;;
  445. 8)
  446. pacman -S --noconfirm nvidia-173xx-dkms
  447. ;;
  448. 9)
  449. pacman -S --noconfirm nvidia-96xx-dkms
  450. ;;
  451. esac' > drivers.sh
  452. sh drivers.sh
  453. ;;
  454. 4)
  455. pacman -S --noconfirm xf86-video-mesa
  456. ;;
  457. 5)
  458. pacman -S --noconfirm xf86-video-vmware
  459. ;;
  460. esac' >> install2.sh
  461.  
  462. #Окружение рабочего стола
  463. echo "Пока только KDE-minimal..."
  464. echo
  465. pacman -S plasma-desktop sddm dolphin konsole
  466. systemctl enable sddm.service
  467.  
  468. #Bootloader
  469. echo 'clear
  470. echo "[Установка загрузчика]"
  471. echo "1) Grub"
  472. echo "2) Syslinux"
  473. echo
  474. printf "Выберите загрузчик: "
  475. read doing
  476. case $doing in
  477. 1)
  478. pacman -S --noconfirm grub
  479. echo
  480. lsblk /dev/sd*
  481. echo
  482. read -p "Введите имя устройства, на которое будет установлен загрузчик: " grub
  483. grub-install --target=i386-pc --recheck /dev/$grub
  484. grub-mkconfig -o /boot/grub/grub.cfg
  485. echo 'echo
  486. echo -n "Установить os-prober? [y/n] "
  487. read item
  488. case "$item" in
  489. y|Y)
  490. pacman -S --noconfirm os-prober
  491. ;;
  492. n|N)
  493. exit 0
  494. ;;
  495. *)
  496. ;;
  497. esac' > os-prober.sh
  498. sh os-prober.sh
  499. ;;
  500. 2)
  501. pacman -S --noconfirm syslinux
  502. mkdir /boot/syslinux
  503. cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
  504. extlinux --install /boot/syslinux
  505. echo
  506. lsblk /dev/sd*
  507. echo
  508. read -p "Введите имя устройства, на которое будет установлен загрузочный код Syslinux: " syslinux
  509. dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/$syslinux
  510. ;;
  511. esac' >> install2.sh
  512. rm -rf install2.sh
  513.  
  514. # Chroot
  515. mount -o bind /dev /mnt/dev
  516. mount -t proc none /mnt/proc
  517. mount -o bind /sys /mnt/sys
  518. cp install2.sh /mnt/bin
  519. chmod +x /mnt/bin/install2.sh
  520. chroot /mnt /bin/install2.sh
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement