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.