SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/bin/bash | |
| 2 | - | #autoinstall.sh (v1.0) |
| 2 | + | #autoinstall.sh (v1.1) |
| 3 | LOGO() {
| |
| 4 | clear && echo -e "\e[1;32m | |
| 5 | - | clear && echo -e "\e[1;32m |
| 5 | + | |
| 6 | # # # # # # # # # # # # # # # # # # # # # # # # # | |
| 7 | # # ## # # # # # # # ### # # # # # # # # # # ### # # | |
| 8 | # # # # # # # # # # # # # # # # # # # # # # # # # # | |
| 9 | ## ### # # # # # # # ### # # ### # # ## # # # ### ### \n | |
| 10 | - | ## ### # # # # # # # ### # # ### # # ## # # # ### ### |
| 10 | + | [By DaRkaHT] \n\e[0m" |
| 11 | } | |
| 12 | - | [By DaRkaHT] |
| 12 | + | |
| 13 | - | \e[0m" |
| 13 | + | |
| 14 | ############# | |
| 15 | barra_progreso() {
| |
| 16 | PROGRESO=`expr $1 / 2` | |
| 17 | ESPACIO=`expr 100 - $1` | |
| 18 | ESPACIO_REAL=`expr $ESPACIO / 2` | |
| 19 | echo -n "[" #Principio de la barra. | |
| 20 | for aa in `seq 1 $PROGRESO`; do | |
| 21 | echo -n "=" #Progreso con símbolo "=". | |
| 22 | done | |
| 23 | echo -n ">" #Punta de la barra. | |
| 24 | for bb in `seq 1 $ESPACIO_REAL`; do | |
| 25 | echo -n " " #Zona en blanco hasta llegar a 100%. | |
| 26 | done | |
| 27 | echo -ne "] $1% \n \n" #Final de la barra y porcentaje de progreso. | |
| 28 | } | |
| 29 | - | echo -e "$1, tendrá que solucionarlo manualmente desde otro entorno chroot. |
| 29 | + | |
| 30 | funcion_ERROR() {
| |
| 31 | - | 1. Continuar, se ha solventado el error manualmente. |
| 31 | + | |
| 32 | - | 2. Abortar instalacion.\n" |
| 32 | + | |
| 33 | - | read opc_error |
| 33 | + | |
| 34 | then | |
| 35 | - | case $opc_error in |
| 35 | + | |
| 36 | - | 1) echo "Continuando con la instalación del sistema..." |
| 36 | + | |
| 37 | - | ;; |
| 37 | + | |
| 38 | - | 2) echo "Abortando instalación" && exit |
| 38 | + | echo -e "$1, tendrá que solucionarlo manualmente." |
| 39 | - | ;; |
| 39 | + | echo "1) Continuar, se ha solventado el error manualmente." |
| 40 | - | *) echo "Opcion invalida" |
| 40 | + | echo "2) Abortar instalación." |
| 41 | - | ;; |
| 41 | + | read opc_error |
| 42 | while : | |
| 43 | do | |
| 44 | case $opc_error in | |
| 45 | 1) echo -e "\n Continuando con la instalación del sistema..." && break ;; | |
| 46 | 2) echo -e "\n Abortando instalación..." && exit ;; | |
| 47 | *) echo "Opción inválida." | |
| 48 | read opc_error | |
| 49 | esac | |
| 50 | done | |
| 51 | fi | |
| 52 | } | |
| 53 | ||
| 54 | funcion_COPIAR() {
| |
| 55 | cp -Rf $1 $2 | |
| 56 | funcion_ERROR "Error: No se ha podido copiar fichero $1" | |
| 57 | } | |
| 58 | ||
| 59 | - | funcion_ERROR "Error: No se pudo añadir $1 al inicio." |
| 59 | + | |
| 60 | nice -n -20 emerge $1 --quiet | |
| 61 | funcion_ERROR "Error: No se pudo instalar $1" | |
| 62 | } | |
| 63 | ||
| 64 | - | funcion_ERROR "Error: No se ha podido añadir usuario $1 a la lista de usuarios con permiso de $2." |
| 64 | + | |
| 65 | rc-update add $1 $2 | |
| 66 | funcion_ERROR "Error: No se pudo añadir $1 al inicio" | |
| 67 | } | |
| 68 | - | ##################### (Módulos necesarios |
| 68 | + | |
| 69 | - | # CARGANDO MÓDULOS # para el livecd) |
| 69 | + | |
| 70 | gpasswd -a $1 $2 | |
| 71 | - | rmmod broadcom |
| 71 | + | funcion_ERROR "Error: No se ha podido añadir usuario $1 a la lista de usuarios con permiso de $2" |
| 72 | - | rmmod tg3 |
| 72 | + | |
| 73 | ||
| 74 | verif_conex() {
| |
| 75 | ping -c2 google.es | |
| 76 | funcion_ERROR "Error: Falló la conexión a internet" | |
| 77 | } | |
| 78 | ||
| 79 | install() {
| |
| 80 | ##################### Módulos necesarios para el correcto funcionamiento del livecd. | |
| 81 | - | while [[ -z $interfaz ]] |
| 81 | + | # CARGANDO MÓDULOS # Cada usuario debe cargar los necesarios para su hardware. |
| 82 | ##################### | |
| 83 | modprobe broadcom | |
| 84 | - | echo -e "Iniciando instalación... |
| 84 | + | |
| 85 | update-modules | |
| 86 | - | (0%) [> ]\n" |
| 86 | + | |
| 87 | ####################### | |
| 88 | - | echo -e "¿Con qué interfaz desea conectarse a la red? |
| 88 | + | |
| 89 | ####################### | |
| 90 | - | 1.eth0 |
| 90 | + | |
| 91 | - | 2.wlan0 (Solo redes con seguridad WEP) |
| 91 | + | echo -e "Iniciando instalación...\n" |
| 92 | - | 3.Otra interfaz |
| 92 | + | barra_progreso 0 |
| 93 | - | 4.Instalación offline \n" |
| 93 | + | echo -e "¿Con que interfaz desea conectarse a la red? \n" |
| 94 | - | read menu_conexion |
| 94 | + | |
| 95 | SELEC_INTERFAZ=`ifconfig -a | grep -v "lo" | grep -v "sit*" | cut -d" " -f1 | cut -d":" -f1` | |
| 96 | - | case $menu_conexion in |
| 96 | + | select opt in $SELEC_INTERFAZ |
| 97 | - | 1) interfaz=eth0 |
| 97 | + | |
| 98 | - | ifconfig eth0 up |
| 98 | + | if [[ -z $opt ]] |
| 99 | - | dhcpcd -k eth0 |
| 99 | + | |
| 100 | - | dhcpcd eth0 |
| 100 | + | echo -e "Opción inválida. Seleccióne una de las opciónes disponibles en la lista. \n" |
| 101 | - | ;; |
| 101 | + | else |
| 102 | - | 2) echo -e "Introduzca nombre de la red: \n" |
| 102 | + | interfaz=$opt |
| 103 | - | read nombre_red |
| 103 | + | break |
| 104 | fi | |
| 105 | - | if [[ -z $nombre_red ]] |
| 105 | + | |
| 106 | ||
| 107 | - | echo -e "Error: No ha introducido un nombre de red válido. \n" |
| 107 | + | ifconfig $interfaz up |
| 108 | dhcpcd -k $interfaz --quiet | |
| 109 | ||
| 110 | - | echo -e "Introduzca clave de acceso para la red (Solo redes WEP): \n" |
| 110 | + | if [[ $interfaz = wlan* ]] |
| 111 | - | read clave_red |
| 111 | + | |
| 112 | echo | |
| 113 | - | if [[ -z $clave_red ]] |
| 113 | + | echo -e "Detectada interfaz de red inalámbrica, escaneando redes wireless... \n" |
| 114 | echo -e "ATENCIÓN: Si desea conectarse inalámbricamente, solo podrá conectar a redes con seguridad WEP. \n" | |
| 115 | - | echo -e "Error: No ha introducido una clave válida para la red. \n" |
| 115 | + | SCAN_WIFI=`iwlist $interfaz scanning | grep "ESSID" | cut -d":" -f2` |
| 116 | if [[ -z SCAN_WIFI ]] | |
| 117 | then | |
| 118 | - | interfaz=wlan0 |
| 118 | + | echo -e "No se han encontrado redes wireless disponibles, presione INTRO para continuar...\n" |
| 119 | - | dhcpcd -k wlan0 |
| 119 | + | |
| 120 | - | ifconfig wlan0 up |
| 120 | + | else |
| 121 | - | iwconfig wlan0 essid "$nombre_red" key "s:$clave_red" && dhcpcd wlan0 |
| 121 | + | select opt in $SCAN_WIFI |
| 122 | - | ;; |
| 122 | + | |
| 123 | - | 3) while [[ -z $interfaz ]] |
| 123 | + | if [[ -z $opt ]] |
| 124 | then | |
| 125 | echo -e "Opción inválida. Seleccióne una de las opciónes disponibles en la lista. \n" | |
| 126 | - | echo -e "¿Se trata de una interfaz inalámbrica? \n" |
| 126 | + | else |
| 127 | - | echo "1.Si" |
| 127 | + | ESSID=$opt |
| 128 | - | echo -e "2.No \n" |
| 128 | + | while [[ -z $clave_red ]] |
| 129 | - | read menu_conexion |
| 129 | + | do |
| 130 | - | case $menu_conexion in |
| 130 | + | echo |
| 131 | - | 1) echo |
| 131 | + | echo "Introduzca contraseña para red $opt" |
| 132 | - | echo -e "Introduzca nombre de la interfaz: \n" |
| 132 | + | read clave_red |
| 133 | - | read interfaz |
| 133 | + | done |
| 134 | - | dhcpcd -k wlan0 |
| 134 | + | iwconfig $interfaz essid "$ESSID" key "s:$clave_red" |
| 135 | - | ifconfig $interfaz up |
| 135 | + | |
| 136 | - | iwconfig $interfaz essid "$nombre_red" key "s:$clave_red" && dhcpcd $interfaz |
| 136 | + | |
| 137 | - | ;; |
| 137 | + | |
| 138 | - | 2) echo -e "Introduzca nombre de la interfaz: \n" |
| 138 | + | |
| 139 | - | read interfaz |
| 139 | + | |
| 140 | - | dhcpcd -k $interfaz |
| 140 | + | dhcpcd $interfaz |
| 141 | - | dhcpcd $interfaz |
| 141 | + | verif_conex #Verificando conexión. |
| 142 | - | ;; |
| 142 | + | |
| 143 | - | *) echo "Opcion invalida."; |
| 143 | + | |
| 144 | - | echo "Presiona ENTER para continuar..."; |
| 144 | + | |
| 145 | - | read foo |
| 145 | + | |
| 146 | - | ;; |
| 146 | + | |
| 147 | ######################## | |
| 148 | # SELECCIONANDO KEYMAP # | |
| 149 | - | ;; |
| 149 | + | |
| 150 | - | 4) dhcpcd -k |
| 150 | + | |
| 151 | - | interfaz=offline |
| 151 | + | |
| 152 | - | ;; |
| 152 | + | ################################ |
| 153 | - | *) echo "Opcion invalida."; |
| 153 | + | # DISCO Y TABLA DE PARTICIONES # |
| 154 | - | echo "Presiona ENTER para continuar..."; |
| 154 | + | ################################ |
| 155 | - | read foo |
| 155 | + | form_DISCO_PARTS() {
|
| 156 | - | esac |
| 156 | + | unset disco fin_sys #fin_boot |
| 157 | while [[ -z $disco ]] | |
| 158 | do | |
| 159 | LOGO | |
| 160 | echo -e "Especifique en que disco desea instalar el sistema: \n" | |
| 161 | SELEC_HD=`fdisk -l 2> /dev/null | grep -v identifier | grep "Disk" | cut -d"/" -f3 | cut -d":" -f1` | |
| 162 | select opt in $SELEC_HD | |
| 163 | do | |
| 164 | if [[ -z $opt ]] | |
| 165 | then | |
| 166 | echo -e "Opción inválida. Seleccióne una de las opciónes disponibles en la lista. \n" | |
| 167 | else | |
| 168 | - | # TABLA DE PARTICIONES # |
| 168 | + | disco=$opt |
| 169 | break | |
| 170 | fi | |
| 171 | - | echo -e "Especifique en que disco desea instalar DaRkOS. Ejemplos: sda, sdb, hda, hdb..: \n" |
| 171 | + | |
| 172 | - | read disco |
| 172 | + | done |
| 173 | - | if [[ -z $disco ]] |
| 173 | + | |
| 174 | LOGO | |
| 175 | - | echo -e "No ha introducido un nombre que designe un disco valido, por favor hagalo ahora: \n" |
| 175 | + | echo -e "¿Desea iniciar el asistente de particionamiento del disco ($disco)? \n 1) Si, particionar disco. \n 2) No, el disco está correctamente particionado." |
| 176 | - | read disco |
| 176 | + | read menu_part |
| 177 | case $menu_part in | |
| 178 | 1) while [[ -z $fin_boot ]] | |
| 179 | - | form_INFO_PARTS() {
|
| 179 | + | |
| 180 | - | ini_boot=1 |
| 180 | + | ini_boot=1 |
| 181 | #echo | |
| 182 | - | #echo -e "¿Tamaño particion BOOT (en MB)? \n" |
| 182 | + | #echo "¿Tamaño partición BOOT (en MB)?" |
| 183 | - | #read fin_boot |
| 183 | + | #read fin_boot |
| 184 | - | fin_boot=40 |
| 184 | + | fin_boot=40 |
| 185 | - | fin_boot_MB=`echo -n "+$fin_boot"; echo "M"` |
| 185 | + | fin_boot_MB=`echo -n "+$fin_boot"; echo "M"` |
| 186 | - | ini_sys=" " |
| 186 | + | |
| 187 | - | #echo |
| 187 | + | |
| 188 | - | echo -e "¿Tamaño particion de sistema (en MB)? \n" |
| 188 | + | while [[ -z $fin_sys ]] |
| 189 | - | read fin_sys |
| 189 | + | |
| 190 | - | fin_sys_MB=`echo -n "+$fin_sys"; echo "M"` |
| 190 | + | ini_sys=" " |
| 191 | - | ini_swap=" " |
| 191 | + | |
| 192 | echo "¿Tamaño partición de sistema (en MB)?" | |
| 193 | - | echo -e "¿Tamaño particion SWAP (en MB)? \n" |
| 193 | + | read fin_sys |
| 194 | - | read fin_swap |
| 194 | + | fin_sys_MB=`echo -n "+$fin_sys"; echo "M"` |
| 195 | - | fin_swap_MB=`echo -n "+$fin_swap"; echo "M"` |
| 195 | + | |
| 196 | ||
| 197 | ini_swap=" " | |
| 198 | echo | |
| 199 | - | echo -e "¿Desea iniciar el asistente de particionamiento? |
| 199 | + | echo "¿Tamaño partición SWAP (en MB)?" |
| 200 | read fin_swap | |
| 201 | - | 1. Si, particionar disco. |
| 201 | + | fin_swap_MB=`echo -n "+$fin_swap"; echo "M"` ;; |
| 202 | - | 2. No, el disco esta correctamente particionado.\n" |
| 202 | + | |
| 203 | - | read opc_part |
| 203 | + | 2) particionado=no ;; |
| 204 | *) echo "Opcion inválida, presione ENTER para continuar..." | |
| 205 | - | case $opc_part in |
| 205 | + | read |
| 206 | esac | |
| 207 | - | 1) form_INFO_PARTS #Llamando a la función. |
| 207 | + | |
| 208 | - | ;; |
| 208 | + | form_DISCO_PARTS #Invocando a la función. |
| 209 | - | 2) particionado=no |
| 209 | + | |
| 210 | - | ;; |
| 210 | + | |
| 211 | - | *) echo "Opcion invalida" |
| 211 | + | |
| 212 | - | ;; |
| 212 | + | |
| 213 | - | esac |
| 213 | + | |
| 214 | unset hostname | |
| 215 | LOGO | |
| 216 | while [[ -z $hostname ]] | |
| 217 | do | |
| 218 | echo "Introduzca el nombre que se le asignara al equipo (HostName):" | |
| 219 | read hostname | |
| 220 | - | echo -e "Introduzca el nombre que se le asignara al equipo (HostName):\n" |
| 220 | + | done |
| 221 | - | read hostname |
| 221 | + | |
| 222 | - | if [[ -z $hostname ]] |
| 222 | + | form_CONF_HOSTNAME #Invocando a la función. |
| 223 | ||
| 224 | - | echo -e "No ha introducido un hostname valido, por favor hagalo ahora:\n" |
| 224 | + | |
| 225 | # CONFIGURACIÓN DE USUARIOS Y CONTRASEÑAS # | |
| 226 | ########################################### | |
| 227 | ||
| 228 | - | form_CONF_HOSTNAME #Llamando a la función. |
| 228 | + | |
| 229 | # ROOT # | |
| 230 | ######## | |
| 231 | form_PASS_ROOT() {
| |
| 232 | unset pass_root conf_pass_root | |
| 233 | while [[ -z $pass_root || -z $conf_pass_root ]] || [[ -z $pass_root && -z $conf_pass_root ]] || [[ $pass_root != $conf_pass_root ]] | |
| 234 | do | |
| 235 | LOGO | |
| 236 | echo "Por favor, introduzca la contraseña que desea usar para el administrador del sistema (ROOT):" | |
| 237 | read pass_root | |
| 238 | echo | |
| 239 | - | echo -e "Por favor, introduzca la contraseña que desea usar para el administrador del sistema (ROOT):\n" |
| 239 | + | echo "Por favor, repita la contraseña para el administrador del sistema:" |
| 240 | - | read pass_root |
| 240 | + | |
| 241 | if [[ $conf_pass_root != $pass_root ]] | |
| 242 | - | if [[ -z $pass_root ]] |
| 242 | + | |
| 243 | echo | |
| 244 | - | echo -e "No ha introducido ninguna contraseña para el usuario ROOT, por favor hágalo ahora:\n" |
| 244 | + | echo "Error: La contraseña no coincide con la confirmación, pulse ENTER para continuar..." |
| 245 | read | |
| 246 | fi | |
| 247 | done | |
| 248 | } | |
| 249 | - | echo -e "Por favor, repita la contraseña para el administrador del sistema:\n" |
| 249 | + | form_PASS_ROOT #Invocando a la función. |
| 250 | - | read conf_pass_root |
| 250 | + | |
| 251 | ############## | |
| 252 | - | if [[ -z $conf_pass_root ]] |
| 252 | + | |
| 253 | ############## | |
| 254 | - | echo -e "No ha introducido ninguna contraseña para la confirmación de contraseña del usuario $usuario, por favor hágalo ahora:\n" |
| 254 | + | |
| 255 | unset usuario pass_user conf_pass_user | |
| 256 | - | elif [[ $conf_pass_root != $pass_root ]] |
| 256 | + | while [[ -z $usuario ]] || [[ -z $pass_user || -z $conf_pass_user ]] || [[ -z $pass_user && -z $conf_pass_user ]] || [[ $pass_user != $conf_pass_user ]] |
| 257 | do | |
| 258 | - | echo -e "Error: La contraseña no coincide con la confirmación, pulse ENTER para volver a introducir una contraseña:\n" |
| 258 | + | |
| 259 | echo "Introduzca el nombre que desee usar para el primer usuario:" | |
| 260 | - | clear |
| 260 | + | |
| 261 | - | PASS_ROOT |
| 261 | + | |
| 262 | echo "Introduzca una contraseña para el primer usuario ($usuario):" | |
| 263 | read pass_user | |
| 264 | - | form_PASS_ROOT #Llamando a la función. |
| 264 | + | |
| 265 | echo "Por favor, confirme la contraseña:" | |
| 266 | read conf_pass_user | |
| 267 | if [[ $conf_pass_user != $pass_user ]] | |
| 268 | then | |
| 269 | echo | |
| 270 | echo "Error: La contraseña no coincide con la confirmación, pulse ENTER para continuar..." | |
| 271 | - | echo -e "Introduzca el nombre que desee usar para el primer usuario:\n" |
| 271 | + | read |
| 272 | - | read usuario |
| 272 | + | |
| 273 | done | |
| 274 | - | if [[ -z $usuario ]] |
| 274 | + | |
| 275 | form_PASS_USUARIO #Invocando a la función. | |
| 276 | - | echo -e "No ha introducido ningún nombre de usuario, por favor hágalo ahora:\n" |
| 276 | + | |
| 277 | ####################### | |
| 278 | # OPCIONES DEL NÚCLEO # | |
| 279 | - | echo -e "Introduzca una contraseña para el primer usuario:\n" |
| 279 | + | |
| 280 | - | read pass_user |
| 280 | + | |
| 281 | unset nucleo | |
| 282 | - | if [[ -z $pass_user ]] |
| 282 | + | while [[ -z $nucleo ]] |
| 283 | do | |
| 284 | - | echo -e "No ha introducido ninguna contraseña para el usuario $usuario, por favor hágalo ahora:\n" |
| 284 | + | |
| 285 | echo -e "¿Qué tipo de núcleo desea usar? \n" | |
| 286 | echo "1. Kernel Personalizado" | |
| 287 | echo -e "2. GenKernel \n" | |
| 288 | - | echo -e "Por favor, confirme la contraseña:\n" |
| 288 | + | read menu_nucleo |
| 289 | - | read conf_pass_user |
| 289 | + | |
| 290 | - | if [[ -z $conf_pass_user ]] |
| 290 | + | |
| 291 | 1) nucleo=personalizado ;; | |
| 292 | - | echo -e "No ha introducido ninguna contraseña para la confirmación de contraseña del usuario $usuario, por favor hágalo ahora:\n" |
| 292 | + | 2) nucleo=genkernel ;; |
| 293 | *) echo "Opcion inválida, presione ENTER para continuar..." | |
| 294 | - | elif [[ $conf_pass_user != $pass_user ]] |
| 294 | + | read |
| 295 | esac | |
| 296 | - | echo -e "Error: La contraseña no coincide con la confirmación, pulse ENTER para volver a introducir una contraseña:\n" |
| 296 | + | done |
| 297 | ||
| 298 | - | clear |
| 298 | + | |
| 299 | - | PASS_USUARIO |
| 299 | + | |
| 300 | LOGO | |
| 301 | echo -e "¿Como desea configurar el nucleo? \n" | |
| 302 | - | form_PASS_USUARIO #Llamando a la función. |
| 302 | + | |
| 303 | echo -e "2.Cargar fichero .config \n" | |
| 304 | read menu_nucleo | |
| 305 | echo | |
| 306 | case $menu_nucleo in | |
| 307 | 1) nucleo=menu_config ;; | |
| 308 | - | while [[ -z $nucleo ]] |
| 308 | + | 2) nucleo=fichero_config ;; |
| 309 | *) echo "Opcion inválida, presione ENTER para continuar..." | |
| 310 | read | |
| 311 | - | echo -e "¿Qué tipo de núcleo desea usar? \n" |
| 311 | + | esac |
| 312 | - | echo "1. Kernel Personalizado" |
| 312 | + | |
| 313 | - | echo -e "2. GenKernel \n" |
| 313 | + | |
| 314 | - | read menu_nucleo in |
| 314 | + | opciones_kernel #Invocando a la función. |
| 315 | ||
| 316 | - | case $menu_nucleo in |
| 316 | + | |
| 317 | - | 1) nucleo=personalizado |
| 317 | + | |
| 318 | - | ;; |
| 318 | + | |
| 319 | - | 2) nucleo=genkernel |
| 319 | + | |
| 320 | - | ;; |
| 320 | + | unset T_GRAF |
| 321 | - | *) echo "Opcion invalida."; |
| 321 | + | T_GRAF_ATI=`lspci | grep VGA | grep -o Ati` |
| 322 | - | echo "Presiona ENTER para continuar..."; |
| 322 | + | T_GRAF_NVIDIA=`lspci | grep VGA | grep -o nVidia` |
| 323 | - | read foo |
| 323 | + | T_GRAF_INTEL=`lspci | grep VGA | grep -o Intel` |
| 324 | - | ;; |
| 324 | + | T_GRAF_VBOX=`lspci | grep VGA | grep -o VirtualBox` |
| 325 | - | esac |
| 325 | + | |
| 326 | if [[ $T_GRAF_ATI = "Ati" ]] | |
| 327 | then | |
| 328 | T_GRAF=radeon | |
| 329 | elif [[ $T_GRAF_NVIDIA = "nVidia" ]] | |
| 330 | then | |
| 331 | T_GRAF=nouveau | |
| 332 | elif [[ $T_GRAF_INTEL = "Intel" ]] | |
| 333 | then | |
| 334 | T_GRAF=intel | |
| 335 | elif [[ $T_GRAF_VBOX = "VirtualBox" ]] | |
| 336 | then | |
| 337 | - | 1) nucleo=menu_config |
| 337 | + | |
| 338 | - | ;; |
| 338 | + | |
| 339 | - | 2) nucleo=fichero_config |
| 339 | + | |
| 340 | - | ;; |
| 340 | + | |
| 341 | - | *) echo "Opcion invalida."; |
| 341 | + | |
| 342 | - | echo "Presiona ENTER para continuar..."; |
| 342 | + | |
| 343 | - | read foo |
| 343 | + | |
| 344 | - | ;; |
| 344 | + | por favor, introduzca manualmente el nombre de su tarjeta gráfica: \n" |
| 345 | read T_GRAF | |
| 346 | done | |
| 347 | } | |
| 348 | - | opciones_kernel #Llamando a la función. |
| 348 | + | info_tar_graf #Invocando a la función. |
| 349 | ||
| 350 | ########################### | |
| 351 | # DIÁLOGO DE CONFIRMACIÓN # | |
| 352 | ########################### | |
| 353 | while : | |
| 354 | do | |
| 355 | - | T_GRAF_ATI=`lspci | grep VGA | grep -o Ati` |
| 355 | + | |
| 356 | - | T_GRAF_NVIDIA=`lspci | grep VGA | grep -o nVidia` |
| 356 | + | echo -e "Finalizando asistente...\n" |
| 357 | - | T_GRAF_INTEL=`lspci | grep VGA | grep -o Intel` |
| 357 | + | barra_progreso 10 |
| 358 | - | T_GRAF_VBOX=`lspci | grep VGA | grep -o VirtualBox` |
| 358 | + | |
| 359 | echo -e "¿Esta seguro de querer usar la siguiente configuración en su sistema? \n | |
| 360 | HostName: $hostname | |
| 361 | Usuario: $usuario | |
| 362 | - | echo "Tarjeta gráfica ATI detectada" |
| 362 | + | |
| 363 | Pass Root: $pass_root | |
| 364 | Disco: $disco | |
| 365 | Tamaño Particion BOOT: $fin_boot MB (Recomendado) | |
| 366 | - | echo "Tarjeta gráfica NVIDIA detectada" |
| 366 | + | |
| 367 | - | T_GRAF="nvidia nouveau" |
| 367 | + | |
| 368 | Nucleo: $nucleo | |
| 369 | Tarjeta Gráfica: $T_GRAF \n | |
| 370 | - | echo "Tarjeta gráfica INTEL detectada" |
| 370 | + | |
| 371 | 1. Si, continuar la instalación.\n | |
| 372 | 2. Cambiar HostName. | |
| 373 | 3. Cambiar contraseña de administrador del sistema (root). | |
| 374 | - | echo "Tarjeta gráfica virtual VIRTUALBOX detectada" |
| 374 | + | |
| 375 | 5. Cambiar preferencias del disco y las particiones del sistema. | |
| 376 | 6. Cambiar opciones del núcleo. | |
| 377 | 7. Cambiar opciones de tarjeta gráfica (detección automática).\n" | |
| 378 | read opcion_infosys | |
| 379 | case $opcion_infosys in | |
| 380 | 1) echo -e "\n Continuando la instalación..." | |
| 381 | break ;; | |
| 382 | - | por favor, introduzca manualmente el nombre de su tarjeta gráfica:\n" |
| 382 | + | 2) form_CONF_HOSTNAME ;; |
| 383 | 3) form_PASS_ROOT ;; | |
| 384 | 4) form_PASS_USUARIO ;; | |
| 385 | - | echo -e "Está seguro de querer usar $T_GRAF como tarjeta gráfica? |
| 385 | + | 5) form_DISCO_PARTS ;; |
| 386 | - | 1. Si |
| 386 | + | 6) opciones_kernel ;; |
| 387 | - | 2. No \n" |
| 387 | + | 7) info_tar_graf ;; |
| 388 | - | read opc_graf |
| 388 | + | *) echo "Opcion inválida, presione una tecla para continuar..." |
| 389 | read | |
| 390 | esac | |
| 391 | - | while [[ $op_graf = "1" ]] |
| 391 | + | |
| 392 | ################################ | |
| 393 | - | echo -e "Introduzca de nuevo el nombre de su tarjeta gráfica \n" |
| 393 | + | |
| 394 | - | read T_GRAF |
| 394 | + | |
| 395 | ||
| 396 | - | echo -e "Esta seguro de querer usar $T_GRAF como tarjeta gráfica? |
| 396 | + | |
| 397 | - | 1. Si 2.No \n" |
| 397 | + | |
| 398 | #################################### | |
| 399 | PARTICIONES() {
| |
| 400 | - | info_tar_graf #Llamando a la función. |
| 400 | + | fdisk /dev/$disco << EOF |
| 401 | #PARTICIÓN BOOT: | |
| 402 | n | |
| 403 | p | |
| 404 | 1 | |
| 405 | - | while [[ $opcion_infosys != "1" ]] |
| 405 | + | |
| 406 | $fin_boot_MB | |
| 407 | ||
| 408 | - | echo -e "Finalizando asistente... |
| 408 | + | #PARTICIÓN DEL SISTEMA: |
| 409 | n | |
| 410 | - | (10%) [====> ]\n" |
| 410 | + | |
| 411 | - | echo -e " |
| 411 | + | |
| 412 | - | ¿Esta seguro de querer usar la siguiente configuración en su sistema? |
| 412 | + | |
| 413 | $fin_sys_MB | |
| 414 | ||
| 415 | #PARTICIÓN SWAP: | |
| 416 | n | |
| 417 | p | |
| 418 | 3 | |
| 419 | $ini_swap | |
| 420 | $fin_swap_MB | |
| 421 | ||
| 422 | #ESTABLECIENDO PARTICIÓN BOOT COMO BOOTEABLE: | |
| 423 | - | Tarjeta Gráfica: $T_GRAF |
| 423 | + | |
| 424 | 1 | |
| 425 | ||
| 426 | - | 1. Si, continuar la instalación. |
| 426 | + | #ESTABLECIENDO PARTICIÓN SWAP: |
| 427 | t | |
| 428 | 3 | |
| 429 | 82 | |
| 430 | ||
| 431 | #GUARDAR CAMBIOS: | |
| 432 | w | |
| 433 | EOF | |
| 434 | - | read opcion_infosys |
| 434 | + | |
| 435 | - | case $opcion_infosys in |
| 435 | + | |
| 436 | - | 1) echo |
| 436 | + | |
| 437 | - | echo "Continuando la instalación..." |
| 437 | + | |
| 438 | - | ;; |
| 438 | + | PARTICIONES #Invocando a la función. |
| 439 | - | 2) form_CONF_HOSTNAME |
| 439 | + | funcion_ERROR "Error: No se han podido escribir las particiones en el disco" |
| 440 | - | ;; |
| 440 | + | |
| 441 | - | 3) form_PASS_ROOT |
| 441 | + | |
| 442 | - | ;; |
| 442 | + | ########################### "sleep" necesario para dar tiempo |
| 443 | - | 4) form_PASS_USUARIO |
| 443 | + | # FORMATEO DE PARTICIONES # a terminar de escribir particiones |
| 444 | - | ;; |
| 444 | + | ########################### en el disco. Sino, no funciona. |
| 445 | - | 5) form_INFO_PARTS |
| 445 | + | |
| 446 | - | ;; |
| 446 | + | |
| 447 | - | 6) opciones_kernel |
| 447 | + | |
| 448 | - | ;; |
| 448 | + | |
| 449 | - | 7) info_tar_graf |
| 449 | + | |
| 450 | - | ;; |
| 450 | + | |
| 451 | - | *) echo "Opcion inválida, presione una tecla para continuar..."; |
| 451 | + | |
| 452 | - | read foo ;; |
| 452 | + | |
| 453 | - | esac |
| 453 | + | |
| 454 | mkswap /dev/"$disco"3 #Format part SWAP. | |
| 455 | if [[ $? != "0" ]] | |
| 456 | then | |
| 457 | funcion_ERROR "No se pudo dar formato a la partición de intercambio SWAP ("$disco"3)"
| |
| 458 | fi | |
| 459 | elif [[ $? != "0" ]] | |
| 460 | then | |
| 461 | funcion_ERROR "No se pudo dar formato a la partición de sistema ("$disco"2)"
| |
| 462 | fi | |
| 463 | - | fdisk /dev/$disco << EOF |
| 463 | + | |
| 464 | - | #BOOT |
| 464 | + | |
| 465 | funcion_ERROR "No se pudo dar formato a partición BOOT ("$disco"1)"
| |
| 466 | fi | |
| 467 | ||
| 468 | ########################## | |
| 469 | # MONTAJE DE PARTICIONES # | |
| 470 | ########################## | |
| 471 | - | #SYS |
| 471 | + | mount /dev/"$disco"2 /mnt/gentoo #MONTANDO PARTICION SISTEMA. |
| 472 | if [[ $? = "0" ]] | |
| 473 | then | |
| 474 | mkdir /mnt/gentoo/boot #CREANDO PUNTO DE MONTAJE PARTICION BOOT. | |
| 475 | mount /dev/"$disco"1 /mnt/gentoo/boot #MONTANDO PARTICION BOOT. | |
| 476 | if [[ $? = "0" ]] | |
| 477 | then | |
| 478 | - | #SWAP |
| 478 | + | mkswap /dev/"$disco"3 #ACTIVANDO PARTICION SWAP. |
| 479 | if [[ $? != "0" ]] | |
| 480 | then | |
| 481 | funcion_ERROR "NO SE ACTIVAR PARTICION DE INTERCAMBIO SWAP ("$disco"1)"
| |
| 482 | fi | |
| 483 | elif [[ $? != "0" ]] | |
| 484 | then | |
| 485 | - | #PART-ARRANCABLE |
| 485 | + | |
| 486 | fi | |
| 487 | elif [[ $? != "0" ]] | |
| 488 | then | |
| 489 | - | #SELECT-PART-SWAP |
| 489 | + | |
| 490 | fi | |
| 491 | ||
| 492 | ####################################### | |
| 493 | # COPIANDO Y EXTRAYENDO STAGE/PORTAGE # | |
| 494 | - | #GUARDAR |
| 494 | + | |
| 495 | LOGO | |
| 496 | echo -e "Copiando y extrayendo ficheros Stage y Portage, por favor espere...\n" | |
| 497 | barra_progreso 20 | |
| 498 | ||
| 499 | funcion_COPIAR /mnt/cdrom/stage3*.bz2 /mnt/gentoo | |
| 500 | funcion_COPIAR /mnt/cdrom/portage*.bz2 /mnt/gentoo | |
| 501 | - | PARTICIONES #Llamando a la función. |
| 501 | + | |
| 502 | - | funcion_ERROR "Error: No se han podido escribir las particiones." |
| 502 | + | |
| 503 | funcion_ERROR "Error: No se ha podido descomprimir el paquete STAGE" | |
| 504 | ||
| 505 | - | ########################### "sleep" necesario para dar tiempo |
| 505 | + | |
| 506 | - | # FORMATEO DE PARTICIONES # a terminar de escribir particiones |
| 506 | + | funcion_ERROR "Error: No se ha podido descomprimir el paquete PORTAGE" |
| 507 | - | ########################### en el disco. Sino, no funciona. |
| 507 | + | |
| 508 | ################################ | |
| 509 | # MONTANDO CARPETAS DEV Y PROC # | |
| 510 | ################################ | |
| 511 | mount -t proc none /mnt/gentoo/proc | |
| 512 | funcion_ERROR "Error: No se ha podido montar la carpeta PROC" | |
| 513 | ||
| 514 | mount --rbind /dev /mnt/gentoo/dev | |
| 515 | funcion_ERROR "Error: No se ha podido montar la carpeta DEV" | |
| 516 | ||
| 517 | - | mkswap /dev/"$disco"3 #Formart part SWAP. |
| 517 | + | |
| 518 | # COPIANDO FICHEROS DE CONFIGURACIÓN # | |
| 519 | ###################################### | |
| 520 | ||
| 521 | #RESOLV.CONF | |
| 522 | funcion_COPIAR /etc/resolv.conf /mnt/gentoo/etc | |
| 523 | ||
| 524 | #MAKE.CONF | |
| 525 | funcion_COPIAR /mnt/cdrom/make.conf /mnt/gentoo/etc/make.conf | |
| 526 | ||
| 527 | echo VIDEO_CARDS=$T_GRAF >> /mnt/gentoo/etc/make.conf | |
| 528 | funcion_ERROR "Error: No se ha podido añadir tarjeta grafica al archivo MAKE.CONF" | |
| 529 | ||
| 530 | #HOSTNAME | |
| 531 | echo "HOSTNAME=$hostname" > /mnt/gentoo/etc/conf.d/hostname | |
| 532 | funcion_ERROR "Error: No se ha podido configurar Hostname" | |
| 533 | ||
| 534 | - | mount /dev/"$disco"2 /mnt/gentoo #MONTANDO PARTICION SISTEMA. |
| 534 | + | |
| 535 | funcion_COPIAR /mnt/cdrom/02locale /mnt/gentoo/etc/env.d/02locale | |
| 536 | ||
| 537 | - | mkdir /mnt/gentoo/boot #CREANDO PUNTO DE MONTAJE PARTICION BOOT. |
| 537 | + | |
| 538 | funcion_COPIAR /mnt/cdrom/keymaps /mnt/gentoo/etc/conf.d/keymaps | |
| 539 | ||
| 540 | #CONSOLEFONT | |
| 541 | - | mkswap /dev/"$disco"3 #ACTIVANDO PARTICION SWAP. |
| 541 | + | |
| 542 | ||
| 543 | #CLOCK | |
| 544 | funcion_COPIAR /mnt/cdrom/hwclock /mnt/gentoo/etc/conf.d/hwclock | |
| 545 | ||
| 546 | #NET | |
| 547 | #Configuracion no requerida. | |
| 548 | ||
| 549 | #RC.CONF | |
| 550 | funcion_COPIAR /mnt/cdrom/rc.conf /mnt/gentoo/etc/ | |
| 551 | ||
| 552 | #KERNEL CONFIG | |
| 553 | funcion_COPIAR /mnt/cdrom/kernel-config /mnt/gentoo | |
| 554 | ||
| 555 | #FICHEROS PORTAGE | |
| 556 | if [[ -z /mnt/gentoo/etc/portage ]] | |
| 557 | then | |
| 558 | mkdir /mnt/gentoo/etc/portage | |
| 559 | - | echo -e "Copiando y extrayendo ficheros Stage y Portage, por favor espere... |
| 559 | + | |
| 560 | ||
| 561 | - | (20%) [========> ]\n" |
| 561 | + | |
| 562 | funcion_COPIAR /mnt/cdrom/package.mask /mnt/gentoo/etc/portage | |
| 563 | funcion_COPIAR /mnt/cdrom/package.unmask /mnt/gentoo/etc/portage | |
| 564 | ||
| 565 | #OTROS | |
| 566 | funcion_COPIAR /mnt/cdrom/software/libflashplayer.so /mnt/gentoo | |
| 567 | funcion_COPIAR /mnt/cdrom/config /mnt/gentoo | |
| 568 | - | funcion_ERROR "Error: No se ha podido descomprimir el paquete STAGE." |
| 568 | + | |
| 569 | #SCRIPT INSTALACIÓN | |
| 570 | funcion_COPIAR /mnt/cdrom/autoinstall.sh /mnt/gentoo | |
| 571 | - | funcion_ERROR "Error: No se ha podido descomprimir el paquete PORTAGE." |
| 571 | + | |
| 572 | ############################################ | |
| 573 | # EXPORTANDO VARIABLES AL SIGUIENTE SCRIPT # | |
| 574 | ############################################ | |
| 575 | echo "Disco: $disco" > /mnt/gentoo/INFO | |
| 576 | echo "Nucleo: $nucleo" >> /mnt/gentoo/INFO | |
| 577 | - | funcion_ERROR "Error: No se ha podido montar la carpeta PROC." |
| 577 | + | |
| 578 | echo "Pass-Root: $pass_root" >> /mnt/gentoo/INFO | |
| 579 | echo "Usuario: $usuario" >> /mnt/gentoo/INFO | |
| 580 | - | funcion_ERROR "Error: No se ha podido montar la carpeta DEV." |
| 580 | + | |
| 581 | echo "Interfaz: $interfaz" >> /mnt/gentoo/INFO | |
| 582 | ||
| 583 | ######################## | |
| 584 | # ENTRANDO EN LA JAULA # | |
| 585 | ######################## | |
| 586 | chroot /mnt/gentoo/ sh autoinstall.sh entorno_chroot /bin/bash/ | |
| 587 | } #Cerrando funcion "install" | |
| 588 | ||
| 589 | entorno_chroot() {
| |
| 590 | ||
| 591 | verif_conex #Verificando conexión dentro del entorno chroot. | |
| 592 | ||
| 593 | - | funcion_ERROR "Error: No se ha podido añadir tarjeta grafica al archivo MAKE.CONF." |
| 593 | + | |
| 594 | # IMPORTANDO VARIABLES # | |
| 595 | ######################## | |
| 596 | disco=`cat /INFO | grep Disco | cut -d" " -f2` | |
| 597 | - | funcion_ERROR "Error: No se ha podido configurar Hostname." |
| 597 | + | |
| 598 | T_GRAF=`cat /INFO | grep -o Tarjeta-Grafica` | |
| 599 | pass_root=`cat /INFO | grep Pass-Root | cut -d" " -f2` | |
| 600 | pass_user=`cat /INFO | grep Pass-User | cut -d" " -f2` | |
| 601 | usuario=`cat /INFO | grep Usuario | cut -d" " -f2` | |
| 602 | interfaz=`cat /INFO | grep Interfaz | cut -d" " -f2` | |
| 603 | ||
| 604 | ##################################### | |
| 605 | # ACTUALIZANDO VARIABLES DE ENTORNO # | |
| 606 | ##################################### | |
| 607 | env-update && source /etc/profile | |
| 608 | export PS1="(CHROOT) $PS1" | |
| 609 | ||
| 610 | ##################################### | |
| 611 | # ACTUALIZANDO E INSTALANDO PORTAGE # | |
| 612 | ##################################### | |
| 613 | emerge --sync | |
| 614 | eselect news --read #Leyendo noticias de Portage | |
| 615 | ||
| 616 | LOGO | |
| 617 | echo -e "Instalando Portage, por favor espere...\n" | |
| 618 | barra_progreso 30 | |
| 619 | ||
| 620 | funcion_INSTALAR portage && etc-update | |
| 621 | - | dir_portage="/mnt/gentoo/etc/portage" |
| 621 | + | |
| 622 | ############################### | |
| 623 | # SELECCION PERFIL DE SISTEMA # | |
| 624 | ############################### | |
| 625 | eselect profile set 3 | |
| 626 | ||
| 627 | ################################## | |
| 628 | # DESCARGAR E INSTALAR EL NÚCLEO # | |
| 629 | ################################## | |
| 630 | LOGO | |
| 631 | - | if [[ $interfaz = "offline" ]] |
| 631 | + | echo -e "Instalando el núcleo del sistema, por favor espere...\n" |
| 632 | barra_progreso 35 | |
| 633 | - | funcion_COPIAR /mnt/cdrom/distfiles /mnt/gentoo/usr/portage/ |
| 633 | + | |
| 634 | funcion_INSTALAR sys-kernel/gentoo-sources | |
| 635 | ||
| 636 | if [[ $nucleo = "genkernel" ]] | |
| 637 | then | |
| 638 | funcion_INSTALAR sys-kernel/genkernel | |
| 639 | genkernel all | |
| 640 | funcion_ERROR "Error: Falló la compilación de GenKernel" | |
| 641 | version_genkernel=`ls /boot/ | grep kernel-genkernel | cut -d"-" -f4,5,6` | |
| 642 | elif [[ $nucleo = "menu_config" ]] | |
| 643 | then | |
| 644 | cd /usr/src/linux | |
| 645 | make menuconfig | |
| 646 | opc_kernel=0 | |
| 647 | until [[ $opc_kernel = "1" ]] | |
| 648 | do | |
| 649 | LOGO | |
| 650 | echo "¿Ha terminado de configurar el nucleo?" | |
| 651 | echo -e "1.Si, continuar 2.No, ejecutar de nuevo menu-config \n" | |
| 652 | read opc_kernel | |
| 653 | echo | |
| 654 | case $opc_kernel in | |
| 655 | 1) echo "Continuando con la instalacion..." && opc_kernel=1 ;; | |
| 656 | 2) make menuconfig ;; | |
| 657 | *) echo "Opcion inválida, presione ENTER para continuar..." | |
| 658 | read | |
| 659 | - | } #Cerrando funcion "install" |
| 659 | + | |
| 660 | done | |
| 661 | ||
| 662 | elif [[ $nucleo = "fichero_config" ]] | |
| 663 | then | |
| 664 | cd /usr/src/linux | |
| 665 | funcion_COPIAR /kernel-config /usr/src/linux/.config | |
| 666 | fi | |
| 667 | ||
| 668 | if [[ $nucleo != "genkernel" ]] | |
| 669 | then | |
| 670 | nice -n -20 make && nice -n -20 make modules_install | |
| 671 | funcion_ERROR "Error: Falló la compilación del núcleo" | |
| 672 | version_nucleo=`ls /usr/src/ | grep linux- | cut -d"-" -f2,4` | |
| 673 | cp /usr/src/linux/arch/x86_64/boot/bzImage /boot/kernel-$version_nucleo | |
| 674 | funcion_ERROR "Error: Falló la copia del núcleo" | |
| 675 | fi | |
| 676 | ||
| 677 | #################### | |
| 678 | # CONFIGURAR FSTAB # | |
| 679 | #################### | |
| 680 | UID_PART_BOOT=`ls -l /dev/disk/by-uuid/ | grep "$disco"1 | cut -d" " -f9` | |
| 681 | UID_PART_SYS=`ls -l /dev/disk/by-uuid/ | grep "$disco"2 | cut -d" " -f9` | |
| 682 | - | if [[ $interfaz != "offline" ]] |
| 682 | + | |
| 683 | echo " | |
| 684 | - | emerge --sync |
| 684 | + | |
| 685 | UUID=$UID_PART_SYS / ext4 noatime 0 1 | |
| 686 | UUID=$UID_PART_SWAP none swap sw 0 0 | |
| 687 | #/dev/cdrom /mnt/cdrom auto noauto,user 0 0 [DESACTIVADO, ERROR AUTOMOUNT] | |
| 688 | - | echo -e "Instalando Portage, por favor espere... |
| 688 | + | |
| 689 | funcion_ERROR "Error: No se ha podido copiar la tabla FSTAB" | |
| 690 | - | (30%) [=============> ]\n" |
| 690 | + | |
| 691 | ############################################# | |
| 692 | - | funcion_INSTALAR portage |
| 692 | + | |
| 693 | - | etc-update |
| 693 | + | |
| 694 | LOGO | |
| 695 | echo -e "Instalando GRUB, por favor espere...\n" | |
| 696 | barra_progreso 40 | |
| 697 | ||
| 698 | funcion_INSTALAR grub | |
| 699 | if [[ $? = "0" ]] | |
| 700 | then | |
| 701 | grep -v rootfs /proc/mounts > /etc/mtab | |
| 702 | funcion_ERROR "Error: Error al crear tabla MTAB" | |
| 703 | ||
| 704 | - | echo -e "Instalando el nucleo del sistema, por favor espere... |
| 704 | + | |
| 705 | # CONFIG GRUB # | |
| 706 | - | (35%) [================> ]\n" |
| 706 | + | |
| 707 | PART_SYS="$disco"2 | |
| 708 | echo " | |
| 709 | #Título para arrancar por defecto. | |
| 710 | default 0 | |
| 711 | ||
| 712 | #Segundos de espera. | |
| 713 | timeout 05 | |
| 714 | - | funcion_ERROR "Error: Falló la compilación de GenKernel." |
| 714 | + | |
| 715 | #Imagen de inicio | |
| 716 | splashimage=(hd0,0)/boot/grub/splash.xpm.gz" > /boot/grub/grub.conf | |
| 717 | funcion_ERROR "Error: No se ha podido escribir en fichero grub.conf" | |
| 718 | ||
| 719 | if [[ $nucleo = "genkernel" ]] | |
| 720 | then | |
| 721 | echo " | |
| 722 | #Nombre del núcleo para mostrar. | |
| 723 | - | opc_kernel=0 |
| 723 | + | |
| 724 | ||
| 725 | #Partición donde se encuentra GenKernel. | |
| 726 | root (hd0,0) | |
| 727 | kernel /boot/kernel-genkernel-x86_64-$version_genkernel real_root=/dev/$PART_SYS | |
| 728 | initrd /boot/initramfs-genkernel-x86_64-$version_genkernel" >> /boot/grub/grub.conf | |
| 729 | funcion_ERROR "Error: No se ha podido escribir en fichero grub.conf" | |
| 730 | elif [[ $nucleo != "genkernel" ]] | |
| 731 | then | |
| 732 | - | 1) echo "Continuando con la instalacion..." && opc_kernel=1 |
| 732 | + | |
| 733 | - | ;; |
| 733 | + | |
| 734 | - | 2) make menuconfig |
| 734 | + | |
| 735 | - | ;; |
| 735 | + | |
| 736 | - | *) echo "Opcion invalida."; |
| 736 | + | |
| 737 | - | echo "Presiona ENTER para continuar..."; |
| 737 | + | |
| 738 | - | read foo;; |
| 738 | + | |
| 739 | funcion_ERROR "Error: No se ha podido escribir en fichero grub.conf" | |
| 740 | fi | |
| 741 | ||
| 742 | #SOPORTE GRUB WINDOWS | |
| 743 | echo " | |
| 744 | #Soporte Windows | |
| 745 | title Microsoft Windows 7 Professional | |
| 746 | rootnoverify (hd0,4) | |
| 747 | chainloader +1" >> /boot/grub/grub.conf | |
| 748 | funcion_ERROR "Error: No se ha podido escribir en fichero grub.conf" | |
| 749 | ||
| 750 | grub-install --no-floppy --root-directory=/boot /dev/$disco | |
| 751 | - | funcion_ERROR "Error: Falló la compilación del núcleo." |
| 751 | + | funcion_ERROR "Error: No se pudo instalar GRUB en el disco $disco" |
| 752 | fi | |
| 753 | - | funcion_COPIAR /usr/src/linux/arch/x86_64/boot/bzImage /boot/kernel-$version_nucleo |
| 753 | + | |
| 754 | ########################### | |
| 755 | # APLICACIONES NECESARIAS # | |
| 756 | ########################### | |
| 757 | LOGO | |
| 758 | echo -e "Instalando aplicaciones necesarias para el sistema base, por favor espere...\n" | |
| 759 | barra_progreso 50 | |
| 760 | ||
| 761 | #Bitácora del sistema: | |
| 762 | funcion_INSTALAR syslog-ng && funcion_ADD_RC_UPDATE syslog-ng default | |
| 763 | ||
| 764 | #Planificador: | |
| 765 | funcion_INSTALAR vixie-cron && funcion_ADD_RC_UPDATE vixie-cron default | |
| 766 | ||
| 767 | #Otros: | |
| 768 | funcion_INSTALAR dhcpcd | |
| 769 | - | funcion_ERROR "Error: No se ha podido copiar la tabla FSTAB." |
| 769 | + | |
| 770 | ||
| 771 | funcion_INSTALAR sudo && echo " | |
| 772 | # Configuración del fichero SUDOERS | |
| 773 | Defaults env_reset | |
| 774 | ||
| 775 | - | echo -e "Instalando GRUB, por favor espere... |
| 775 | + | |
| 776 | root ALL=(ALL) ALL | |
| 777 | - | (40%) [=================> ]\n" |
| 777 | + | |
| 778 | ||
| 779 | %sudo ALL=(ALL) ALL | |
| 780 | $usuario ALL=(ALL) ALL | |
| 781 | ||
| 782 | # Miembros del grupo de administración que pueden obtener privilegios de root. | |
| 783 | - | funcion_ERROR "Error: Error al crear tabla MTAB." |
| 783 | + | |
| 784 | $usuario ALL=(ALL) ALL" > /etc/sudoers | |
| 785 | funcion_ERROR "Error: No se ha podido escribir fichero de configuración SUDOERS" | |
| 786 | ||
| 787 | ######################################### | |
| 788 | # ESTABLECIENDO CONTRASEÑAS DE USUARIOS # | |
| 789 | ######################################### | |
| 790 | passwd root << EOF | |
| 791 | $pass_root | |
| 792 | $pass_root | |
| 793 | EOF | |
| 794 | ||
| 795 | useradd $usuario | |
| 796 | passwd $usuario << EOF | |
| 797 | $pass_user | |
| 798 | $pass_user | |
| 799 | EOF | |
| 800 | ||
| 801 | #################################### | |
| 802 | # OTORGANDO PRIVILEGIOS AL USUARIO # (Solución al problema de autentificación SU) | |
| 803 | #################################### | |
| 804 | usermod -G users,wheel $usuario | |
| 805 | ||
| 806 | mkdir /home/$usuario | |
| 807 | funcion_ERROR "Error: No se ha podido crear carpeta de usuario para el usuario $usuario" | |
| 808 | ||
| 809 | chmod -R 744 /home/$usuario | |
| 810 | funcion_ERROR "Error: No se ha podido cambiar permisos a /home/$usuario" | |
| 811 | ||
| 812 | chown -R $usuario /home/$usuario | |
| 813 | funcion_ERROR "Error: No se ha podido cambiar propietario de /home/$usuario" | |
| 814 | ||
| 815 | ############## | |
| 816 | ## HARDWARE ## | |
| 817 | ############## | |
| 818 | LOGO | |
| 819 | echo -e "Instalando soporte para hardware...\n" | |
| 820 | barra_progreso 60 | |
| 821 | ||
| 822 | ############ | |
| 823 | # SENSORES # | |
| 824 | ############ | |
| 825 | #funcion_INSTALAR lm_sensors | |
| 826 | ||
| 827 | #################### | |
| 828 | # SOPORTE WIRELESS # | |
| 829 | #################### | |
| 830 | funcion_INSTALAR sys-firmware/iwl5000-ucode | |
| 831 | ||
| 832 | - | funcion_ERROR "Error: No se pudo instalar GRUB en el disco $disco." |
| 832 | + | |
| 833 | # SOPORTE BLUETOOTH # | |
| 834 | ##################### | |
| 835 | funcion_INSTALAR net-wireless/bluez && funcion_ADD_RC_UPDATE bluetooth default | |
| 836 | #&& funcion_INSTALAR net-wireless/bluez-firmware | |
| 837 | ||
| 838 | ########## | |
| 839 | - | echo -e "Instalando aplicaciones necesarias para el sistema base, por favor espere... |
| 839 | + | |
| 840 | ########## | |
| 841 | - | (50%) [======================> ]\n" |
| 841 | + | |
| 842 | if [[ $? = "0" ]] | |
| 843 | then | |
| 844 | - | funcion_INSTALAR syslog-ng |
| 844 | + | |
| 845 | funcion_GPASSWD root audio | |
| 846 | funcion_GPASSWD $usuario audio | |
| 847 | - | funcion_ADD_RC_UPDATE syslog-ng default |
| 847 | + | |
| 848 | ||
| 849 | ########################### Soporte para instalación | |
| 850 | ## SOPORTE EN VIRTUALBOX ## en VirtualBox. | |
| 851 | - | funcion_INSTALAR vixie-cron |
| 851 | + | |
| 852 | if [[ $T_GRAF = "virtualbox" ]] | |
| 853 | then | |
| 854 | - | funcion_ADD_RC_UPDATE vixie-cron default |
| 854 | + | |
| 855 | echo -e "Instalando modulos para soporte en VirtualBox, por favor espere...\n" | |
| 856 | barra_progreso 65 | |
| 857 | ||
| 858 | funcion_INSTALAR virtualbox-modules && echo " | |
| 859 | modules=vboxdrv | |
| 860 | modules=vboxnetflt | |
| 861 | - | funcion_INSTALAR sudo |
| 861 | + | |
| 862 | funcion_ERROR "Error: No se han podido añadir módulos virtualbox a la lista de modulós arrancados al inicio" | |
| 863 | ||
| 864 | - | echo " |
| 864 | + | |
| 865 | funcion_INSTALAR virtualbox-guest-additions | |
| 866 | if [[ $? = "0" ]] | |
| 867 | then | |
| 868 | funcion_GPASSWD root vboxguest | |
| 869 | funcion_GPASSWD $usuario vboxguest | |
| 870 | fi | |
| 871 | fi | |
| 872 | ########## | |
| 873 | ## XORG ## | |
| 874 | ########## | |
| 875 | LOGO | |
| 876 | echo -e "Instalando Xorg...\n" | |
| 877 | barra_progreso 70 | |
| 878 | - | funcion_ERROR "Error: No se ha podido copiar fichero de configuracion SUDOERS." |
| 878 | + | |
| 879 | funcion_INSTALAR x11-base/xorg-drivers | |
| 880 | #funcion_INSTALAR x11-base/xorg-server Es dependencia de xorg-drivers. | |
| 881 | env-update && source /etc/profile | |
| 882 | ||
| 883 | ########################### | |
| 884 | ## ENTORNO GRAFICO: XFCE ## | |
| 885 | ########################### | |
| 886 | LOGO | |
| 887 | echo -e "Instalando entorno grafico (XFCE)...\n" | |
| 888 | barra_progreso 80 | |
| 889 | ||
| 890 | funcion_INSTALAR xfce-base/xfce4-meta | |
| 891 | funcion_INSTALAR x11-misc/slim | |
| 892 | echo "XSESSION=Xfce4" > /etc/env.d/90xsession | |
| 893 | echo "DISPLAYMANAGER=slim" > /etc/conf.d/xdm | |
| 894 | funcion_ADD_RC_UPDATE xdm default | |
| 895 | ||
| 896 | - | # OTORGANDO PRIVILEGIOS AL USUARIO # (Solución al problema de autentificación SU) |
| 896 | + | |
| 897 | for x in cdrom cdrw usb ; do gpasswd -a $usuario $x ; done | |
| 898 | env-update && source /etc/profile | |
| 899 | ||
| 900 | #EXTRAS XFCE | |
| 901 | - | funcion_ERROR "Error: No se ha podido crear carpeta de usuario para el usuario $usuario." |
| 901 | + | |
| 902 | funcion_INSTALAR xfce-extra/xfce4-power-manager | |
| 903 | funcion_INSTALAR xfce-extra/xfce4-battery-plugin | |
| 904 | - | funcion_ERROR "Error: No se ha podido cambiar permisos a /home/$usuario." |
| 904 | + | |
| 905 | funcion_INSTALAR xfce-extra/xfce4-mixer #Control sonido | |
| 906 | funcion_INSTALAR sci-calculators/galculator #Calculadora | |
| 907 | - | funcion_ERROR "Error: No se ha podido cambiar propietario de /home/$usuario." |
| 907 | + | |
| 908 | ||
| 909 | #GESTOR DE RED | |
| 910 | #funcion_INSTALAR net-misc/networkmanager && funcion_ADD_RC_UPDATE NetworkManager default | |
| 911 | funcion_INSTALAR net-misc/wicd && funcion_ADD_RC_UPDATE wicd boot | |
| 912 | ||
| 913 | - | echo -e "Instalando soporte para hardware... |
| 913 | + | |
| 914 | ## SOFTWARE ## | |
| 915 | - | (60%) [==============================> ]\n" |
| 915 | + | |
| 916 | LOGO | |
| 917 | echo -e "Instalando software del sistema...\n" | |
| 918 | barra_progreso 90 | |
| 919 | ||
| 920 | ############## | |
| 921 | # ACCESORIOS # | |
| 922 | ############## | |
| 923 | funcion_INSTALAR app-editors/gedit | |
| 924 | funcion_INSTALAR dev-util/geany | |
| 925 | funcion_INSTALAR dev-util/meld | |
| 926 | funcion_INSTALAR app-text/evince #Visor PDF | |
| 927 | funcion_INSTALAR x11-misc/lxmed #Editor Menu | |
| 928 | funcion_INSTALAR app-office/orage #Calendario | |
| 929 | - | funcion_INSTALAR net-wireless/bluez |
| 929 | + | |
| 930 | funcion_INSTALAR app-admin/conky #&& funcion_COPIAR /config/conky-config /etc/conky/conky.conf | |
| 931 | #echo "sleep 15 && conky -d" >> /etc/init.d/start-conky.sh | |
| 932 | - | #funcion_INSTALAR net-wireless/bluez-firmware |
| 932 | + | |
| 933 | - | funcion_ADD_RC_UPDATE bluetooth default |
| 933 | + | |
| 934 | # SCANNERS/SNIFFERS # | |
| 935 | ##################### | |
| 936 | funcion_INSTALAR net-analyzer/nmap | |
| 937 | funcion_INSTALAR net-analyzer/wireshark | |
| 938 | funcion_INSTALAR net-analyzer/ettercap | |
| 939 | funcion_INSTALAR net-analyzer/dsniff | |
| 940 | funcion_INSTALAR net-wireless/aircrack-ng | |
| 941 | ||
| 942 | ################## | |
| 943 | # VIRTUALIZACIÓN # | |
| 944 | ################## | |
| 945 | ||
| 946 | #VIRTUALBOX | |
| 947 | funcion_INSTALAR app-emulation/virtualbox && funcion_GPASSWD $usuario vboxusers | |
| 948 | ||
| 949 | ############ | |
| 950 | # INTERNET # | |
| 951 | ############ | |
| 952 | funcion_INSTALAR net-ftp/filezilla | |
| 953 | - | echo -e "Instalando modulos para VirtualBox, por favor espere... |
| 953 | + | |
| 954 | #CHROME | |
| 955 | - | (65%) [================================> ]\n" |
| 955 | + | |
| 956 | if [[ $? = "0" ]] | |
| 957 | - | funcion_INSTALAR virtualbox-modules |
| 957 | + | |
| 958 | echo "" >> /dev/null | |
| 959 | elif [[ -z /opt/google/chrome/plugins ]] | |
| 960 | - | echo " |
| 960 | + | |
| 961 | funcion_COPIAR /libflashplayer.so /opt/google/chrome/plugins | |
| 962 | elif [[ ! -z /opt/google/chrome/plugins ]] | |
| 963 | then | |
| 964 | - | funcion_ERROR "Error: No se han podido añadir módulos virtualbox a la lista de modulós arrancados al inicio." |
| 964 | + | |
| 965 | funcion_COPIAR /libflashplayer.so /opt/google/chrome/plugins | |
| 966 | fi | |
| 967 | ||
| 968 | #FIREFOX | |
| 969 | funcion_INSTALAR www-client/firefox | |
| 970 | if [[ $? = "0" ]] | |
| 971 | then | |
| 972 | echo "" >> /dev/null | |
| 973 | elif [[ -z /usr/lib64/firefox/plugins ]] | |
| 974 | then | |
| 975 | cp /libflashplayer.so /usr/lib64/firefox/plugins | |
| 976 | elif [[ ! -z /usr/lib64/firefox/plugins ]] | |
| 977 | then | |
| 978 | mkdir /usr/lib64/firefox/plugins | |
| 979 | - | echo -e "Instalando Xorg... |
| 979 | + | |
| 980 | fi | |
| 981 | - | (70%) [=====================================> ]\n" |
| 981 | + | |
| 982 | ############ | |
| 983 | # GRÁFICOS # | |
| 984 | ############ | |
| 985 | funcion_INSTALAR media-gfx/gimp | |
| 986 | ||
| 987 | ################ | |
| 988 | # SONIDO/VIDEO # | |
| 989 | ################ | |
| 990 | - | echo -e "Instalando entorno grafico (XFCE)... |
| 990 | + | |
| 991 | funcion_INSTALAR media-video/cheese | |
| 992 | - | (80%) [==============================> ]\n" |
| 992 | + | |
| 993 | ############# | |
| 994 | # OFIMÁTICA # | |
| 995 | ############# | |
| 996 | funcion_INSTALAR app-office/openoffice-bin | |
| 997 | ||
| 998 | ######################## | |
| 999 | # HERRAMIENTAS SISTEMA # | |
| 1000 | ######################## | |
| 1001 | funcion_INSTALAR sys-fs/ntfs3g #Soporte NTFS | |
| 1002 | funcion_INSTALAR app-portage/layman #Gestor Gentoo-Overlays | |
| 1003 | #funcion_INSTALAR virtual/jre #Java | |
| 1004 | funcion_INSTALAR app-portage/gentoolkit | |
| 1005 | funcion_INSTALAR sys-boot/unetbootin | |
| 1006 | ||
| 1007 | #Descompresor e integración con thunar | |
| 1008 | funcion_INSTALAR app-arch/file-roller && funcion_INSTALAR xfce-extra/thunar-archive-plugin | |
| 1009 | ||
| 1010 | ############################# | |
| 1011 | ## FINALIZANDO INSTALACIÓN ## | |
| 1012 | ############################# | |
| 1013 | - | funcion_INSTALAR net-misc/wicd |
| 1013 | + | |
| 1014 | - | if [[ $? = "0" ]] |
| 1014 | + | |
| 1015 | # LIMPIANDO ARCHIVOS TEMPORALES # | |
| 1016 | - | funcion_ADD_RC_UPDATE wicd boot |
| 1016 | + | |
| 1017 | rm -R /stage3*.bz2 | |
| 1018 | rm -R /portage*.bz2 | |
| 1019 | rm -R /kernel-config | |
| 1020 | rm -R /autoinstall.sh | |
| 1021 | rm -R /config | |
| 1022 | rm -R /INFO | |
| 1023 | - | echo -e "Instalando software del sistema... |
| 1023 | + | |
| 1024 | LOGO | |
| 1025 | - | (90%) [=====================================> ]\n" |
| 1025 | + | echo -e "Finalizando instalación del sistema...\n" |
| 1026 | barra_progreso 100 | |
| 1027 | ||
| 1028 | echo "Felicidades! La instalación se ha completado con éxito. | |
| 1029 | Ahora tiene un sistema operativo completamente funcional, que lo disfrute. | |
| 1030 | Presione INTRO para reiniciar el equipo y completar la instalación." | |
| 1031 | read | |
| 1032 | reboot | |
| 1033 | } #Cerrando funcion "entorno_chroot" | |
| 1034 | ||
| 1035 | - | funcion_INSTALAR app-admin/conky |
| 1035 | + | |
| 1036 | if [[ -z $1 ]] | |
| 1037 | then | |
| 1038 | install #Invocando a la función install. | |
| 1039 | elif [[ $1 = "entorno_chroot" ]] | |
| 1040 | then | |
| 1041 | entorno_chroot #Invocando a la función entorno_chroot. | |
| 1042 | fi |