Przewodnik po szczegółach dostosowywania Instalatora Ubuntu


9

Próbowałem przeczytać przewodniki dotyczące wstępnego sadzenia i dostosowywania , ale nie rozumiałem, jak i gdzie zmodyfikować, które opcje. Mogę tylko wygodnie uczyć się na praktycznych przykładach, dla których zadaję to pytanie.

Zastanawiam się nad przygotowaniem i dostosowaniem rozwiązania, aby wykonać tylko kilka konkretnych zadań:

  • Całkowicie przepisz pakiety instalowane domyślnie, podobnie jak minimalne instalacje z --no-install-recommendsflagą apt-get.
  • Dodaj kilka zastrzeżonych aplikacji do domyślnej listy instalacji
  • Automatycznie instaluj i montuj zastrzeżone sterowniki podczas instalacji i sesji na żywo
  • Edytuj domyślne pliki konfiguracyjne dla aplikacji instalowanych domyślnie
  • Określ partycje wraz z uprawnieniami
  • Zmodyfikuj pulę pakietów na nośniku instalacyjnym (CD / DVD / USB), najlepiej za pomocą narzędzi wiersza poleceń podobnych do apt-geti aptitude.

Czy ktoś może mi powiedzieć, jak skonfigurować wstępnie ustawioną opcję, aby wykonywać tylko powyższe czynności?

Uwaga : Nie rozumiem części GPG po dodaniu / usunięciu pakietów w puli.

PS Trzeci punkt ma szczególne znaczenie.


Dla jasności, czy „Instalator Ubuntu” odnosi się do graficznego (unikatowość) czy alternatywnego (instalator Debian)?
— komputes

@komputes, albo zrobi.
— Oxwivi

Odpowiedzi:


6

Aby zapoznać się z wstępną wersją, możesz odnieść się do instrukcji instalacji i386, która zawiera następującą wstępną wersję:

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • Całkowicie przepisz pakiety zainstalowane domyślnie, podobnie jak minimalne instalacje
  • Dodaj kilka zastrzeżonych aplikacji do domyślnej listy instalacji

Aby podać listę pakietów, które chcesz zainstalować, możesz poszukać następującego wiersza:

  tasksel tasksel/first   multiselect ubuntu-desktop

Gdzie „ubuntu-desktop” można zmienić dla dowolnej liczby pakietów lub pakietów meta.

  • Automatycznie instaluj i montuj zastrzeżone sterowniki podczas instalacji i sesji na żywo

Inne, które określają potrzebne pakiety (dla zastrzeżonych sterowników), nie jestem pewien, jak by to osiągnąć. Na marginesie: „montujesz” partycję, „ładujesz” moduł / sterownik jądra.

  • Edytuj domyślne pliki konfiguracyjne dla aplikacji instalowanych domyślnie

Aby wprowadzić tego rodzaju zmiany w skryptach, prawdopodobnie zajrzysz do:

  d-i preseed/late_command string ...

Gdzie „...” można zastąpić dowolnymi poleceniami, takimi jak na przykład sed -i.

  • Określ partycje wraz z uprawnieniami

W powyższym przykładzie znajduje się sekcja partycji.

Wszechobecność z nasionami

Casper obsługuje wstępnie ustawione nasiona, a wszechobecność może mieć wiele wstępnie ustawionych wartości. Oto niektóre ze zmiennych, które można wstępnie zastosować w odniesieniu do wszechobecności:

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

Tam, gdzie „...” zawierałoby to samo, co wspomniane powyżej polecenie późno, polecenie sukces jest czytane przez wszechobecność, a polecenie późne przez di.


Czy nie ma możliwości wcześniejszej zmiany plików konfiguracyjnych? Jak zapobiec instalacji zalecanych pakietów? Jak dodać zastrzeżone pakiety do instalacji offline?
— Oxwivi,

Wygląda na to, że chcesz utworzyć niestandardowy obraz, jak opisano tutaj: help.ubuntu.com/community/LiveCDCustomization Obraz może również zawierać wstępnie ustawiony plik, w którym możesz zmienić pliki konfiguracyjne zgodnie z powyższym opisem. Innym podejściem jest to, że możesz również tworzyć własne pakiety dla niektórych dostosowań.
— komputes

Dobra, zapomnij o zmianie konfiguracji, czy muszę niestandardowe instrukcje na dysku CD, aby domyślnie uwzględniać pakiety nieobecne na dysku?
— Oxwivi,

Zamontowałem obraz, skopiowałem zawartość do katalogu, zmodyfikowałem parametry Ubiquity. Jak to sfinalizować?
— Oxwivi,

Aby sfinalizować / zbudować obraz ISO, postępuj zgodnie z rozmową zatytułowaną „Produkcja obrazu CD” tutaj: help.ubuntu.com/community/LiveCDCustomization
— komputes

3

Poniżej utworzono zmodyfikowany obraz rozruchowy. Wypal go na płycie CD lub włóż ISO do maszyny wirtualnej, aby go przetestować. Będziesz potrzebował cpioi genisoimage(to są nazwy pakietów i plików wykonywalnych).

Poniższy plik ma postać pliku Makefile, ale można go wprowadzać interaktywnie. ${IN_ISO}odnosi się do oryginalnego obrazu ISO (użyłem -alternativewersji i sugerowałbym, aby zrobić to samo), ${OUT_ISO}do żądanej nazwy ISO.

# 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

Potrzebujesz dodatkowych plików:

isolinux.cfgkonfiguruje moduł ładujący. Chcesz, aby po prostu się uruchomił i automatycznie przeszedł proces instalacji. To powinno wyglądać tak:

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

To wszystkie przygotowania, których potrzebujemy przed faktyczną konfiguracją instalacji. Pobierz przykładowy przykład i nazwij go preseed.cfg. Przejrzyj go i edytuj, co chcesz. Ważne opcje to:

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

Ale sugeruję, abyś nie używał powyższego jako przykładu, ale pobierz przykład Ubuntu i skonfiguruj go do swoich potrzeb late_command, możesz zrobić wszystko od powłoki, w tym pobrać i uruchomić skrypt, który instaluje i konfiguruje oprogramowanie niestandardowe. Na przykład użyj tego jako late_command:

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

Alternatywnie możesz umieścić install.shw initrd powyżej i wykonać go bezpośrednio. Jego zawartość może wyglądać następująco:

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

To naprawdę zależy od tego, jak działa twoja zastrzeżona procedura instalacji sterownika.


Tak jak powiedziałem w pytaniu, potrzebuję wskazówek, jak dokładnie do zadań, które wymieniłem; jak przepisać pakiety, które zostaną zainstalowane? Co z automatyczną instalacją zastrzeżonych sterowników?
— Oxwivi,

@Oxwivi Napisz skrypt, który zainstaluje wszystko, co chcesz, a następnie pobierz i uruchom go late_command. Package selectionjest częścią, której możesz użyć do zainstalowania własnych pakietów, ale możesz to również zrobić w skrypcie.
— phihag

1
@Oxwivi Możesz zainstalować dżokeja, a później usunąć go za aptitude purge jockeypomocą skryptu. Nie jestem pewien, co rozumiesz przez „ogólny sposób instalowania jakichkolwiek prawnie zastrzeżonych sterowników”. Jest to ogólny sposób instalowania dowolnych sterowników z ograniczeniami, wystarczy umieścić pakiet aptitude install -yskryptu, który instalujesz, w tasksel lub w skrypcie, i to zadziała. Jeśli chcesz, aby Twój obraz działał na wielu komputerach, prawdopodobnie będziesz musiał znaleźć sposób, aby poprosić dżokeja o wszystkich odpowiednich, zastrzeżonych kierowców. ...
— phihag,

1
@Ocwivi ... Jednak instalacja wszystkich dostępnych zastrzeżonych sterowników jest generalnie złym pomysłem: zastrzeżone sterowniki są zwykle stare, nieobsługiwane i wymagają dodatkowej niestandardowej konfiguracji. Musisz także upewnić się, że masz prawo do rozpowszechniania niewolnych sterowników.
— phihag

1
@Oxwivi To zaufanie jest bezpodstawne, biorąc pod uwagę, że każdy może umieścić wszystko w niewolnych repozytoriach. Jednak ta dyskusja jest daleko poza zakresem tego pytania (o przedsesekcji). Należy zapytać, w jaki sposób można uzyskać listę odpowiednich, zastrzeżonych sterowników dla bieżącego systemu.
— phihag
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.