viernes, 8 de septiembre de 2017

Crea tu pen drive arrancable desde sistemas Linux sin utilizar programas adicionales.

                     (P) Hugo Napoli, 2017                  

Instructivo basado en sistemas Linux 1, para convertir una imagen de sistema operativo 2 contenida 3 en un dispositivo pasivo de almacenamiento 4, en arrancable 5 (en inglés “bootable” [mal escrito en español como “booteable” o “buteable”]).

* * * Instrucciones válidas para imágenes de software creadas con Clonezilla y compatibles * * *

  1. Este procedimiento, no funcionará en Sistemas Operativos Windows.

  1. Nos referimos al proceso de haber clonado previamente un Sistema Operativo entero, para poder volcarlo sobre la misma u otra máquina, de idénticas o muy     similares características de hardware. Este procedimiento es comúnmente llamado “recuperación”, “recovery”, “imagen de fábrica”, “reseteo”, etc.

  1. Para que este procedimiento funcione, la imagen tiene que estar descomprimida y copiada en el pen drive o medio de almacenamiento.

  1. Los dispositivos activos de almacenamiento (smartphones y tablets, por ejemplo), no poseen las características necesarias para realizar todo este procedimiento. Los híbridos (reproductores de mp3, ipods, etc.), tampoco. Solo serán útiles aquéllos que sean pasivos (pen drives, discos duros externos, tarjetas de memoria tipo “SD”...).

  1. Convertir en arrancable o bootable una imagen clonada, significa “darle vida” para que “despierte” y funcione.

El dispositivo a utilizar, es conveniente que posea el doble de tamaño de la imagen que estará contenida en él. Por ejemplo, para una imagen de 3 GB, sería conveniente utilizar un pen drive de -mínimo- 6 GB.



Guía “paso a paso”.

I) Formatear un pen drive utilizando “FAT 32” como sistema de archivos.

II) Colocar en él la imagen descomprimida. Todos los archivos y carpetas de la imagen, deben quedar a la vista apenas se “abre” el pen drive para ver su contenido. Esto se conoce como “colocar en la raíz del pen drive la imagen descomprimida”.

III) Abrir la terminal o consola. Solicitar privilegios de superusuario (convertirse en “root”).

IV) Necesitamos averiguar en dónde se hallan el punto de montaje y la ubicación real del pen drive.
  a. Si conocemos el nombre lógico del pen drive (en este caso, el nombre de ejemplo es “MG1_Ubuntu”, podremos ejecutar los comandos mount | grep MG1 (utilizando una parte del nombre) o mount | grep MG1_Ubuntu (utilizando el nombre completo) y verificar el punto de montaje del pen drive en el sistema.
    b. Si no conocemos el nombre lógico del dispositivo, ejecutaremos sencillamente mount (sin parámetros). La diferencia radicará en que tendremos que analizar la información para saber en dónde está montado nuestro pen drive.

Para el procedimiento “a”, la información proporcionada por la consola, será parecida a esta:

/dev/sdb1 on /run/media/estudiante/MG1_Ubuntu type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

Si utilizamos el procedimiento “b”, la consola lucirá más o menos así:

proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=1474056k,nr_inodes=368514,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
/dev/sda5 on / type ext4 (rw,relatime,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,mode=755)
mqueue on /dev/mqueue type mqueue (rw,relatime)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
/dev/sda2 on /media/windows type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
/dev/sda1 on /boot type ext4 (rw,relatime,data=ordered)
/dev/sda8 on /home type ext4 (rw,relatime,data=ordered)
/dev/sda6 on /tmp type ext4 (rw,relatime,data=ordered)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=296260k,mode=700,uid=1000,gid=1000)
sunrpc on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sdb1 on /run/media/estudiante/MG1_Ubuntu type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

En ambos casos, se puede apreciar que el pen drive está montado en /run/media/estudiante (ver el texto resaltado en fucsia), y que su ubicación real es /dev/sdb1 (ver el texto resaltado en verde) lo cual era la información que necesitábamos averiguar .

V) a. En la consola, “vamos” hasta la ubicación resaltada en fucsia: cd /run/media/estudiante/
   b. “Entramos en el pen drive: cd MG1_Ubuntu
   c. Una vez allí, “entramos” en el directorio “utils” y luego en el directorio “linux”:
   cd utils , y luego
   cd linux

VI) Ejecutamos el archivo makeboot.sh, pasándole la ubicación real del pen drive: bash makeboot.sh /dev/sdb1

La consola, devolverá la siguiente información:
This command will install MBR and syslinux bootloader on this machine
--------------------------------------------
Machine: To be filled by O.E.M.:

Disk /dev/sdb: 7.3 GiB, 7803174912 bytes, 15240576 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa32efbab

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 15239167 15237120  7.3G  b W95 FAT32

--------------------------------------------
Are you sure you want to continue?
[y/n]

a lo cual responderemos con una y y un ENTER.

VII) Inmediatamente, la consola volverá a comunicarse con nosotros:

OK! Let's do it!
--------------------------------------------
sdb1 is not marked as bootable! The partition table of /dev/sdb:
--------------------------------------------
To be filled by O.E.M.:

Disk /dev/sdb: 7.3 GiB, 7803174912 bytes, 15240576 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa32efbab

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 15239167 15237120  7.3G  b W95 FAT32

--------------------------------------------
Do you want to mark it as bootable ?
[y/n]

De nuevo, responderemos con una y y un ENTER (a esta pregunta y a las siguientes):

Do you want to install mbr on /dev/sdb on this machine "To be filled by O.E.M." ?
Do you want to install the SYSLINUX bootloader on /dev/sdb1 on this machine "To be filled by O.E.M." ?

Es todo. La imagen contenida en el pen drive, debería ser arrancable.

El sistema Linux utilizado para realizar este instructivo, ha sido Mageia 5.
Tutorial realizado por Hugo Napoli - https://hugonapoli.blogspot.com.uy/






Descarga este mismo instructivo haciendo clic aquí: