Anleitung zu Besonderheiten beim Anpassen von Ubuntu Installer

9

Ich habe versucht, die Anleitungen für Voreinstellung und Anpassung , aber ich habe nicht verstanden, wie und wo ich welche Optionen ändern soll. Ich kann nur durch praktische Beispiele, für die ich diese Frage stelle, bequem lernen.

Ich schaue mir die Voreinstellung und die Customizing-Lösung an, um ein paar spezielle Aufgaben zu erledigen:

  • Die Pakete, die standardmäßig installiert werden, werden komplett neu geschrieben, ähnlich wie minimale Installationen und das --no-install-recommends -Flag von apt-get .
  • Fügen Sie der Standardinstallationsliste einige proprietäre Anwendungen hinzu
  • Installieren und installieren Sie automatisch proprietäre Treiber auf der Installations- und Live-Sitzung
  • Bearbeiten Sie die Standardkonfigurationsdateien für standardmäßig installierte Anwendungen
  • Geben Sie Partitionen zusammen mit der Berechtigung
  • an
  • Ändern Sie den Paket-Pool im Installer-Medium (CD / DVD / USB), vorzugsweise mit Kommandozeilen-Tools wie apt-get und aptitude .

Kann mir bitte jemand sagen, wie man die Preseed-Option so konfiguriert, dass nur die oben genannten Einstellungen vorgenommen 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 05.03.2011, 16:13

2 Antworten

5

Für einen Referenz-Preseed können Sie sich auf Installationsanleitung-i386 beziehen Das enthält den folgenden Beispielvorrat:

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

Um die Liste der Pakete anzuzeigen, die Sie installieren möchten, können Sie nachsehen für die folgende Zeile:

  tasksel tasksel/first   multiselect ubuntu-desktop

Wo "ubuntu-desktop" für eine beliebige Anzahl von Paketen geändert werden kann oder Meta-Pakete.

  
  • Installieren und installieren Sie automatisch proprietäre Treiber auf der Installations- und Live-Sitzung
  •   

Andere, die die benötigten Pakete angeben (für die proprietären Treiber), ich bin mir nicht sicher, wie dies erreicht werden würde. Als Randnotiz "mounten" Sie eine Partition, Sie "laden" einen Kernelmodul / Treiber.

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

Um diese Art von Änderungen zu erstellen, möchten Sie wahrscheinlich Folgendes prüfen:

  d-i preseed/late_command string ...

Wo das "..." durch beliebige Befehle wie sed -i ersetzt werden kann zum Beispiel.

  
  • Geben Sie Partitionen zusammen mit der Berechtigung
  • an   

Es gibt einen Partitionsteil im oben erwähnten Beispiel-Preseed.

  

Ubiquity mit Preseed

Casper unterstützt Preseed und die Allgegenwart kann viele Werte haben. Hier sind einige der Variablen, die für die Allgegenwart relevant sein 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 den oben erwähnten Befehl late_ enthält, wird success_command von ubiquity und late_command von d-i gelesen.

    
komputes 10.03.2011, 19:05
2

Im Folgenden wird ein modifiziertes Boot-Image erstellt. Brennen Sie es auf eine CD, oder fügen Sie das ISO in eine VM ein, um es zu testen. Sie benötigen cpio und 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 -alternative -Version 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.cfg konfiguriert den Bootloader. Sie möchten, dass es nur startet und automatisch den Installationsprozess 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 alles Vorbereitungen, die wir brauchen, bevor wir die Installation tatsächlich durchführen. Laden Sie das Preseed-Beispiel herunter und nennen Sie es preseed.cfg. Gehe hindurch und bearbeite was du willst. 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 schlage vor, dass Sie das obige nicht als Beispiel verwenden, sondern das Beispiel von Ubuntu herunterladen und es mit late_command auf Ihre Bedürfnisse konfigurieren. Sie können alles von der Shell aus tun, einschließlich Herunterladen und Ausführen eines Skripts, das installiert und installiert wird Konfiguriert Ihre benutzerdefinierte Software. 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.sh in der obigen initrd platzieren und direkt ausführen. Der Inhalt könnte so 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 09.03.2011 10:13