¿Puedo construir una ISO de Ubuntu desde un manifiesto?


Respuestas:


21

El filesystem.manifest se genera con el comando:

dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest

La sintaxis es así package_name version, Ejemplo:

 xserver-xorg-video-nouveau  1:0.0.16+git20110411+8378443-1

El formato de dpkg --get-selectionses ligeramente diferente,package_name install

Ejemplo

xserver-xorg-video-nouveau  install 

Para que pueda usar el archivo, probablemente en más de una forma,

apt-get install -y $(awk '{print $1}' filesystem.manifest)

Para ser honesto, después de hacer algunas iso personalizadas a lo largo de los años, hay una curva de aprendizaje sobre cómo funciona. Una vez que comprenda algunas cosas, no es demasiado difícil, es solo que el conocimiento requerido es moderadamente grande y no hay una única fuente de información actualizada.

Usas 2 directorios de compilación

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

personalizado : este directorio contiene todos los archivos que irán a la iso final. Contiene el sistema de archivos raíz, un núcleo, un initramfs e isolinux.

rootfs : este directorio contiene el sistema de archivos de CD en vivo y usted comprime este directorio (usando mksquashfs) e lo incluye en el CD. Puede compilar esto con debootstrap (Live D desde cero) o extraer el sistema de archivos desde ubuntu-desktop.iso (personalizar un CD en vivo). Consulte los enlaces wiki de ubuntu a continuación para obtener más detalles.

puntos clave

1) Comprenda mksquashfs: utiliza mksquashfs para comprimir el sistema de archivos raízcasper/filesystem.squashfs

sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2) Comprenda isolinux: esto hace que la iso sea de arranque, así como su menú de CD (arranque). Ver Arch Linux Wiki syslinux .

Puede usar grub2 como alternativa a isolinux, pero luego deberá comprender cómo funciona grub2;). La mayoría de los CD en vivo todavía usan isolinux.

3) Cómo hacer un initramfs. El initramfs es un segundo sistema de archivos, usado para arrancar. A menudo, cuando tiene un problema (la imagen de arranque personalizada no funciona, los módulos del núcleo no se cargan), y no puede entender por qué mirar su sistema de archivos raíz, la respuesta es muy probable en initramfs.

#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz

Luego mueves tu nuevo initrd.lz a tu directorio de compilación personalizado, custom/casper/initrd.lz

4) casper. Casper y las secuencias de comandos casper se encuentran en 3 ubicaciones, y las 3 pueden desempeñar un papel. Todos son scripts de bash, y en algún momento seguramente querrá revisarlos.

Un huésped - /usr/share/initramfs-tools/scripts/casper

B. sistema de archivos raíz - personalizado / usr / share / initramfs-tools / scripts / casper

C. en initramfs: consulte el directorio / scripts.

Ver Ubuntu man casper

5) Realiza personalizaciones en la interfaz de usuario / aplicaciones en /usr/share, /usr/share/gnome*por ejemplo, las ubicaciones exactas varían con el lanzamiento, /usr/share/gnome-background-properties/ubuntu-wallpapers.xmles un clásico y bastante estándar en todas las versiones.

6) Si no puede realizar personalizaciones /usr/share/, use /etc/skel, aquí /etc/skel/.bashrchay un clásico, ese archivo se copia a ~ / .bashrc. Puede colocar varios archivos confg allí, para firefox o gnome o lo que no, pero / usr / share es mejor si es posible (varía según la configuración).

7) mkisofs: utiliza mkisofs para convertir su directorio de compilación en una iso

cd ~/custom
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .

8) Persistencia. Puede usar la persistencia con muchos CD en vivo, incluido el CD de ubuntu-desktop y un CD personalizado, esto lo implementa casper.

A. root - casper montará una partición o archivo etiquetado como casper-rwsuperposición de vaca en /. Si luego instala un paquete o modifica un archivo de configuración, los cambios persistirán durante el reinicio.

Use esto con moderación. Si actualiza todos los paquetes, ocupará mucho espacio. También encuentro que este método a veces tiene errores.

B. Inicio - el alféizar de casper monta una partición o archivo etiquetado home-rwcomo a como una superposición de vaca en / inicio.

Prefiero esto ya que mis marcadores de Firefox y mis datos privados se conservarán en las botas y me parece más confiable.

Inicio persistente (cambiar a casper-rw para un persistente /)

# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000

# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here

#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw

Coloque home-rw/ (en el directorio raíz de una partición) o en una unidad flash (no en un subdirectorio).

Cuando inicie el CD en vivo, presione la F6tecla, ellos Esc, agreguen la opción persistenta los parámetros de inicio, frente al '-'

quiet splash persistent --

Las secuencias de comandos de inicio de casper encontrarán un montaje automáticamente.

Ver Ubuntu wiki Persistence : la página wiki de ubuntu solo trató sobre casper-rw, pero home-rw está referenciada en los scripts de casper y funciona de la misma manera, solo se ha cambiado el nombre.

Consulte esta publicación en los foros de Ubuntu para ver una captura de pantalla (aunque con diferentes opciones).

C. Puede habilitar la persistencia con varias de las herramientas gráficas, por ejemplo, unetbootin. Las herramientas gráficas (que yo sepa) usan casper-rw.

OK, ahora que entiendes todo eso, estas dos páginas comenzarán a tener más sentido

Ubuntu wiki live cd desde cero

Ubuntu wiki personalizar CD en vivo

Google

Necesitarás google. Encontrará fragmentos de consejos en todo Internet.

Ejemplo: cómo cambiar la pantalla de inicio de Live CD

Debian Live

Ahora que comprende todo eso, use los scripts de Debian Live . No dejes que el nombre te engañe, estos scripts funcionan bien en cualquier sistema .deb, incluidos Mint y Ubuntu.

Instalar

sudo apt-get install live-build

Hay una interfaz gráfica

sudo apt-get install live-magic

magia viva

Comprende que la interfaz gráfica de usuario de magia en vivo puede fallar, al igual que fallan remastersys y otras interfaces gráficas. En ese caso, recurres a los scripts de construcción en vivo (live-magic generará un directorio de construcción).

Toma un tiempo aprender los scripts de construcción en vivo y el diseño / estructura del directorio

Vea el Debian Live Manuel Aye, es largo, solo trabaje un iso a la vez.

La ventaja de los scripts de construcción en vivo, una vez que comprende los componentes de un CD en vivo, los scripts automatizan más del 90% de la compilación, y realizar un cambio es una simple edición de un archivo de configuración (generalmente) o, a veces, construir un initramfs.

Demasiado largo

Si eso fue demasiado largo para usted, respire profundamente, relájese y trabaje la información una por una. Prometo que comenzará a tener sentido y encontrará que el tiempo vale la pena.

Si comienza con otro conjunto de herramientas, vuelva a este conjunto de herramientas y después de algunas iso apreciará este conjunto de instrucciones;)

Mi versión 12.04 personalizada, es compatible con el gma500, solo 2d (no 3d) fuera de la caja (hará que la iso esté disponible públicamente para la multitud de gma 500 en los próximos días).

gma 500


1
Oh mi. Esta es una respuesta maravillosa. Sé lo que haré esta noche.
jrg

Agradable. Si esto no obtiene 40 votos, nadie debería obtenerlos;)
Rinzwind

Para cualquier persona interesada, pongo un respin disponible, vea mi blog (también estaba en Ubuntu Planet) para más detalles y descarga. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.