forked from leoarch/arch-install
-
Notifications
You must be signed in to change notification settings - Fork 0
/
arch.sh
227 lines (164 loc) · 5.7 KB
/
arch.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
#!/bin/bash
tput reset
__Y=$(echo -e "\e[33;1m");__A=$(echo -e "\e[36;1m");__R=$(echo -e "\e[31;1m");__O=$(echo -e "\e[m");
cat <<EOL
====================================================
${__Y}INSTALADOR ARCH LINUX${__O}
====================================================
==> Autor: leo.arch <leo.arch@bol.com.br>
==> Script: arch.sh v1.0
==> Descrição: Instalador Automático Arch Linux
${__Y}INFORMAÇÔES${__O}
Nesse script será necessário você escolher sua par-
tição Swap, Root e Home (Swap/Home não obrigatórias)
Utilizaremos o particionador CFDISK
Código das Partições para quem quiser usar GDISK:
==> EF02 BIOS
==> EF00 EFI
==> 8200 SWAP
==> 8304 /
==> 8302 /home
====================================================
${__Y}CONTINUAR COM A INSTALAÇÃO?${__O}
Digite s/S para continuar ou n/N para cancelar
DESEJA REALMENTE INICIAR A INSTALAÇÃO ? ${__Y}[S/n]${__O}
====================================================
EOL
setterm -cursor off
# cores
_n="\e[36;1m";_w="\e[37;1m";_g="\e[32;1m";_am="\e[33;1m";_o="\e[m";_r="\e[31;1m";
echo -ne "\n "
read -n 1 INSTALAR
tput reset
if [[ "$INSTALAR" != @(S|s) ]]; then
exit $?
fi
echo
lsblk -l | grep disk # comando para listar os discos
echo -en "\n${_g} Logo acima estão listados os seus discos${_o}\n"
echo -en "\n${_g} Informe o nome do seu disco${_o} (Ex: ${_r}sda${_o}):${_w} "
read _hd
_hd="/dev/${_hd}"
export _hd
echo
cfdisk $_hd # entrando no particionador cfdisk
if [ $? -eq 0 ]; then
echo
else
echo -e "\n${_r} ATENÇÃO:${_o} Disco ${_am}$_hd${_o} não existe! Execute novamente o script e insira o número corretamente\n"; exit 1
fi
tput reset
setterm -cursor off
echo -e "\n${_n} OK, você definiu as partições, caso deseje cancelar, precione${_w}: Ctrl+c"
echo -e "\n${_n} Use os número das partições nas perguntas abaixo${_w}\n"
echo "==========================================================="
fdisk -l $_hd
echo "==========================================================="
echo -e "\n${_n} CONSULTE ACIMA O NÚMERO DAS SUAS PARTIÇÕES${_o}"
echo -en "\n${_g} Modo de instalação EFI?${_o} (Digite o NÚMERO, ex: ${_r}1${_o} para sda1) ou tecle ${_am}ENTER${_o} caso não tenha:${_w} "
read _efi
if [ -n "$_efi" ]; then
_efi="/dev/sda${_efi}"
export _efi
fi
echo -en "\n${_g} Caso tenha partição SWAP${_o} (Digite o NÚMERO, ex: ${_r}2${_o} para sda2) ou tecle ${_am}ENTER${_o} caso não tenha:${_w} "
read _swap
if [ -n "$_swap" ]; then
_swap="/dev/sda${_swap}"
export _swap
fi
echo -en "\n${_g} Informe o NÚMERO da partição ROOT${_o} (Digite o NÚMERO, ex: ${_r}3${_o} para sda3):${_w} "
read _root
if [ "$_root" == "" ]; then
cat <<STI
${__R}=====================================
Atenção: Partição ROOT é obrigatória!
=====================================${__O}
STI
echo -en "${_am} Execute novamente o script e crie a partição Root.${_o}\n\n"; exit 1;
else
_root="/dev/sda${_root}"
export _root
fi
echo -en "\n${_g} Caso tenha partição HOME${_o} (Digite o NÚMERO, ex: ${_r}4${_o} para sda4) ou tecle ${_am}ENTER${_o} caso não tenha:${_w} "
read _home
if [ -n "$_home" ]; then
_home="/dev/sda${_home}"
export _home
fi
tput reset
cat <<STI
${__A}======================
Iniciando a Instalação
======================${__O}
STI
echo -e " Suas partições definidas foram:\n"
if [ "$_efi" != "" ]; then
echo -e " ${_g}EFI${_o} = $_efi"
else
echo -e " ${_g}EFI${_o} = SEM EFI"
fi
if [ "$_swap" != "" ]; then
echo -e " ${_g}Swap${_o} = $_swap"
else
echo -e " ${_g}Swap${_o} = SEM SWAP"
fi
echo -e " ${_g}Root${_o} = $_root"
if [ "$_home" != "" ]; then
echo -e " ${_g}Home${_o} = $_home\n"
else
echo -e " ${_g}Home${_o} = SEM HOME\n"
fi
echo "==========================================================="
fdisk -l $_hd
echo "==========================================================="
echo -ne "\n Verifique se as informações estão corretas comparando com os dados acima.\n"
echo -ne "\n Se tudo estiver certo, Digite ${_g}s/S${_o} para continuar ou ${_g}n/N${_o} para cancelar: "
read -n 1 comecar
if [[ "$comecar" != @(S|s) ]]; then
exit $?
fi
echo -e "\n\n ${_n}Continuando com a instalação ...${_o}\n"
# swap
if [ "$_swap" != "" ]; then
echo -e "${_g}===> Criando e ligando Swap${_o}"
mkswap $_swap && swapon $_swap
fi
# root
echo -e "\n${_g}===> Formatando e Montando Root${_o}"
mkfs.ext4 -F $_root && mount $_root /mnt
# home
if [ "$_home" != "" ]; then
echo -e "\n${_g}===> Formatando, Criando e Montando Home${_o}"
mkfs.ext4 -F $_home && mkdir /mnt/home && mount $_home /mnt/home
fi
# efi
if [ "$_efi" != "" ]; then
echo -e "${_g}Formatando, Criando e Montando EFI${_o}"
mkfs.fat -F32 $_efi && mkdir /mnt/boot && mount $_efi /mnt/boot
fi
# set morrorlist br (opcional)
# echo -e "${_g}===> Setando mirrorlist BR${_o}"
# wget "https://raw.githubusercontent.com/leoarch/arch-install/master/mirror-br" -O /etc/pacman.d/mirrorlist 2>/dev/null
# instalando base e base-devel
echo -e "${_g}===> Instalando base/base-devel${_o}"
# pacstrap /mnt base base-devel
pacstrap /mnt base base-devel linux linux-firmware
# gerando fstab
echo -e "${_g}===> Gerando FSTAB${_o}"
genfstab -U -p /mnt >> /mnt/etc/fstab
# download script mode chroot
echo -e "${_g}===> Baixando script para ser executado como chroot ...${_o}"
wget https://raw.githubusercontent.com/leoarch/arch-install/master/chroot.sh && chmod +x chroot.sh && mv chroot.sh /mnt
# run script
echo -e "${_g}===> Executando script ...${_o}"
arch-chroot /mnt ./chroot.sh
# umount
echo -e "${_g}===> Desmontando partições${_o}"
umount -R /mnt
cat <<EOI
${__A}=============
FIM!
=============${__O}
EOI
exit