Anleitung zu Einzelheiten beim Anpassen von Ubuntu Installer

9

Ich habe versucht, Anleitungen zum Voreinstellen und Anpassen durchzulesen , aber ich habe nicht verstanden, wie und wo welche Optionen geändert werden sollen . Ich kann nur bequem durch praktische Beispiele lernen, für die ich diese Frage stelle.

Ich beschäftige mich mit der Vorbereitung und Anpassung von Lösungen, um nur einige spezifische Aufgaben zu erledigen:

  • Schreiben Sie die standardmäßig installierten Pakete vollständig neu, ähnlich wie bei minimalen Installationen und mit dem --no-install-recommendsFlag von apt-get.
  • Fügen Sie der Standardinstallationsliste einige proprietäre Anwendungen hinzu
  • Installieren und mounten Sie proprietäre Treiber automatisch bei der Installation und Live-Sitzung
  • Bearbeiten Sie die Standardkonfigurationsdateien für standardmäßig installierte Anwendungen
  • Geben Sie Partitionen zusammen mit der Berechtigung an
  • Ändern Sie den Paketpool auf dem Installationsmedium (CD / DVD / USB), vorzugsweise mit Befehlszeilentools ähnlich wie apt-getund aptitude.

Kann mir bitte jemand sagen, wie man die Voreinstellungsoption so konfiguriert, dass nur die oben genannten Schritte ausgeführt werden?

NB Ich verstehe den GPG-Teil nach dem Hinzufügen / Entfernen von Paketen im Pool nicht.

PS Der dritte Punkt ist von besonderer Bedeutung.

Oxwivi
quelle
Nur um klar zu sein, bezieht sich "Ubuntu Installer" auf das grafische (Eindeutigkeit) oder alternative (Debian-Installer) Installer?
komputes
@komputes, beides reicht aus.
Oxwivi

Antworten:

6

Für eine Referenzvoreinstellung verweisen Sie möglicherweise auf die Installationsanleitung-i386, die die folgende Beispielvoraussetzung enthält:

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • Schreiben Sie die standardmäßig installierten Pakete vollständig neu, ähnlich wie bei minimalen Installationen
  • Fügen Sie der Standardinstallationsliste einige proprietäre Anwendungen hinzu

Um die Liste der Pakete bereitzustellen, die installiert werden sollen, möchten Sie möglicherweise nach der folgenden Zeile suchen:

  tasksel tasksel/first   multiselect ubuntu-desktop

Wobei "Ubuntu-Desktop" für eine beliebige Anzahl von Paketen oder Metapaketen geändert werden kann.

  • Installieren und mounten Sie proprietäre Treiber automatisch bei der Installation und Live-Sitzung

Abgesehen von der Angabe der benötigten Pakete (für die proprietären Treiber) bin ich mir nicht sicher, wie dies erreicht werden soll. Als Randnotiz "mounten" Sie eine Partition, Sie "laden" ein Kernelmodul / einen Kerneltreiber.

  • Bearbeiten Sie die Standardkonfigurationsdateien für standardmäßig installierte Anwendungen

Um diese Art von Skriptänderungen vorzunehmen, möchten Sie wahrscheinlich Folgendes untersuchen:

  d-i preseed/late_command string ...

Wobei das "..." durch beliebige Befehle wie sed -i ersetzt werden kann.

  • Geben Sie Partitionen zusammen mit der Berechtigung an

In dem oben erwähnten Beispiel gibt es einen Partitionsabschnitt.

Allgegenwart mit Preseed

Casper unterstützt Voreinstellung und Allgegenwart kann viele Voreinstellung haben. Hier sind einige der Variablen, die für die Allgegenwart relevant werden können:

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 ...

Wo "..." dasselbe wie der oben erwähnte Befehl late_command enthalten würde, wird success_command von ubiquity und late_command von di gelesen.

komputes
quelle
Gibt es keine Möglichkeit, Konfigurationsdateien vorher zu ändern? Wie verhindere ich die Installation empfohlener Pakete? Wie füge ich proprietäre Pakete für die Offline-Installation hinzu?
Oxwivi
Klingt so, als ob Sie ein benutzerdefiniertes Image erstellen möchten, wie hier beschrieben: help.ubuntu.com/community/LiveCDCustomization Das Image kann auch eine Voreinstellungsdatei enthalten, in der Sie die Konfigurationsdateien wie zuvor beschrieben ändern können. Ein anderer Ansatz besteht darin, dass Sie für einige Anpassungen auch eigene Pakete erstellen können.
komputes
Okay, vergessen Sie das Ändern der Konfiguration. Muss ich benutzerdefinierte CD-Anweisungen verwenden, um Pakete einzuschließen, die standardmäßig nicht auf der Festplatte vorhanden sind?
Oxwivi
Ich habe ein Image gemountet, den Inhalt in ein Verzeichnis kopiert und die Ubiquity-Parameter geändert. Wie finalisiere ich es?
Oxwivi
Um das ISO-Image fertigzustellen / zu erstellen, folgen Sie dem Chatter mit dem Titel "Produzieren des CD-Images" hier: help.ubuntu.com/community/LiveCDCustomization
komputes
3

Im Folgenden wird ein geändertes Startabbild erstellt. Brennen Sie es auf eine CD oder legen Sie die ISO in eine VM ein, um sie zu testen. Sie benötigen cpiound genisoimage(das sind die Namen der Pakete und ausführbaren Dateien).

Das Folgende ist in Form eines Makefiles, kann aber interaktiv eingegeben werden. ${IN_ISO}bezieht sich auf das ursprüngliche ISO-Image (ich habe die -alternativeVersion verwendet, und ich würde vorschlagen, dass Sie dasselbe tun), ${OUT_ISO}auf den gewünschten ISO-Namen.

# 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

Sie benötigen einige zusätzliche Dateien:

isolinux.cfgKonfiguriert den Bootloader. Sie möchten, dass es einfach startet und den Installationsprozess automatisch durchläuft. Es sollte so aussehen:

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

Das sind alle Vorbereitungen, die wir benötigen, um die Installation tatsächlich zu konfigurieren. Laden Sie das preseed-Beispiel herunter und nennen Sie es preseed.cfg. Gehen Sie es durch und bearbeiten Sie, was Sie wollen. Wichtige Optionen sind:

# 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.

Aber ich würde vorschlagen, dass Sie das obige Beispiel nicht verwenden, sondern das Beispiel von Ubuntu herunterladen und es mit Ihren Anforderungen konfigurieren. late_commandSie können alles von der Shell aus tun, einschließlich des Herunterladens und Ausführens eines Skripts, das Ihre benutzerdefinierte Software installiert und konfiguriert. Verwenden Sie dies beispielsweise als late_command:

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

Alternativ können Sie install.shdie obige initrd platzieren und direkt ausführen. Der Inhalt könnte folgendermaßen aussehen:

#!/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

Es hängt wirklich davon ab, wie Ihre proprietäre Treiberinstallationsroutine funktioniert.

Phihag
quelle
Wie ich in der Frage sagte, möchte ich eine Anleitung, wie genau die von mir aufgelisteten Aufgaben ausgeführt werden sollen. Wie schreibe ich die Pakete um, die installiert werden sollen? Was ist mit der automatischen Installation von proprietären Treibern?
Oxwivi
@Oxwivi Schreiben Sie ein Skript, das alles installiert, was Sie wollen, und laden Sie es herunter und führen Sie es aus late_command. Package selectionist der Teil, mit dem Sie Ihre eigenen Pakete installieren können, aber Sie können dies auch im Skript tun.
Phihag
1
@Oxwivi Sie können Jockey installieren und später aptitude purge jockeyin einem Skript entfernen . Ich bin mir nicht sicher, was Sie unter einer "generischen Methode zum Installieren von proprietären Treibern" verstehen. Dies ist eine allgemeine Methode zum Installieren eingeschränkter Treiber. Fügen Sie einfach das Paket des Treibers, den Sie installieren, in tasksel oder danach aptitude install -yin das Skript ein, und es funktioniert. Wenn Sie möchten, dass Ihr Image auf mehreren Computern funktioniert, müssen Sie wahrscheinlich einen Weg finden, um Jockey nach allen anwendbaren proprietären Treibern zu fragen. ...
Phihag
1
@Ocwivi ... Die Installation aller verfügbaren proprietären Treiber ist jedoch im Allgemeinen eine schlechte Idee: Proprietäre Treiber sind normalerweise alt, werden nicht unterstützt und erfordern eine zusätzliche nicht standardmäßige Konfiguration. Außerdem müssen Sie sicherstellen, dass Sie gesetzlich dazu berechtigt sind , nicht freie Treiber zu vertreiben.
Phihag
1
@Oxwivi Dieses Vertrauen ist unbegründet, da jeder etwas in die nicht freien Repositories stellen kann. Diese Diskussion ist jedoch weit außerhalb des Rahmens für diese Frage (über die Voreinstellung). Sie sollten sich fragen, wie man eine Liste der anwendbaren proprietären Treiber für das aktuelle System erhält.
Phihag