[Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Todo lo relacionado con la elección e instalación de las diferentes distribuciones y los problemas que se presentan durante el proceso.

Moderadores: doc, mcun

Responder
hugoernestogf
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Vie Oct 30, 2020 10:21 am

[Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por hugoernestogf »

Hola a todos.
Hace solo unas horas que me decidí escribir un post a medida de tutorial sobre el siguiente tema:
Como crear un debian-live con (debootstrap y squashfs-tools)

Se que existen disímiles herramientas que hacen el trabajo sencillo, con solo clickear botones a la hora de hacer distribuciones lives, como es el caso de la herramienta Systemback, pero no siempre es el mejor método además de el más ligero. Les explico, en el caso particular de systemback una vez hecho el live por si no lo saben carga consigo cierta y determinada información personalizada que se ajusta a la PC donde fue generado, otra cosa más es que luego él (systemback) se queda incluido dentro. Y aveces queremos que sea una distro limpia y lo más ligera posible. (saben muy bien que esto ultimo es muy importante cuando se trata de colocarlas en dispositivos USB).

Voy a dejar bien claro los requisitos previos, ya que me gustaría que más adelante entiendan a la perfección todo lo que voy explicando.
1-se entiende que si estás en este nivel, sabes trabajar por lo menos con lo básico de linux y el trabajo con consola, por ejemplo montar particiones, montar discos, crear directorios y utilizar los gestores de manipulación e instalación de paquetes (apt, aptitude, apt-get) y dpkg. Los tres primeros están entre paréntesis porque aunque no son exactamente lo mismo tienen funciones similares.
2-Adentrándonos un poco más en lo que nos interesa, lean bien esto que es lo más importante para poder entender. → Ya que en distintas páginas etc.… el texto puede quedar en distinta posición con respecto al final de la linea y el salto de linea ocuparemos las siguientes reglas:
-si la linea inicia con # esto significa que estoy comentando
-si la linea inicia con $ aunque me este refiriendo a que usaremos la cuenta de root vamos a idearnos que solo significa el inicio de la linea de comando y que no se acaba hasta que veamos un # u otro $
-las demás lineas que comienzan con cualquier otro símbolo o letra significa que es la continuación de la linea anterior o sea que la linea de arriba y esa linea son una sola linea de ordenes.
3-Para este tutorial se entiende que estamos logueados en la cuenta de (root)
Para la ejecución de esta tarea debe poseer un sistema operativo LINUX preferentemente debian o que comparta similitudes y compatibilidad en cuanto a paquetes y comandos.
Dicha esta larga introducción hagamos los preparativos.
Debemos tener instaladas las siguientes herramientas las cuales son super sencillas de adquirir en cuales quiera de las distribuciones de debian hasta el momento.
-(debootstrap) Esta si le cogemos la vuelta puede que la usemos una vez en la vida XD.
-(squashfs-tools)
Estas que siguen solo las necesitamos pero no para el sistema anfitrión
-(live-boot)
-(live-boot-initramfs-tools)
En el paso siguiente los dejo a su conveniencia y muchos me critican por hacerlo pero es muy util para continuar y trasladar el proyecto donde sea que vaya y es lo siguiente:
crear un archivo img para meter todo lo que vamos a hacer ahi.
Comencemos……..

#1
#
#Crear directorio de trabajo
$ mkdir /mi_distro
#
#2
#
#Crear Img para el manejo y guardado del distro
# La X se substituye por el numero que determinemos poner
$ dd bs=1 count=0 if=/dev/zero of=disk_X.img seek=5G
$ losetup -f -v disk_X.img
#
#Aquí hay que poner el comando losetup sin nada más para
#determinar el numero que vamos a substituir por la X
$ mkfs.ext4 /dev/loopX
$ losetup -d /dev/loopX
$ du --apparent-size -h disk_X.img
$ du -h disk_X.img
#
#Montamos el archivo img
$ mount (/(dirección)/(img_de_la_disk_X.img)) /mi_distro
#
#3
#
#Carpeta y montaje del dvd principal de nuestra distro
$ mkdir /dvd1
$ mount (/(dirección)/(ISO_de_la distro)) /dvd1
#
#4
#Haciendo la instalación del minbase o sistema base.
#
$ debootstrap --arch=i386 --no-check-gpg --variant=minbase stretch "/mi_distro" file:////dvd1
#
#luego de esto desmontamos la iso para mas adelante
#montarla dentro de nuestra distro
$ umount /dvd1
#
#RECUERDE ESTE PASO LO PUEDE HACER
#DESDE INTERNET TAMBIEN E INCLUSO
#ORIGINALMENTE DEBOOTSTRAP INTENTA
#ACCEDER A LAS MIRRORS DE INTERNET
#
#5
#
#montar unos directorios ahí que me puedes matar pero ni
#se para que son pero este paso es importante
$ mount --bind /dev /mi_distro/dev
$ mount -t devpts /dev/pts /mi_distro/dev/pts
$ mount -r -t proc /proc /mi_distro/proc
$ mount -r -t sysfs /sys /mi_distro/sys

#
#6
#
#En este paso yo personalmente, ya tengo un directorio que
#pego en la raíz del nuevo sistema, el cual contiene lo
#siguiente:
#/BORRAR/dvd1
#/BORRAR/dvd2
#/BORRAR/(y así etcétera de repos que tengamos en dvds)
#
#Un directorio que contiene la ruta y el archivo
#(sources.list) que es el encargado de las mirrors
#o direcciones al las que acceder para adquirir
#los paquetes a instalar (pueden ser de internet o locales)
#/etc/apt/sources.list
#Contenido del sources.list
$ deb [trusted=yes] file:///BORRAR/dvd1 stretch main
$ deb [trusted=yes] file:///BORRAR/dvd2 stretch main
$ deb [trusted=yes] file:///BORRAR/(y así etcétera de repos que tengamos en dvds)
#Lo anterior si es local.
#Lo siguiente si es de un sitio web
$ deb [trusted=yes] ftp://(dirección fulanadetal) stretch main
# o
$ deb [trusted=yes] http://(dirección fulanadetal) stretch main
#
#7

#Momento de hacer el chroot
#El chroot es un cambio de raíz que se hace en la terminal
#(consola) con el objetivo de cambiar hacia el directorio
#de trabajo de orto sistema operativo (Linux) que tengamos
# ya sea instalado o como en este caso instalado en la img

#Pasos:
# #abrimos el terminal (o consola)
# #lo anterior preferentemente en usuario root o con
# #el comando (sudo)
# #Tecleamos para root (chroot /mi_distro/)
# #Para usuarios sudoers (sudo chroot /mi_distro/)

##a partir de aquí se sobreentiende que estamos logueados
##como root o anteponemos sudo para cada comando
#
#8
#
# Cambia la contraseña de root (SÚPER IMPORTANTE
#PORQUE DESPUÉS NO PUEDES ENTRAR)
#
$ passwd
#
#9
#
#actualizamos la lista de los paquetes.
#
$ apt update
#
#Si están bien las direcciones en el archivo sources.list
#todo debe ir bien
#
#10
#
#Ahora vamos a instalar ciertos paquetes que harán que
#nuestro sistema sea arrancable
#
$ apt install systemd systemd-sysv dbus-user-session
$ apt install systemd-shim aptitude
#
#(aptitude<-->apt<-->apt-get) son usados con objetivos
#similares a mi me gusta tenerlos instalados los tres
#he aquí una muestra de que sirven mas o menos
#para lo mismo
#
$ apt-get install busybox cpio
$ apt install linux-base linux-image-4.9.0-8-686-pae
$ aptitude install initramfs-tools initramfs-tools-core
#
#OjO lo anterior fue una muestra pero también
#tiene que instalarlos
#
#Si hacemos una instalación normal del sistema creo que
#el editor de texto en consola estará instalado pero en
#este caso no, por lo que lo instalamos.(es muy útil para
#editar archivos de texto en consola cuando aún no tenemos
#un ambiente gráfico(entorno de escritorio))
#Un ejemplo de la edición de un archivo que muchas veces
#lo editamos por consola es nuestro ya conocido
#(sources.list)
#Bueno sin más vueltas lo instalamos
#su nombre es nano
#
$ apt install nano
#
#Instalamos los paquetes de live-boot
#estos rara vez vienen dentro de los DVDs que se
#pueden adquirir, pero no es problema
#pues en las repos de debian están y no piden dependencias
#
$ apt install live-boot live-boot-initramfs-tools
#
# Revisamos que los paquetes estén correctamente instalados
#con el siguiente comando:
#
$ apt-get --fix-broken install
#
#/////////////////////////////////////////////////////////////
#// # A partir de aquí instalamos lo que deseemos
#// # ya sea ambientes de escritorio si asi queremos
#// # prácticamente lo que queramos
#// # y pasamos a la siguiente fase
#/////////////////////////////////////////////////////////////
#
#============================================================
#11
#
#Limpiando la basura
#1-Limpiamos el caché de apt con:
$ apt clean
$ apt auto clean
#
# vamos al archivo /mi_distro/etc/apt/sources.list
# lo abrimos y borramos todo lo que tiene escrito
# de nuevo en nuestra consola
# tecleamos:
$ apt update
#
# lo anterior hace que apt olvide de donde consigue
# los paquetes para poder cambiar nuestras mirrors a gusto
# en próximas ocasiónales
#
# Salimos del chroot
$ exit
#
# Borramos el historial del bash
$ rm /mi_distro/root/.bash_history
#
# Movemos los links antiguas del kernel que están en el
#directorio raíz de nuestro nuevo sistema a la dirección
# que vamos a crear a continuación
$ mkdir /mi_distro/boot/links
#
# Los links son bastante fáciles de determinar, son los
# únicos archivos en el directorio raíz de nuestro nuevo
# sistema.
#
#
#en este paso si eres user con experiencia lo haces como
#te convenga yo como no se hacerlo reinicio la pc
#para que todo lo que se montó anteriormente se desmonte
#solo.
#luego de iniciar sesión continuamos repitiendo el
# final del paso #2 el cual es el siguiente:
#
#
#Montamos el archivo img
$ mount (/(dirección)/(img_de_la_disk_X.img)) /mi_distro
#
#Borramos la carpeta que habíamos copiado que se llamaba
#BORRAR
#y ya estamos listos para hacer nuestro SQUASHFS
#
#12
#
# Haciendo nuestro SQUASHFS
#
# Debes saber que nuestro squashfs se compone de la
#siguiente manera:
#Ejemplo:
# Si mi SQUASHFS lo queremos llamar (pepino) sería:
#(pepino).(extensión_llamada_squashfs_siempre_en_minúsculas)
# Quedando así:
# pepino.squashfs
#
# La orden es la siguiente:
$ mksquashfs /mi_distro ./pepino.squashfs -e boot -comp xz -b 1M
#
# Donde:
#
# mksquashfs --> es el comando principal de la orden
# /mi_distro --> directorio de nuestra hermosa o desastrosa
# creación
#
# Aquí hacemos una pausa porque lo que viene lleva vital
# importancia.
# en el caso de ./pepino.squashfs es nuestro squashfs pero
# se ubicará en un directorio dependiendo de dos factores
# 1- dependiendo del directorio en el que estamos situados
# con nuestra terminal o
# 2- anteponiéndole una ubicación especifica
# #este ultimo el más recomendado ya que puede que donde
# estemos situados puede que no haya espacio suficiente
# o simplemente no nos combine situarlo ahí
# # para esto la ruta se coloca antes del punto y
# terminando en slash, así:
# /(mi_ruta)/./pepino.squashfs
# #Ojo con esto otro qu no dije al principio:
# linux entiende que cuando existe un espacio es que
# termina la orden en curso y empieza otra por lo que
# aconsejo siempre que cuando vamos a introducir rutas
# en nuestra consola pongámosla entre comillas, Ejemplo:
# "/(mi ruta con espacios en los nombres)/"
#
# #Continuemos
# -e boot --> (-e) se utiliza para indicar que no comprima
# determinada carpeta, en este caso (boot)
# ya que es donde se encuentra nuestro
# kernel
# -comp xz --> (-comp) esto indica comprimir el squashfs
# en este caso en (xz) que es la
# más alta compresión admitida por
# mksquashfs.
# -b 1M --> (-b) en este punto esto es extra yo lo utilizo
# para aumentar el tamaño del bloque a (1M)
# lo que hará que se comprima aún más pero
# ojo las fotos y audio perderán calidad.
#
# # Ahora encienda su cafetera hágase un café, estire las
# piernas, y practique deportes que esto demora.
# #(siempre dependiendo del rendimiento de su pc)
#
# #una vez terminado de comprimirlo, ya podemos arrancarlo.
#
#13
#
# Cosechando el fruto.
#
# # Una vez comprimido nuestro SQUASHFS y teniendo
# instalado los programas necesarios para el arranque
# en vivo descritos en el punto #10 podemos colocarlo y
# arrancarlo desde cualquier dispositivo de almacenamiento,
# ya sea disco duro interno, USB, o CD-DVD.
#
# # En este caso solo describiré los pasos más comunes y
# sencillos que son arrancarlos sesde un disco duro o
# un dispositivo USB.
#
# #No voy a dar detalles sobre como instalar el MBR y el
# grub a un dispositivo determinado ya que en internet
# se sobran los tutoriales y también hay que dejarle el pan
# de cada día a los demás (jajajajajajajajajajajaja...)
#
# #ADEMÁS eso es muy sencillo.
# #Solo recuerde Buscar como
# #instalar GRUB4DOS en un disco
# #(Sin formatearlo)
# #eso es suficiente
# #Una pista mas, busque todo lo relacionado con:
# #(bootice)
#
# #Continuemos.
# #Conseguir el archivo (gldr)
# #Crear un archivo llamado (menu.lst)
# #Crear una carpeta como quieramos llamarle, en este caso
# (MILIVE)
# # todo va colocado en el directorio raíz del dispositivo
# #Copiar el archivo kernel que debe comenzar con la
# palabra (vmlinuz) dentro de la carpeta MILIVE
# #Copiar el archivo initrd que debe comenzar con la
# palabra (initrd) dentro de la carpeta MILIVE
#
# #en el caso de que borraras tu img no hay problema
# el archivo squashfs se puede montar como cualquier
# archivo imagen, Ejemplo
# ## mount /(ruta_de_nuestro_pepino)/pepino /(destino)/
#
# recuerde que para montar lo que sea por comando
# el destino debe existir o crear la carpeta.
#
# #por ultimo copiamos nuestro SQUASHFS dentro de la carpeta
# MILIVE.
#
# #Ya todo está en su sitio, es hora de arreglar el archivo
# menu.lst
#
# #abrimos el archivo menu.lst con un editor de texto
# para introducir las siguientes lineas:
#
#
title (como quiera que vallamos a llamar a nuestro live)
kernel /MILIVE/(nombre completo del vmlinuz) boot=live live-media-path=MILIVE
initrd /MILIVE/(nombre completo del initrd)
#
#
# # Y listo, reiniciamos el pc y booteamos cualquiera
# que sea el dispositivo en el que pusimos nuestra distro.
#
# #disfruuuuuteeeen d(*_*)b
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
============================================================
#
===========================================================================================
= # POR FAVOR NOTIFIQUEN ERRORES DE ESCRITURAS EN LOS COMANDOS
= #
= # SE SOBREENTIENDE QUE SI USTED ESTÁ HACIENDO SU PROPIA DISTRO
= #ES PORQUE YA SABE UTILIZAR POR LO MENOS BASICAMENTE A UN
= #SISTEMA LINUX.
===========================================================================================

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3557
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por doc »

muchas gracias por tu aportación. Ahora habrá que estudiarlo con calma, que has hecho un esfuerzo importante...
(Ah y, como pedías, ya te he borrado (creo...) el duplicado que habías 'colgado')
Saludos cordiales

Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3557
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por doc »

bueno, hugo, en primer lugar gracias por tu esfuerzo, me lo he leido (mejor dicho, me lo he copiado a un documento, y lo he tratado de ir entendiendo y poniendo algunas cosas a mi manera para entenderlas mejor)... y, aunque hay algún punto que aún lo tengo bastante confuso, quisiera hacerte una pregunta previa: hablas de DVD de Debian, etc... ¿Tu procedimiento está dirigido a crear una LiveCD 'genérica' 'desde cero'... o por el contrario sirve para crear un Live 'del Debian que tienes instalado, y personalizado'?

hugoernestogf
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Vie Oct 30, 2020 10:21 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por hugoernestogf »

Doc
La herramienta squashfs-tools puedes usarla como te convenga, tanto para comprimir el sistema que tienes intalado como el que ejemplifico yo que es crear uno sesde cero dentro de una chroot (un cambio de raiz donde haces una instalacion de debian estando corriendo el sistema)
Pero para la opcion uno que menciono aqui es un poco tediosa, porque mientras tienes el sistemacorriendo es un poco complicado hacerle un squashfs porque los directorios proc y sys están en funcionamiento y están ocupados asi que es más facil hacercelo a una instalación muerta (que no está brindando servicio)
En cuanto a lo que hablo de DVDs me refiero a que poseo en mis manos 3 DVDs de repos de debian (el primero incluye el instalador) permitiendome hacer todo el proceso offline pero tu puedes arreglar el sources.list a tu gusto ya sea offline o de un ftp de debian.
Asi que conclucion en realidad la herramienta sirve para las dos opciones que preguntas pero en el caso del sistema anfitrion hasta ahora solo systemback conoce que hacer yo no se como hacerlo y (en realidad systemback utiliza y hace todo lo que yo explique en la ultima parte del tutorial lo que él lo hace sobre el propio sistema cosa que manualmente ahún no se como se hace)

hugoernestogf
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Vie Oct 30, 2020 10:21 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por hugoernestogf »

Pero si como preguntas, está dirigido a hacer un live desde cero.

hugoernestogf
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Vie Oct 30, 2020 10:21 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por hugoernestogf »

Por cierto lo olvidaba. Nada de esto hubiese sodo posible sin la ayuda de un gran amigo mio, no voy a mencionar su lombre completo por seguridad.
(carlosagh)

DiegoBD
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Mié Feb 19, 2020 3:46 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por DiegoBD »

Buenos dias amigo hugoernestogf, le agradezco inmensamente tu aporte, estoy leyendolo y estudiandolo antes de empezar a implementrlo pues todavia me faltan algunos conocimientos para ello.
Pero una preguta, Según este párrafo tuyo:
"...Asi que conclucion en realidad la herramienta sirve para las dos opciones que preguntas pero en el caso del sistema anfitrion hasta ahora solo systemback conoce que hacer yo no se como hacerlo y (en realidad systemback utiliza y hace todo lo que yo explique en la ultima parte del tutorial lo que él lo hace sobre el propio sistema cosa que manualmente ahún no se como se hace)..."
Con este tutorial no se puede crear un Live de mi sistema operativo instalado y personalizado?
Pero, dices al principio, que la herramienta squashfs-tools tambien nos sirve para comprimir el sistema que tenemos instalado y crear el Live a partir de ahí?
Agradezco nuevamente tu esfuerzo y espero poder usarlo y adaptarlo a mis necesidades

hugoernestogf
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Vie Oct 30, 2020 10:21 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por hugoernestogf »

Si se puede pero haciendolo desde otro sistema anfitrion montando la particion donde está el que instalastes.(ya te mande una respuesta pero tube problemas para enviarla asi q no se si te llegue repetida)
DiegoBD escribió:
Lun Dic 14, 2020 3:41 pm
Buenos dias amigo hugoernestogf, le agradezco inmensamente tu aporte, estoy leyendolo y estudiandolo antes de empezar a implementrlo pues todavia me faltan algunos conocimientos para ello.
Pero una preguta, Según este párrafo tuyo:
"...Asi que conclucion en realidad la herramienta sirve para las dos opciones que preguntas pero en el caso del sistema anfitrion hasta ahora solo systemback conoce que hacer yo no se como hacerlo y (en realidad systemback utiliza y hace todo lo que yo explique en la ultima parte del tutorial lo que él lo hace sobre el propio sistema cosa que manualmente ahún no se como se hace)..."
Con este tutorial no se puede crear un Live de mi sistema operativo instalado y personalizado?
Pero, dices al principio, que la herramienta squashfs-tools tambien nos sirve para comprimir el sistema que tenemos instalado y crear el Live a partir de ahí?
Agradezco nuevamente tu esfuerzo y espero poder usarlo y adaptarlo a mis necesidades

hugoernestogf
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Vie Oct 30, 2020 10:21 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por hugoernestogf »

OJO A ESTO.
Respondiendo a "DiegoDB" fue que me vino a la mente.
Tambien se puede hacer a uno instalado solo hay que bootear otro sistema que haga de anfitrion, montar la partición de nuestro sistema (preferentemente en una carpeta lo mas cercana a la raiz del anfitrion que puedas para que no haya problemas con el comando chroot).
No se debe olvidar tampoco instalar en el sistema que vamos a comprimir las aplicaciones (live-boot) que explico en el tutorial.

DiegoBD
Forista Nuevo
Forista Nuevo
Mensajes: 12
Registrado: Mié Feb 19, 2020 3:46 am

Re: [Solucionado] Como crear un debian-live con (debootstrap y squashfs-tools)

Mensaje por DiegoBD »

Ok. hugo, gracias. Es el mismo proceso pero montando un live, por ejemplo, y montar nuestra partición tal como lo explicas.
me pondré en esa tarea.
SAludos

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje