miércoles, 23 de junio de 2021

Formateando disco USB o pendrive con NTFS en GNU/Linux


Bien en este caso para realizar la la tarea se usarán los programas o comandos:

  • fdisk, Es un programa de edición de la tabla de particiones de las unidades de almacenamiento.
  • mkfs, Es un programa que permite hacer el proceso de formateado de una partición de disco con un sistema de archivos especifico.

A continuación se ejecutarán una serie de pasos para lograr tal fin a manera de ejemplo para ello se usará un disco duro usb de 250gb algo antiguo.

1.- Lo primero es conectar el disco duro externo y verificar que identificador de unidad tiene con el siguiente comando (como super usuario root):

fdisk -l

El mismo mostrará una información como la siguiente:

Disco /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectores
Modelo de disco: KINGSTON SA400S3
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x94f8f291

Disposit.  Inicio Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sda1             2048   7813119   7811072   3,7G 82 Linux swap / Solaris
/dev/sda2  *       7813120 468860927 461047808 219,9G 83 Linux


Disco /dev/sdb: 232,9 GiB, 250059350016 bytes, 488397168 sectores
Modelo de disco: 7AS              
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x4128309c

Disposit.  Inicio Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sdb1             2048 488397167 488395120 232,9G  7 Linux EXT4


Como se puede observar el disco usb tiene tiene una partición de tipo ext4 la cual modificaremos la tabla de particiones para cambiar esto a NTFS la cual es posible de leer con windows/Linux/MacOS.

2.- Se procede a editar la tabla de particiones usando fdisk como super usuario o root con el siguiente comando:

fdisk /dev/sdb1

Mostrará la siguiente salida:

Bienvenido a fdisk (util-linux 2.33.1).

Los cambios solo permanecerán en la memoria, hasta que decida escribirlos.

Tenga cuidado antes de utilizar la orden de escritura.

Orden (m para obtener ayuda):

Se procede a pulsar la tecla "d" y enter la misma será auto seleccionada y eliminada y eliminada de la tabla de particiones cargada en fdisk, luego se pulsa "n" y se pulsa enter varias veces dejando los valores predeterminado al regresar a la pantalla inicial de fdisk solo se debe pulsar la tecla "t" para asignar el tipo de sistema de archivos a asignar a la misma si desconocemos los valores para ello si pulsamos la tecla "L" mayuscula nos listará todos los sistemas de archivos disponibles en fdisk la cual se puede mostrar la siguiente salida:

0  Vacía           24  DOS de NEC      81  Minix / Linux a bf  Solaris         
1  FAT12           27  NTFS de WinRE o 82  Linux swap / So c1  DRDOS/sec (FAT-
2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  84  OS/2 oculto o h c6  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     85  Linux extendida c7  Syrinx          
5  Extendida       41  PPC PReP Boot   86  Conjunto de vol da  Datos sin SF    
6  FAT16           42  SFS             87  Conjunto de vol db  CP/M / CTOS / .
7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Utilidad Dell   
8  AIX             4e  QNX4.x segunda  8e  Linux LVM       df  BootIt          
9  AIX arrancable  4f  QNX4.x tercera  93  Amoeba          e1  DOS access      
a  Gestor de arran 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O         
b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor       
c  W95 FAT32 (LBA) 52  CP/M            a0  Hibernación de  ea  alineamiento Ru
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs         
f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT             
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
11  FAT12 oculta    56  Golden Bow      a8  UFS de Darwin   f0  inicio Linux/PA
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor       
14  FAT16 oculta <3 61  SpeedStor       ab  arranque de Dar f4  SpeedStor       
16  FAT16 oculta    63  GNU HURD o SysV af  HFS / HFS+      f2  DOS secondary   
17  HPFS/NTFS ocult 64  Novell Netware  b7  BSDI fs         fb  VMFS de VMware  
18  SmartSleep de A 65  Novell Netware  b8  BSDI swap       fc  VMKCORE de VMwa
1b  FAT32 de W95 oc 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
1c  FAT32 de W95 (L 75  PC/IX           bc  Acronis FAT32 L fe  LANstep         
1e  FAT16 de W95 (L 80  Minix antiguo   be  arranque de Sol ff  BBT

Como respuesta marcamos 7 (corresponde a NTFS) y se pulsa enter, y por ultimo se pulsa la tecla se especifica w y enter para que escriba los cambios en la tabla de particiones.

3.- Terminado esto solo falta formatear la particiones con el comando mkfs.ntfs y asignarle un nombre con el siguiente comando como super usuario root:

mkfs.ntfs -f -L DiscoUSB -v /dev/sdb1

Terminado el proceso se verá la siguiente impresión:

Cluster size has been automatically set to 4096 bytes.

Creating NTFS volume structures.

Creating root directory (mft record 5)

Creating $MFT (mft record 0)

Creating $MFTMirr (mft record 1)

Creating $LogFile (mft record 2)

Creating $AttrDef (mft record 4)

Creating $Bitmap (mft record 6)

Creating $Boot (mft record 7)

Creating backup boot sector.

Creating $Volume (mft record 3)

Creating $BadClus (mft record 8)

Creating $Secure (mft record 9)

Creating $UpCase (mft record 0xa)

Creating $Extend (mft record 11)

Creating system file (mft record 0xc)

Creating system file (mft record 0xd)

Creating system file (mft record 0xe)

Creating system file (mft record 0xf)

Creating $Quota (mft record 24)

Creating $ObjId (mft record 25)

Creating $Reparse (mft record 26)

Syncing root directory index record.

Syncing $Bitmap.

Syncing $MFT.

Updating $MFTMirr.

Syncing device.

mkntfs completed successfully. Have a nice day.

Solo sería montar dicha partición con:

mkdir -p DiscoUSB | mount /dev/sdb1 DiscoUSB/



Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.



jueves, 10 de junio de 2021

Instalación, Configuración, Host virtuales (VirtualHost) y certificado ssl NGINX + PHP

 

NGINX

¿Qué es NGINX?.

Nginx, pronunciado como “engine-ex”, es un servidor web de código abierto que, desde su éxito inicial como servidor web, ahora también es usado como proxy inverso, cache de HTTP, y balanceador de carga.
Algunas compañías de alto perfil que utilizan Nginx incluyen Autodesk, Atlassian, Intuit, T-Mobile, GitLab, DuckDuckGo, Microsoft, IBM, Google, Adobe, Salesforce, VMWare, Xerox, LinkedIn, Cisco, Facebook, Target, Citrix Systems, Twitter, Apple , Intel, y muchos más. Fuente: kinsta.com

1.- Conociendo que es NGINX, lo primero a realizar es instalar el mismo junto con php y letsencrypt (este ultimo para crear certificados ssl)  con el siguiente comando en Debian GNU/Linux:

apt-get install nginx letsencrypt python3-certbot-nginx php7.3 php7.3-bcmath php7.3-bz2 php7.3-cgi php7.3-cli php7.3-common php7.3-curl php7.3-dba php7.3-dev php7.3-enchant php7.3-fpm php7.3-gd php7.3-gmp php7.3-imap php7.3-interbase php7.3-intl php7.3-json php7.3-ldap php7.3-mbstring php7.3-mysql php7.3-opcache php7.3-phpdbg php7.3-pspell php7.3-readline php7.3-recode php7.3-snmp php7.3-soap php7.3-sqlite3 php7.3-sybase php7.3-tidy php7.3-xml php7.3-xmlrpc php7.3-xsl php7.3-zip

Para instalar php7.4 se explicará como instalar el mismo en una próxima entrada o publicación.

2.- Una vez hecho hecho esto solo hay que copiar los archivos de los proyectos web en sus directorios correspondientes si no se dispone de un proyecto web se puede usar un index.php de prueba con un contenido como "<?php phpinfo();" a continuación se puede hacer lo siguientes comandos:

mkdir -p /var/www/html/proyecto1 /var/www/html/proyecto2
echo "<?php phpinfo();" >  /var/www/html/proyecto1/index.php > /var/www/html/proyecto2/index.php

3.- En el siguiente paso se tendría que crear los virtual host para cada ruta respectiva ejecutando lo siguiente:

nano /etc/nginx/sites-available/www.proyecto1.com

Agregando el siguiente contenido mediante nano:

server {
        root /var/www/html/proyecto1;
        access_log /var/log/nginx/proyecto1/admin.log;
        
        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name www.proyecto1.com;

        charset utf-8;
    
        location / {
                try_files $uri $uri/ /index.php?$query_string;
                #add_header 'Access-Control-Allow-Origin' '*';
                #add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                #add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                #add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
        #location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #        try_files $uri $uri/ =404;
        #}

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
               deny all;
        }
}

Luego de crear el archivo en sites-avaliable se debe crear la carpeta para los logs con el siguente comando:

mkdir -p  /var/log/nginx/proyecto1

Y luego crear el enlace simbólico del archivo de configuración del virtual host a la carpeta de activación del mismo la cual es sites-enabled con el siguiente comando:

ln -s /etc/nginx/sites-available/www.proyecto1.com /etc/nginx/sites-enable/www.proyecto1.com

El paso para el virtual host del proyecto 2 es muy parecido sería ejecutar los pasos anteriores pero colocando la referencia a "proyecto2" y "www.proyecto2.com" respectivamente.

4.- El siguiente paso sería verificar la sintaxis y reiniciar NGINX con los siguientes comandos como super usuario (root).

nginx -t

Si la salida observamos algo como "syntax ok" es que todo esta bien para iniciar nginx con el siguiente comando como super usuario (root):

/etc/init.d/nginx restart

5.- El siguiente paso es instalar los los certificados ssl con letsencrypt el cual se instala mediante la ejecución de los siguientes comandos como super usuario (root):

certbot --nginx -d www.proyecto1.com --post-hook "/usr/sbin/service nginx restart"
certbot --nginx -d www.proyecto2.com --post-hook "/usr/sbin/service nginx restart"

6.- El ultimo paso sería reiniciar NGINX como super usuario (root) y probar entrando al dominio del virtual host:

/etc/init.d/nginx start

Y acceder a las url de los dominios www.proyecto1.com y www.proyecto2.com


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.


jueves, 3 de junio de 2021

Ventoy la solución definitiva para USB multiboot en Debian GNU/Linux

 

ventoy

Debido a la reducción de tamaño físico de las unidades de almacenamiento masivo extraíble prendrives/SDCards/entre otros, surge la pregunta ¿Cómo servicio técnico como puedo tener una unidad que me permita tener instaladores múltiples en dicha unidad para y que solo tenga que seleccionar uno de estos instaladores desde imágenes booteables?, realizando una búsqueda en Internet algo profunda y probar varias opciones de utilidades que ofrecían hasta cierto punto una solución algo complicada se encontró a la utilidad Ventoy, una excelente utilidad sencilla de utilizar para crear dispositivos de almacenamiento masivo extraíble multiboot USB o SD.

Pero surge la siguiente interrogante:

¿Qué es Ventoy?.

Ventoy es una utilidad gratuita y de código abierto que se utiliza para escribir archivos de imagen como archivos .iso , .wim , .img , .vhd (x) y .efi en medios de almacenamiento para crear unidades flash USB de arranque . Una vez que Ventoy está instalado en una unidad USB, no es necesario volver a formatear el disco para actualizarlo con nuevos archivos de instalación; basta con copiar los archivos .iso, .wim, .img, .img (x) o .efi en la unidad USB y arrancar desde ellos directamente. Ventoy presentará al usuario un menú de arranque para seleccionar uno de estos archivos. Fuente: Wikipedia.

¿En que sistemas operativos se puede usar esta Herramienta o utilidad?.

  • Linux (en este caso probado en debian GNU/Linux).
  • Windows
  • Sistemas operativos tipo unix como: FreeBSD, Unix, entre otros.
Documentación.

Se puede consultar la documentación oficial en la siguiente url:

https://www.ventoy.net/en/doc_news.html

Contribuir.

Al ser un proyecto de software libre puedes entrar en su sección de donativos en la siguiente url:

https://www.ventoy.net/en/donation.html

Descargar ventoy.

Para descargar ventoy solo de se debe seleccionar la opción de acuerdo al sistema operativo que se use en la siguiente url para iniciar la descarga:

https://www.ventoy.net/en/download.html

Creando un pendrive/SDcard multiboot USB o SDcard con ventoy:

A continuación se realiza (en Debian GNU/Linux) en una serie de simples pasos:

1.- Descargar la herramienta disponible para linux como un archivo empaquetado .tar.gz:

wget https://github.com/ventoy/Ventoy/releases/download/v1.0.45/ventoy-1.0.45-linux.tar.gz

2.- Una vez teniendo el archivo empaquetado como .tar.gz solo hay que descomprimir el mismo.

tar -xvf ventoy-1.0.45-linux.tar.gz

3.- Luego de ejecutar dicho comando se creará un directorio "ventoy-1.0.45-linux" solo debe entrar en el mismo con:

cd ventoy-1.0.45

4.- Antes de ejecutar la herramienta de debe conectar el pendrive a la pc y en modo super usuario (root) ejecutar:

fdisk -l

5.- Observando la salida de fdisk debe aparecer una unidad /dev/sdbX se debe observar que la misma solo disponga de 1 partición y que la misma esta en el correcto formato FAT32 si esto es así solo se debrá continuar los pasos a continuación si en dado caso no es así de deberá usar fdisk /dev/sdb para editar la tabla de particiones y escribir los cambios luego formatear la partición con mkfs.vfat /dev/sdb1 (en este proceso se perderán datos en dicha unidad debe respaldar la información contenida en la misma).

El siguiente paso a continuación el cual es ejecutar como super usuario (root) sobre la unidad usd o sd el comando de instalación sobre la misma teniendo en cuenta que se perderán los datos en dicha unidad en esta acción: 

./Ventoy2Disk.sh -i /dev/sdb

Terminado el proceso el cual es apenas de unos pocos segundos para unidades de rápida lectura y escritura, el sistema operativo reconocerá de nuevo el dispositivo solo se monta y se copia alguna imagen .iso o algún archivo soportado por este que tenga un sistema arrancable y solo luego hay que desmontarlo una vez copiada la imagen y extraer la unidad.

El siguiente paso usa el programa de virtualización de qemu para verificar que todo el proceso fue exitoso asumiendo que se tiene qemu instalado se ejecuta como super usuario (root) teniendo el pendrive de nuevo conectado al computador el siguiente comando:

qemu-system-x86_64 -usb  /dev/sdb -m 1024

Se mostrará la siguiente pantalla si todo el proceso fue exitoso y la imagen iso se encuenta en buen estado y que tenga un sistema operativo booteable:


Mostrando que todo el proceso fue exitoso y ya se dispone de un USB / SD multiboot.


Si te gustan las entradas de este blog y quieres mayor actividad y mejores explicaciones y tutoriales no dudes entrar en la pagina de donaciones de este blog y realizar un donativo o patrocinar este en cualquiera de las opciones disponibles y que se hacen referencia allí.