Posso creare un ISO di Ubuntu da un manifest?


Risposte:


21

Filesystem.manifest viene generato con il comando:

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

La sintassi è quindi package_name version, Esempio:

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

Il formato di dpkg --get-selectionsè leggermente diverso,package_name install

Esempio

xserver-xorg-video-nouveau  install 

Quindi puoi usare il file, probabilmente in più di un modo,

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

Ad essere onesti, dopo aver realizzato alcuni iso personalizzati nel corso degli anni, c'è una curva di apprendimento su come funziona. Una volta comprese alcune cose, non è troppo difficile, è solo la conoscenza necessaria è moderatamente grande e non esiste un'unica fonte di informazioni aggiornata.

Si utilizzano 2 directory di build

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

personalizzato : questa directory contiene tutti i file che andranno all'iso finale. Contiene il file system di root, un kernel, un initramfs e isolinux.

rootfs : questa directory contiene il file system del CD live e comprimi questa directory (usando mksquashfs) e la includi sul CD. Puoi crearlo con debootstrap (live D da zero) o estrarre il file system da ubuntu-desktop.iso (personalizzare un CD live). Vedi i collegamenti wiki ubuntu qui sotto per i dettagli.

punti chiave

1) Comprendi mksquashfs: usi mksquashfs per comprimere il file system radicecasper/filesystem.squashfs

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

2) Comprendere isolinux - questo rende l'avvio iso, così come il menu del tuo CD (avvio). Vedi Arch Linux Wiki syslinux .

Puoi usare grub2 come alternativa a isolinux, ma dovrai capire come funziona grub2;). La maggior parte dei CD live utilizza ancora isolinux.

3) Come creare un initramfs. Initramfs è un secondo file system, utilizzato per l'avvio. Spesso quando si riscontra un problema (l'immagine di avvio personalizzata non funziona, i moduli del kernel non vengono caricati) e non si capisce il motivo per cui guardando il proprio file system di root, la risposta è molto probabile in 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

Sposta quindi il tuo nuovo initrd.lz nella tua directory di build personalizzata, custom/casper/initrd.lz

4) casper. Casper e gli script casper si trovano in 3 posizioni e tutti e 3 possono svolgere un ruolo. Sono tutti script bash e ad un certo punto vorrai quasi sicuramente guardarli.

Un ospite - /usr/share/initramfs-tools/scripts/casper

B. file system root: personalizzato / usr / share / initramfs-tools / scripts / casper

C. in initramfs - Vedi la directory / scripts.

Vedi Ubuntu man casper

5) Puoi personalizzare l'interfaccia utente / le applicazioni /usr/share, /usr/share/gnome*ad esempio, le posizioni esatte variano con il rilascio, /usr/share/gnome-background-properties/ubuntu-wallpapers.xmlè un classico e abbastanza standard tra le versioni.

6) Se non è possibile effettuare personalizzazioni /usr/share/, utilizzare /etc/skel, ecco /etc/skel/.bashrcun classico, quel file viene copiato in ~ / .bashrc. Puoi mettere lì vari file di configurazione, per firefox o gnome o no, ma / usr / share è meglio se possibile (varia in base all'impostazione).

7) mkisofs - usi mkisofs per convertire la tua directory di build in un 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) Persistenza. Puoi usare la persistenza con molti CD live, incluso il cd desktop Ubuntu e un cd personalizzato, questo è implementato da casper.

A. root - casper monterà una partizione o un file etichettato come casper-rwoverlay di mucca su /. Se quindi si installa un pacchetto o si modifica un file di configurazione, le modifiche persistono al riavvio.

Usa questo con parsimonia. Se aggiorni tutti i pacchetti, ci vorrà molto spazio. Trovo anche che questo metodo a volte sia difettoso.

B. Home: il davanzale del casper monta una partizione o un file etichettato home-rwcome un overlay di vacca su / home.

Preferisco questo dato che i miei segnalibri di Firefox e i dati privati ​​verranno conservati su tutti gli stivali e lo trovo più affidabile.

Casa persistente (cambia in casper-rw per 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

Inserisci home-rw/ (nella directory principale di una partizione) o su un'unità flash (non in una directory secondaria).

Quando si avvia il CD live, premere il F6tasto, essi Esc, aggiungono l'opzione persistentai parametri di avvio, davanti al '-'

quiet splash persistent --

Gli script di avvio casper troveranno quindi un mount automaticamente.

Vedi Ubuntu wiki Persistence - La pagina wiki di Ubuntu parlava solo di casper-rw, ma home-rw è referenziata negli script casper e funziona allo stesso modo, solo il nome è stato cambiato.

Vedi questo post sui forum di Ubuntu per una schermata (anche se con opzioni diverse).

C. È possibile abilitare la persistenza con diversi strumenti grafici, ad esempio unetbootin. Gli strumenti grafici (per quanto ne so) usano casper-rw.

OK, ora una volta capito tutto ciò, queste due pagine inizieranno ad avere più senso

Ubuntu wiki live cd da zero

Ubuntu wiki personalizza il CD live

Google

Dovrai google. Troverai frammenti di consigli su Internet.

Esempio: come cambiare la schermata iniziale di Live CD

Debian Live

Ora che hai capito tutto, usa gli script Debian Live . Non lasciarti ingannare dal nome, questi script funzionano perfettamente su qualsiasi sistema .deb, inclusi Mint e Ubuntu.

Installare

sudo apt-get install live-build

C'è un'interfaccia grafica

sudo apt-get install live-magic

live-magic

Comprendi che la GUI live-magic potrebbe fallire, proprio come falliscono i remaster e le altre GUI. In tal caso, si torna agli script live-build (live-magic genererà una directory di build).

Ci vuole un po 'di tempo per imparare gli script di live-build e il layout / la struttura delle directory

Guarda il Debian Live Manuel Aye, è lungo, basta lavorarci un iso alla volta.

Il vantaggio degli script live-build, una volta compresi i componenti di un CD live, gli script automatizzano il 90+% della build e apportare una modifica è una semplice modifica di un file di configurazione (di solito) o talvolta la creazione di un initramfs.

Troppo lungo

Se è stato troppo lungo per te, fai un respiro profondo, rilassati e lavora all'informazione una parte alla volta. Prometto che inizierà a dare un senso e scoprirai che ne vale la pena.

Se inizi con un altro set di strumenti, torna a questo set di strumenti e dopo alcuni istanti apprezzerai questo set di istruzioni;)

La mia build personalizzata 12.04, supporta gma500, solo 2d (no 3d) pronto all'uso (renderà l'iso disponibile pubblicamente alla folla di gma 500 nei prossimi giorni).

gma 500


1
Oh mio. Questa è una risposta meravigliosa So cosa sto facendo stasera.
gennaio

Bello. Se questo non ottiene 40 voti nessuno dovrebbe ottenerli;)
Rinzwind

Per chiunque sia interessato, rendo disponibile un respin, vedo il mio blog (era anche su Ubuntu Planet) per i dettagli e il download. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Pantera
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.