Instalación manual de CentOS 7

El programa de instalación esta pensado para usarse en equipos nuevos y destinar todo el disco para instalar CentOS 7 con SaltOS pre-instalado. Si su caso es otro y desea instalar la imagen de CentOS 7 para SaltOS, existe otra opción que es la llamada instalación manual.

Para ello, a continuación se describirán todos los pasos necesarios:

  • Crear y dar formato a las particiones
  • Montar las particiones y extraer todos los ficheros de la imagen hacia el disco
  • Montar el resto de directorios
  • Instalar grub para permitir el arranque del sistema operativo
  • Crear certificado y dar permisos al directorio /var/www/html
  • Desmontar los directorios y las particiones

Crear y dar formato a las particiones

Si nuestro sistema es un sistema basado en BIOS:

  // CREATING BIOS FILESYSTEM
  echo 'unit: sectors\\n2048,1024000,83\\n1026048,0,83' | sfdisk ${dev}
  mkfs.ext4 -L boot ${dev}1
  mkfs.ext4 -L root ${dev}2

Y si nuestro sistema usa el nuevo sistema UEFI:

  // CREATING UEFI FILESYSTEM
  sgdisk -n 1:0:+200M -t 1:ef00 -c 1:'EFI System Partition' -n 2:0:0 -t 2:0700 -c 2:'' ${dev}
  mkfs.vfat -n EFI ${dev}1
  mkfs.ext4 -L root ${dev}2

Notas:

  • Cuando se usa ${dev}, se esta refiriendo al disco donde se instalará el sistema operativo.
  • Cuando se usa ${boot}, se esta refiriendo a "boot" para sistemas BIOS o "boot/efi" para sistemas UEFI
  • Cuando se usa ${dev}1, esta se refiere a la partición usada para boot o EFI
  • Cuando se usa ${dev}2, esta se refiere a la partición usada para alojar los ficheros del sistema operativo

Montar las particiones y extraer todos los ficheros de la imagen hacia el disco

El siguiente paso es montar la estructura de directorios para descomprimir la imagen

  // WRITING FILES
  mkdir /sysroot/root
  mount ${dev}2 /sysroot/root
  mkdir -p /sysroot/root/${boot}
  mount ${dev}1 /sysroot/root/${boot}
  unsquashfs -f -d /sysroot/root/ /sysroot/cd_root/root.img

Montar el resto de directorios

El siguiente paso es montar el resto de directorios para poder instalar grub.

  mount -o bind /dev /sysroot/root/dev
  mount -o bind /dev/pts /sysroot/root/dev/pts
  mount -o bind /dev/shm /sysroot/root/dev/shm
  mount -o bind /proc /sysroot/root/proc
  mount -o bind /sys /sysroot/root/sys

Instalar grub para permitir el arranque del sistema operativo

En el caso de que nuestro sistema use UEFI, deberemos de ejecutar el siguiente bloque de comandos antes de instalar grub.

  // SOME FIXES FOR UEFI FILESYSTEMS
  chroot /sysroot/root mv /etc/fstab.efi /etc/fstab
  chroot /sysroot/root grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Con el siguiente comando, se debería de instalar grub sin problemas.

  // INSTALL GRUB
  chroot /sysroot/root grub2-install ${dev}

En algunos sistemas UEFI como VirtualBox, es necesario dejar el gestor de arranque en el directorio EFI/BOOT en lugar del EFI/centos. Para ello, la solución que he encontrado es ejecutar el siguiente bloque de comandos.

  // SOME FIXES FOR UEFI FILESYSTEMS
  rsync -va /sysroot/cd_root/EFI/BOOT /sysroot/root/boot/efi/EFI/
  rm -f /sysroot/root/boot/efi/EFI/BOOT/grub.cfg
  cp /sysroot/root/boot/efi/EFI/centos/grub.cfg /sysroot/root/boot/efi/EFI/BOOT/

Crear certificado y dar permisos al directorio /var/www/html

El siguiente paso es crear el certificado para apache y dar permisos al apache para que pueda acceder al directorio /var/www/html.

  // CREATE CERTIFICATE AND SETTING PERMISSIONS
  chroot /sysroot/root /etc/pki/tls/make-apache-ssl-cert.sh
  chroot /sysroot/root chown apache.apache /var/www/html

Desmontar los directorios y las particiones

Y para acabar, hay que desmontar los directorios y las particiones.

  // UMOUNT DIRECTORIES AND PARTITIONS
  umount /sysroot/root/sys
  umount /sysroot/root/proc
  umount /sysroot/root/dev/shm
  umount /sysroot/root/dev/pts
  umount /sysroot/root/dev
  umount /sysroot/root/${boot}
  umount /sysroot/root
  rmdir /sysroot/root

Y si queremos ser estrictos:

  // UMOUNT SOURCE SETUP
  umount /sysroot/cd_root
  rmdir /sysroot/cd_root


Líneas de XML
52,626
Líneas de PHP
14,125
Líneas de JS
6,289
Líneas de T2T
3,499
Líneas de XSLT
2,652
Líneas de SQL
1,675