Risposte:
Scaricare
Scarica l'ISO del server Ubuntu da questa posizione . Hai la possibilità di andare a 32-bit o 64-bit. Il nome del file per l'edizione del server sarà simile al seguente:
ubuntu-13.10-server-i386.iso
ubuntu-13.10-server-amd64.iso
Assumerò la versione 13.10 a 64 bit nelle seguenti istruzioni, quindi adegua i comandi al download che hai eseguito. Conservare una copia del download in modo da poter creare più nuove versioni dal download originale nel caso in cui sia necessario migliorare il progetto. Supporrò anche che ~/Downloads/
facciamo tutto il nostro lavoro.
Configurazione iniziale
Ciò creerà 2 directory "iso" e "isoNew" all'interno della directory Download, monterà l'ISO e copierà il contenuto da "iso" su "isoNew" per avviare un nuovo progetto.
Mettilo in un file di testo, salvalo, rendilo eseguibile ed eseguilo:
# Ubuntu custom server
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/
mkdir -p iso newIso
sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso
sudo cp -r ./iso/* ./newIso/
sudo cp -r ./iso/.disk/ ./newIso/
sudo umount ./iso/
cd ~/Downloads/newIso/
mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only
Immagini di esempio su come apparirà:
Esecuzione:
Risultato:
Aggiunta di un'opzione del menu di avvio
Le opzioni di menu per il programma di installazione sono memorizzate isolinux/txt.cfg
e puoi creare nuove opzioni tra default install
e label install
.
Ciò creerà una nuova opzione chiamata "Installa server Ubuntu personalizzato" e aggiungerà un file kickstart (il file kickstart viene utilizzato per modificare le opzioni; spiegato di seguito):
label myownoption
menu label ^Install Custom Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
myownoption
è solo un'etichetta che puoi usare per identificare la tua opzione.default install
verso default myownoption
.Esempio:
e modificando il file (ho usato nano ma se disponibile uso gedit, vim o un altro editor). Ecco la mia aggiunta a questo file in cui ho usato "lampserver" come etichetta e anche il mio seme sarà chiamato "lamperver".
Kickstart (impostazione grafica di un file di configurazione)
Il metodo di installazione di Red Hat Kickstart viene utilizzato principalmente (ma non esclusivamente) dal sistema operativo Red Hat Enterprise Linux per eseguire automaticamente l'installazione e la configurazione automatica del sistema operativo.
Documentazione su preconfigurazione / kickstart per Ubuntu . Ubuntu ha un supporto limitato per kickstart (e preseeding); una delle cose mancanti è un'interfaccia grafica per la preconfigurazione. Kickstart ha avere opzioni per questo (vedi le immagini), ma questi non sembrano lavorare su Ubuntu. È possibile farlo manualmente (consultare la sezione Predicatura di seguito).
Installazione e avvio del kickstart:
sudo apt-get install system-config-kickstart
ksconfig
** AVVERTIMENTO **
kickstart è infastidito in Ubuntu 13.10 e quando lo avvia, si rompe. Ecco una soluzione . Inserisci la patch nel commento in un file di testo, salvala (l'ho chiamata "patch") e impegnala:
Dopo che ha ksconfig
funzionato e avvierà un editor di configurazione che ti consente di manipolare molte opzioni.
Vedi Red Hat Linux 7.2: la guida ufficiale alla personalizzazione di Red Hat Linux per una descrizione di tutte le opzioni che puoi impostare.
Al termine, salvare le modifiche in un ks.cfg
file e copiarlo nell'ISO che stiamo cambiando:
sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
ks-custom.cfg
in ~/Downloads/newIso/preseed/
.Esempio in cui ho inserito le mie credenziali. L'ho iniziato con sudo ksconfig
dalla riga di comando.
E salvandolo nel progetto:
Preseeding (impostazione manuale di un file di configurazione)
La previsione preliminare fornisce un modo per impostare le risposte alle domande poste durante il processo di installazione, senza dover inserire manualmente le risposte mentre l'installazione è in esecuzione. Ciò consente di automatizzare completamente la maggior parte dei tipi di installazione e offre anche alcune funzionalità non disponibili durante le normali installazioni.
Copia il preconfigurato per l'installazione normale sulla tua etichetta:
sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
myownoption
in quello che hai usato.Ora per modificare le impostazioni. Usando debconf-get-selections
da debconf-utils
puoi esaminare quali parametri puoi usare con software specifici.
Esempio di impostazione:
E aggiungendo il server lampada da installare con taskel:
Se vuoi aggiungere i pacchetti "openssh" e "build-essential" puoi includerlo nel file seme:
d-i pkgsel/include string openssh-server build-essential
Un esempio per openssh:
debconf-get-selections | grep openssh
openssh-server ssh/vulnerable_host_keys note
openssh-server ssh/use_old_init_script boolean true
openssh-server ssh/encrypted_host_key_but_no_keygen note
openssh-server ssh/disable_cr_auth boolean false
È possibile aggiungere queste opzioni a custom-iso/preseed/ubuntu-myownoption.seed
.
Alla fine del file preconfigurato è possibile aggiungere pacchetti (esempi casuali) in questo modo:
% pacchetti openssh-server mysql-server apache2
Installazione offline
Nel caso in cui si aggiungano pacchetti e quelli NON siano nell'ISO, il programma di installazione li scaricherà dal repository. Se non si dispone di una connessione Internet attiva, ciò sarà problematico, quindi sarà necessario aggiungere tutti quei pacchetti (e dipendenze) al progetto e masterizzarli su un DVD. Fortunatamente l'ISO del server normale ha molto spazio, ma attenzione: i CD e / o i DVD hanno dimensioni limitate.
Scarica tutti i pacchetti DEB di cui hai bisogno e archiviali ~/Downloads/
. Queste 2 directory sono necessarie sulla nuova ISO:
mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/
E questo aggiornerà il nostro progetto con i nuovi pacchetti:
cd ~/Downloads/newIso
sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/
Crea l'ISO
cd ~/Downloads/
sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/
Risultato:
E ora puoi provarlo bruciando e installandolo. Consiglio di utilizzare come macchina virtuale poiché sarà più veloce per testare la ISO iniziale creata (altrimenti continuerai a riavviare).
E dopo aver installato VirtualBox ottengo il seguente menu:
Caccia agli insetti
Si sono verificati 1 problemi durante l'installazione: l'impostazione predefinita non è stata selezionata.
Shadin. Dal tuo file seme nel commento
### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
probabilmente deve essere così:
### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
Abbandona la tua linea di task non vuoi un server LAMP (es. Apache, Mysql, Php)