Guida ai dettagli nella personalizzazione del programma di installazione di Ubuntu


9

Ho provato a leggere le guide per la preconfigurazione e la personalizzazione , ma non ho capito come e dove modificare quali opzioni. Posso imparare comodamente solo attraverso esempi pratici, per i quali faccio questa domanda.

Sto esaminando la preconfigurazione e la personalizzazione della soluzione per fare solo alcune attività specifiche:

  • Riscrivi completamente i pacchetti installati per impostazione predefinita, in modo simile alle installazioni minime e con il --no-install-recommendsflag di apt-get.
  • Aggiungi alcune applicazioni proprietarie all'elenco di installazione predefinito
  • Installa e monta automaticamente i driver proprietari sulla sessione di installazione e live
  • Modifica i file di configurazione predefiniti per le applicazioni installate per impostazione predefinita
  • Specificare le partizioni insieme all'autorizzazione
  • Modificare il pool di pacchetti nel supporto di installazione (CD / DVD / USB), preferibilmente utilizzando strumenti da riga di comando simili a apt-gete aptitude.

Qualcuno può dirmi come configurare l'opzione preconfigurata per fare solo quanto sopra?

NB Non capisco la parte GPG dopo aver aggiunto / rimosso i pacchetti nel pool.

PS Il terzo punto è di particolare importanza.


Giusto per essere chiari, "Ubuntu Installer" si riferisce al programma di installazione grafico (unicità) o alternativo (debian-installer)?
kompute il

@komputes, entrambi lo faranno.
Oxwivi,

Risposte:


6

Per un riferimento preconfigurato, ti consigliamo di fare riferimento alla guida di installazione-i386 che contiene il seguente esempio preconfigurato:

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • Riscrivi completamente i pacchetti installati per impostazione predefinita, proprio come installazioni minime
  • Aggiungi alcune applicazioni proprietarie all'elenco di installazione predefinito

Per fornire l'elenco dei pacchetti che si desidera installare, è possibile cercare la seguente riga:

  tasksel tasksel/first   multiselect ubuntu-desktop

Dove "ubuntu-desktop" può essere modificato per un numero arbitrario di pacchetti o meta-pacchetti.

  • Installa e monta automaticamente i driver proprietari sulla sessione di installazione e live

Oltre a specificare i pacchetti necessari (per i driver proprietari), non sono sicuro di come ciò possa essere realizzato. Come nota a margine, "montate" una partizione, "caricate" un modulo / driver del kernel.

  • Modifica i file di configurazione predefiniti per le applicazioni installate per impostazione predefinita

Per apportare quel tipo di modifiche con script, probabilmente vorrai esaminare:

  d-i preseed/late_command string ...

Dove il "..." può essere sostituito con comandi arbitrari come sed -i per esempio.

  • Specificare le partizioni insieme all'autorizzazione

C'è una sezione di partizione nell'esempio preconfigurato menzionato sopra.

Ubiquità con preseed

Casper supporta preseed e l'ubiquità può avere molti valori preconfigurati. Ecco alcune delle variabili che possono essere preconfigurate rilevanti per l'ubiquità:

ubiquity countrychooser/shortlist select US
ubiquity languagechooser/language-name select English
ubiquity localechooser/supported-locales multiselect en_US.UTF-8
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true
ubiquity ubiquity/poweroff boolean true
ubiquity ubiquity/success_command string ...

Dove "..." conterrebbe lo stesso comando late_ sopra menzionato, success_command viene letto da ubiquity e late_command da di.


Non c'è modo di cambiare prima i file di configurazione? Come posso impedire l'installazione dei pacchetti consigliati? Come faccio ad aggiungere pacchetti proprietari per l'installazione offline?
Oxwivi,

Sembra che tu voglia creare un'immagine personalizzata, come descritto qui: help.ubuntu.com/community/LiveCDCustomization L'immagine può anche contenere un file preconfigurato in cui è possibile modificare i file di configurazione come descritto in precedenza. Un altro approccio è che puoi anche creare i tuoi pacchetti per alcune delle personalizzazioni.
kompute l'

Va bene, dimentica di cambiare la configurazione, devo includere istruzioni CD personalizzate per includere pacchetti non presenti nel disco di default?
Oxwivi,

Ho montato un'immagine, copiato il contenuto in una directory, modificato i parametri di Ubiquity. Come lo finalizzo?
Oxwivi,

Per finalizzare / creare l'immagine ISO, segui le chiacchiere intitolate "Produrre l'immagine del CD" qui: help.ubuntu.com/community/LiveCDCustomization
komputes

3

Di seguito viene creata un'immagine di avvio modificata. Masterizzalo su un CD o inserisci l'ISO in una VM per testarlo. Ti serviranno cpioe genisoimage(ecco i nomi dei pacchetti e degli eseguibili).

Quanto segue è sotto forma di Makefile, ma può essere inserito in modo interattivo. ${IN_ISO}fa riferimento all'immagine ISO originale (ho usato la -alternativeversione e suggerirei di fare lo stesso), ${OUT_ISO}al nome ISO desiderato.

# Extract the ISO image to mount/ and copy it to cdroot/
cdroot:
    mkdir -p mount
    sudo mount -o loop ${IN_ISO} mount
    mkdir cdroot
    cd cdroot && tar cf - ../mount --transform 's,^mount/,,' | tar xf -
    sudo umount mount && rm -r mount
    chmod -R a+rw cdroot

# Copy new files to the disk. Content of those files is posted below
prepare: cdroot
    cp isolinux.cfg cdroot/isolinux/isolinux.cfg
    test -e ./initrd.orig.gz || cp cdroot/install/initrd.gz ./initrd.orig.gz
    mkdir -p initrd
    cd initrd && gunzip <../initrd.orig.gz | sudo cpio -i && cd ..
    cp preseed.cfg initrd/preseed.cfg
    cd initrd && find . | cpio -o --format=newc | gzip -9 > ../cdroot/install/initrd.gz && cd ..
    sudo rm -rf initrd

# Create the ISO image. Make sure to use extensions for lower-case filenames    
iso: cdroot prepare
    genisoimage -o ${OUT_ISO} \
        -force-rr -J \
        -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        cdroot

Hai bisogno di alcuni file aggiuntivi:

isolinux.cfgconfigura il boot loader. Volete che si avvii e segua automaticamente il processo di installazione. Dovrebbe sembrare come questo:

default install
label install
  menu label ^Install my custom Ubuntu
  kernel /install/vmlinuz
  append auto initrd=/install/initrd.gz --
# Leave 2 seconds to abort or debug
prompt 1
timeout 20

Ecco tutti i preparativi di cui abbiamo bisogno prima di configurare effettivamente l'installazione. Scarica l'esempio preseed e chiamalo preseed.cfg. Passalo attraverso e modifica quello che vuoi. Le opzioni importanti sono:

# Locale
d-i debian-installer/locale string en_US
d-i time/zone string US/Eastern

# Partitioning. The following settings WILL OVERWRITE ANYTHING
# Don't insert the CD into your boss' computer ...
d-i partman-auto/method string regular
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# To create a normal user account.
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/allow-password-weak boolean true

# Package selection. Don't include ubuntu-desktop to significantly reduce the content
tasksel tasksel/first multiselect standard

#d-i preseed/early_command string driver installation commands (stuff needed to boot)
#d-i preseed/late_command string driver installation commands, custom software, etc.

Ma suggerirei di non usare quanto sopra come esempio, ma di scaricare l'esempio di Ubuntu e configurarlo secondo le tue esigenze late_command, puoi fare qualsiasi cosa dalla shell, incluso il download e l'esecuzione di uno script che installa e configura il tuo software personalizzato. Ad esempio, usa questo come late_command:

d-i preseed/late_command string in-target sh -c 'wget https://example.com/my/install.sh && sh install.sh'

In alternativa, puoi posizionarlo install.shnell'inizrd sopra ed eseguirlo direttamente. Il suo contenuto potrebbe apparire così:

#!/bin/sh
aptitude install -y x11-apps any-package-you-want-installed
wget http://proprietary.com/drivers/for/ubuntu.tar.gz -O- | tar xf - && sh drivers/instal.sh

Dipende molto da come funziona la routine di installazione del driver proprietario.


Come ho detto nella domanda, voglio una guida su come esattamente ai compiti che ho elencato; come riscrivo i pacchetti che verranno installati? Che dire dell'installazione automatica di driver proprietari?
Oxwivi,

@Oxwivi Scrivi uno script che installa tutto ciò che desideri e scaricalo ed eseguilo con late_command. Package selectionè la parte che puoi usare per installare i tuoi pacchetti, ma puoi anche farlo nello script.
phihag

1
@Oxwivi Puoi installare jockey e successivamente rimuoverlo con aptitude purge jockeyuno script. Non sono sicuro di cosa intendi per "modo generico di installare qualsiasi tipo di driver proprietario". Questo è un modo generico per installare tutti i driver con restrizioni, basta inserire il pacchetto del driver che stai installando in taskel o dopo aptitude install -ynello script, e funzionerà. Se vuoi che la tua immagine funzioni su più macchine, probabilmente dovrai trovare un modo per chiedere al fantino tutti i driver proprietari applicabili. ...
Phihag,

1
@Ocwivi ... Tuttavia, l'installazione di tutti i driver proprietari disponibili è generalmente una cattiva idea: i driver proprietari sono generalmente vecchi, non supportati e richiedono un'ulteriore configurazione non standard. Inoltre, è necessario assicurarsi che sia legalmente autorizzato a distribuire driver non liberi.
Phihag

1
@Oxwivi Quella fiducia è infondata, dato che chiunque può mettere qualsiasi cosa nei repository non liberi. Tuttavia, questa discussione è di gran lunga fuori portata per questa domanda (sulla preconfigurazione). Si dovrebbe chiedere come si ottiene un elenco di driver proprietari applicabili per il sistema corrente.
phihag
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.