Antworten:
Herunterladen
Laden Sie die Ubuntu-Server-ISO von diesem Speicherort herunter . Sie können zwischen 32-Bit und 64-Bit wählen. Der Dateiname für die Server Edition sieht ungefähr so aus:
ubuntu-13.10-server-i386.iso
ubuntu-13.10-server-amd64.iso
In den folgenden Anweisungen gehe ich von der 64-Bit-Version 13.10 aus. Passen Sie daher die Befehle an den von Ihnen vorgenommenen Download an. Bewahren Sie eine Kopie Ihres Downloads auf, damit Sie aus dem ursprünglichen Download mehrere neue Versionen erstellen können, falls Sie Ihr Projekt verbessern müssen. Ich ~/Downloads/
gehe auch davon aus, dass wir all unsere Arbeit damit erledigen.
Ersteinrichtung
Dadurch werden 2 Verzeichnisse "iso" und "isoNew" in Ihrem Downloads-Verzeichnis erstellt, die ISO angehängt und der Inhalt von "iso" nach "isoNew" kopiert, um ein neues Projekt zu starten.
Fügen Sie dies in eine Textdatei ein, speichern Sie sie, machen Sie sie ausführbar und führen Sie sie aus:
# 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
Beispielbilder, wie dies aussehen wird:
Ausführen:
Ergebnis:
Hinzufügen einer Startmenüoption
Die Menüoptionen für das Installationsprogramm werden in gespeichert, isolinux/txt.cfg
und Sie können zwischen default install
und neue Optionen erstellen label install
.
Dadurch wird eine neue Option namens "Install Custom Ubuntu Server" erstellt und eine Kickstart-Datei hinzugefügt (die Kickstart-Datei wird zum Ändern von Optionen verwendet; siehe unten):
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
ist nur ein Etikett, mit dem Sie Ihre Option identifizieren können.default install
zu default myownoption
.Beispiel:
und Bearbeiten der Datei (ich habe nano verwendet, aber wenn verfügbar, benutze gedit, vim oder einen anderen Editor). Hier ist meine Ergänzung zu dieser Datei, in der ich "lampserver" als Label verwendet habe und mein Seed wird auch "lampserver" heißen.
Kickstart (grafisches Einrichten einer Konfigurationsdatei)
Die Red Hat Kickstart-Installationsmethode wird hauptsächlich (aber nicht ausschließlich) vom Red Hat Enterprise Linux-Betriebssystem verwendet, um die unbeaufsichtigte Installation und Konfiguration des Betriebssystems automatisch durchzuführen.
Dokumentation zum Preseeding / Kickstart für Ubuntu . Ubuntu bietet nur eingeschränkte Unterstützung für Kickstart (und Voreinstellung). Eines der fehlenden Dinge ist eine grafische Oberfläche für die Voreinstellung. Kickstart hat dafür zwar Optionen (siehe Bilder), aber diese scheinen unter Ubuntu nicht zu funktionieren. Sie können dies jedoch manuell tun (siehe Voreinstellung unten).
Installation und Start von Kickstart:
sudo apt-get install system-config-kickstart
ksconfig
** WARNUNG **
Kickstart ist in Ubuntu 13.10 fehlerhaft und beim Starten tritt ein Fehler auf. Hier ist eine Lösung . Fügen Sie den Patch im Kommentar in eine Textdatei ein, speichern Sie ihn (ich habe ihn "Patch" genannt) und schreiben Sie ihn fest:
Danach hat es ksconfig
funktioniert und es wird ein Konfigurationseditor gestartet, mit dem Sie viele Optionen bearbeiten können.
Eine Beschreibung aller Optionen, die Sie festlegen können, finden Sie im Red Hat Linux 7.2: Das Offizielle Red Hat Linux-Anpassungshandbuch .
Wenn Sie fertig sind, speichern Sie die Änderungen in einer ks.cfg
Datei und kopieren Sie sie in die ISO, die wir ändern:
sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
ks-custom.cfg
in speichern ~/Downloads/newIso/preseed/
.Beispiel, in dem ich meine Anmeldeinformationen eingegeben habe. Ich habe es mit sudo ksconfig
von der Kommandozeile gestartet .
Und im Projekt speichern:
Voreinstellung (manuelles Einrichten einer Konfigurationsdatei)
Mit der Voreinstellung können Sie Antworten auf Fragen festlegen, die während des Installationsvorgangs gestellt werden, ohne die Antworten manuell eingeben zu müssen, während die Installation ausgeführt wird. Dies ermöglicht die vollständige Automatisierung der meisten Installationsarten und bietet sogar einige Funktionen, die bei normalen Installationen nicht verfügbar sind.
Kopieren Sie die Voreinstellung für die normale Installation auf Ihr eigenes Etikett:
sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
myownoption
zu dem , was Sie verwendet haben.Nun zum Ändern der Einstellungen. Mithilfe debconf-get-selections
von debconf-utils
können Sie untersuchen, welche Parameter Sie mit einer bestimmten Software verwenden können.
Beispiel für die Einrichtung:
Und füge Lampenserver hinzu, der mit tasksel installiert werden soll:
Wenn Sie die Pakete "openssh" und "build-essential" hinzufügen möchten, können Sie dies in die Seed-Datei aufnehmen:
d-i pkgsel/include string openssh-server build-essential
Ein Beispiel für 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
Sie können diese Optionen zu hinzufügen custom-iso/preseed/ubuntu-myownoption.seed
.
Am Ende der Voreinstellungsdatei können Sie Pakete (zufällige Beispiele) wie folgt hinzufügen:
% packages openssh-server mysql-server apache2
Offline-Installation
Falls Sie Pakete hinzufügen und diese NICHT in der ISO enthalten sind, lädt das Installationsprogramm diese aus dem Repository herunter. Wenn Sie keine aktive Internetverbindung haben, ist dies problematisch. Fügen Sie Ihrem Projekt alle diese Pakete (und Abhängigkeiten) hinzu und brennen Sie sie auf eine DVD. Glücklicherweise hat der normale ISO-Server viel Platz, aber Vorsicht: CDs und / oder DVDs haben eine begrenzte Größe.
Laden Sie alle benötigten DEB-Pakete herunter und speichern Sie sie in ~/Downloads/
. Diese 2 Verzeichnisse werden auf der neuen ISO benötigt:
mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/
Und dies wird unser Projekt mit den neuen Paketen aktualisieren:
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/
Erstellen Sie die 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/
Ergebnis:
Und jetzt können Sie es ausprobieren, indem Sie es tatsächlich brennen und installieren. Ich würde empfehlen, als virtuelle Maschine zu verwenden, da dies schneller zum Testen der ursprünglich erstellten ISO ist (andernfalls wird der Neustart fortgesetzt).
Und nach der Installation von VirtualBox bekomme ich folgendes Menü:
Wanzenjagd
Bei der Installation sind 1 Probleme aufgetreten: Die Standardeinstellung wurde nicht ausgewählt.
Shadin. Aus deiner Seed-Datei im Kommentar
### 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
muss wohl so sein:
### 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
Schluss mit der Tasksel-Zeile, von der du keinen LAMP-Server willst (zB Apache, MySQL, Php)