From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Other languages
English ; français ; Nederlands ;
In het kort:
draklive2 is een beheer-gereedschap dat een ISO-image (beeld) creëert met daarin een Mageia Live-systeem (of kortweg 'Live ISO'). Het ISO-beeld is een hybride ISO, waardoor deze kan worden gebruikt met zowel optische media als usb-opslagstations.

Contents

Overzicht

draklive2 gebruikt het klassieke Mageia-installatieprogramma om het Live-systeem te maken, met een paar daaropvolgende aanpassingen om het systeem te optimaliseren voor Live-gebruik. Vervolgens comprimeert het gereedschap het resulterende root-bestandssysteem (met het doel de grootte van de ISO-image te verkleinen), en voegt een GRUB2-bootloader toe om opstarten vanaf de Live media mogelijk te maken. De bootloader ondersteunt zowel de verouderde MBR-boot (Master Boot Record) als het nieuwere EFI-boot (Extensible Firmware Interface).

draklive2 is het hulpmiddel dat wordt gebruikt om de Live ISO's voor de Mageia-distributie te maken. Mageia-gebruikers kunnen dit gereedschap ook gebruiken om hun eigen aangepaste Live ISO's te maken, met een desktop-omgeving of een selectie van pakketten die niet beschikbaar zijn in het officiële Mageia-aanbod.

Normaal gesproken wordt de samenstelling van de Live ISO die draklive2 maakt, bepaald door een configuratiebestand dat de gebruiker aanlevert. Maar als er een onvolledige configuratie wordt opgegeven, wordt het klassieke installatieprogramma uitgevoerd in grafische modus (GUI - Graphical User Interface), waardoor de gebruiker kan kiezen uit talen, desktop-omgevingen en pakketten via de GUI.

Oorsprong

draklive2 is een evolutie van het originele draklive-gereedschap. In tegenstelling tot draklive is de enige functie van Draklive2 het maken van ISO-images; het maken van schijf-images en het kopiëren van images naar media wordt niet ondersteund.

De belangrijkste verbeteringen ten opzichte van het originele gereedschap draklive zijn:

  • de mogelijkheid om de GUI (grafische gebruikersschil) van het installatieprogramma te gebruiken om het Live-systeem samen te stellen
  • vereenvoudigde, op tekst gebaseerde configuratie
  • de GRUB2-bootloader wordt gebruikt voor zowel het oude MBR-boot als het nieuwere EFI-boot
  • het GRUB2-opstartmenu ondersteunt zowel taal- als toetsenbordselectie en wordt zelf vertaald naar de geselecteerde taal
  • zowel 32-bits als 64-bits EFI-opstarten worden ondersteund
  • persistentie (behoud van instellingen) wordt ondersteund

Snelstart

Om te beginnen installeert u eerst de pakketten drakiso en drakiso-bootloader-files. Als u van plan bent de GUI van het installatieprogramma te gebruiken, installeer dan ook het pakket x11-server-xephyr of het pakket x11-server-xnest. Installeer en configureer vervolgens sudo, als u dit nog niet heeft gedaan, zodat u opdrachten kunt uitvoeren waarvoor rootrechten vereist zijn. Selecteer ten slotte een van de volgende drie onderstaande voorbeelden en volg de instructies voor dat voorbeeld.

Let op:
Als draklive2 wordt uitgevoerd door de rootgebruiker (via het commando su -), wordt sudo niet gebruikt en hoeft deze niet te worden geïnstalleerd.
Let op:
U kunt zowel 32-bits als 64-bits varianten van uw Live ISO maken, ongeacht of het systeem dat u gebruikt om ze te maken 32-bits of 64-bits is. Als u echter een 64-bit EFI opstartbare ISO wilt maken, moet u de x86_64-versie van het drakiso-bootloader-files pakket installeren, en als u een 32-bit EFI opstartbare ISO wilt maken, u moet de i586-versie van het pakket drakiso-bootloader-files installeren.

Voorbeeld 1: Xfce Live ISO

In dit voorbeeld wordt een Live ISO gemaakt op basis van de Xfce-desktop-omgeving. Het resultaat lijkt sterk op de officiële Mageia Xfce Live ISO's.

Om de ISO te maken:

1. Maak een werkkopie van /usr/share/drakiso/examples/xfce. Het bestandssysteem dat uw werkkopie bevat, moet minimaal 12 GB vrije ruimte hebben.

2. Bewerk in de werkkopie het bestand config/settings.cfg en pas de volgende instellingen aan:

arch - ofwel i586 dan wel x86_64
repository - ofwel een FTP- of HTTP-URL dan wel een pad naar een lokale spiegelserver van de repository

3. Wijzig in een terminalvenster de map naar de map op het hoogste niveau van uw werkkopie en voer de opdracht uit:

draklive2 --clean --all

Voorbeeld 2: Aangepaste Live ISO

In dit voorbeeld wordt een Live ISO gemaakt op basis van selecties die door de gebruiker zijn gemaakt in de GUI van het installatieprogramma.

Om de ISO te maken:

1. Maak een werkkopie van /usr/share/drakiso/examples/gui. Het bestandssysteem dat uw werkkopie bevat, moet minimaal 6 GB vrije ruimte hebben, en 12 GB of meer als u een zware desktopomgeving of een groot aantal pakketten selecteert.

2. Bewerk in de werkkopie het bestand config/settings.cfg en pas de volgende instellingen aan:

arch - ofwel i586 dan wel x86_64
repository - ofwel een FTP- of HTTP-URL dan wel een pad naar een lokale spiegelserver van de repository

Als u wilt dat alle talen en landinstellingen worden opgenomen, voegt u ook de regel toe

region=all

(de gebruiker wordt gevraagd een taal te kiezen wanneer het Live-systeem opstart).

Als u de standaard gebruikersnaam "live" zonder wachtwoorden wilt gebruiken, voeg dan ook de regel toe

default_user=live

Als u automatisch wilt inloggen, voegt u ook de regel toe

default_session=<sessienaam>

waarbij <session name> de waarde Name is die is gevonden in het sessiebestand .desktop (bevindt zich in /usr/share/xsessions) , na het verwijderen van eventuele witruimte.

En met drakiso v1.15 of hoger...

Als u uw ISO aan andere mensen gaat distribueren, wijzigt u de instelling show_licence van no in yes.

Als u wilt dat MageiaWelcome automatisch start, wijzig dan de instelling show_welcome van no in yes.

Als u wilt dat het Live-installatieprogramma (draklive-install) wordt opgenomen, wijzig dan de instelling live_installer van no in yes.

Als u wilt dat de niet-vrije stuurprogramma's (NVIDIA en Broadcom wl) worden opgenomen, wijzigt u de instelling nonfree_drivers van no in yes.

Als u wilt dat extra pakketten die niet in de GUI kunnen worden geselecteerd, worden opgenomen (of uitgesloten), voegt u een door komma's gescheiden lijst met pakketnamen toe aan de include_packages (of exclude_packages) instelling. Gebruik de naam van het basispakket en voeg geen witruimte rond de komma's toe.

3. Wijzig in een terminalvenster de map naar de map op het hoogste niveau van uw werkkopie en voer de opdracht uit:

draklive2 --clean--all

De GUI van het installatieprogramma wordt gestart en biedt u de mogelijkheid uw taal, bureaubladomgeving(en), pakketten, gebruikersgegevens en diverse systeeminstellingen te kiezen voordat u doorgaat met het maken van de ISO-image.

Let op:
De bootloader biedt ondersteuning voor alle talen, ongeacht de taal/talen die u selecteert. Zie hieronder hoe u dit kunt wijzigen.

Voorbeeld 3: Minimale Live ISO

In dit voorbeeld wordt een Live ISO gemaakt met een minimaal Mageia-systeem met alleen tekst. Er is geen grafische ondersteuning inbegrepen.

Om de ISO te maken:

1. Maak een werkkopie van /usr/share/drakiso/examples/minimal. Het bestandssysteem dat uw werkkopie bevat, moet minimaal 3 GB vrije ruimte hebben.

2. Bewerk in de werkkopie het bestand config/settings.cfg en pas de volgende instellingen aan:

arch - ofwel i586 dan wel x86_64
repository - ofwel een FTP- dan wel HTTP-URL dan wel een pad naar een lokale spiegelserver van het pakketdepot (repository).

3. Wijzig in een terminalvenster de map naar de map op het hoogste niveau van uw werkkopie en voer de opdracht uit:

draklive2 --clean --all

Meer gedetailleerd

draklive2 wordt gestart vanaf de opdrachtregel. Het kan door elke gebruiker worden uitgevoerd, omdat het dan de opdracht sudo zal gebruiken om alle bewerkingen uit te voeren waarvoor rootrechten nodig zijn. Als het wordt gestart zonder opdrachtregel-opties, wordt er alleen een samenvatting van de beschikbare opties afgedrukt en wordt het programma afgesloten.

draklive2 maakt de Live ISO in vier belangrijke stappen:

Root

Dit gebruikt het klassieke installatieprogramma om een ​​standaard Mageia-systeem in een dummy root-bestandssysteem te installeren en voert vervolgens eventuele aanpassingen na de installatie uit die door de gebruiker zijn gespecificeerd. Het enige significante verschil met een standaardinstallatie is, dat deze optie ondersteuning voor alle hardware installeert (in plaats van te detecteren wat er nodig is voor de doelcomputer) en (optioneel) ondersteuning voor alle landinstellingen installeert.
Deze stap wordt uitgevoerd wanneer de optie --root of --all is opgegeven op de opdrachtregel.

Opstarten

Hiermee worden alle bestanden voorbereid die nodig zijn voor het opstarten van het Live-systeem. Het dummy-rootbestandssysteem moet zijn gemaakt voordat u deze stap uitvoert, omdat het wordt gebruikt om de Linux-kernelimage te leveren en om de initiële RAM-schijf-image te maken die wordt gebruikt bij het opstarten van het systeem.
Deze stap wordt uitgevoerd wanneer de optie --boot of --all is opgegeven op de opdrachtregel. Normaal gesproken hoeft deze niet opnieuw te worden uitgevoerd als de Root-stap opnieuw wordt uitgevoerd.

Lus

Hiermee wordt het dummy rootbestandssysteem gecomprimeerd tot een squashfs bestandssysteem-image. Dit wordt opgeslagen in het ISO-imagebestandssysteem in het bestand /loopbacks/distrib.sqfs. Wanneer u het Live-systeem opstart, wordt dit aangekoppeld (alleen-lezen) en samengevoegd met een RAM-schijf of een persistente overlay-partitie met behulp van het overlayfs bestandssysteem. Door deze samenvoeging met een RAM-schijf of een persistente overlay-partitie kunt u wijzigingen aanbrengen in een actief Live-systeem.
Deze stap wordt uitgevoerd wanneer de optie --loop of --all is opgegeven op de opdrachtregel. Deze moet opnieuw worden uitgevoerd als de Root-stap opnieuw wordt uitgevoerd. Het hoeft alleen opnieuw te worden uitgevoerd nadat de opstartstap opnieuw is uitgevoerd als de initiële RAM-schijfimage verandert.

Master

Hiermee wordt de uiteindelijke ISO-image gemaakt van de bestanden die zijn gemaakt in de Boot- en Lus-stappen, en worden alle gevraagde controlesommen gegenereerd.
Deze stap wordt uitgevoerd wanneer de optie --master of --all is opgegeven op de opdrachtregel. Het moet opnieuw worden uitgevoerd als een van de voorgaande stappen opnieuw wordt uitgevoerd.

Als er meerdere stappen zijn opgegeven op de opdrachtregel, zal draklive2 deze in de juiste volgorde uitvoeren, ongeacht de volgorde waarin ze verschijnen.

De optie --clean kan op de opdrachtregel worden toegevoegd om alle bestanden te verwijderen die bij eerdere uitvoeringen zijn gemaakt. Merk op dat het de huidige instellingen gebruikt om te bepalen wat er moet worden verwijderd; er is geen herinnering aan wat u voor het laatst hebt gebruikt.

draklive2 voert normaal gesproken een relatief kleine hoeveelheid informatie uit naarmate het proces vordert. Het niveau van breedsprakigheid kan worden verhoogd of verlaagd door de optie --verbose <level> toe te voegen op de opdrachtregel, waarbij <level> varieert van 0 (minimale breedsprakigheid) tot 4 ( maximale breedsprakigheid).

ISO-compositie

De samenstelling van de Live ISO wordt geregeld via twee bestanden, een bestand met basisinstellingen en een build-configuratiebestand. draklive2 zoekt naar deze bestanden in de map die is opgegeven door de opdrachtregeloptie --config-dir (hierna <config-dir> genoemd). Indien niet gespecificeerd, zal <config-dir> worden ingesteld op de huidige werkmap.

Let op:
draklive2 is in hoge mate configureerbaar, maar veel van de hieronder beschreven opties zijn zelden nodig en kunnen in de meeste gevallen worden weggelaten. Er wordt voorgesteld dat de gebruiker begint met een van de voorbeelden in /usr/share/drakiso/examples, en de instellingen en buildconfiguratie indien nodig aanpast.

Basisinstellingen

Het basisinstellingenbestand bevat een lijst met parameters voor het besturen van de Live ISO-creatie. De naam en locatie van dit bestand kunnen worden opgegeven met de opdrachtregel-optie --settings. Indien niet gespecificeerd, is de standaardwaarde <config-dir>/config/settings.cfg.

Syntaxis

Elke regel van het basisinstellingenbestand moet een enkele parameternaam en bijbehorende waarde bevatten, waarbij de naam en waarde gescheiden worden door een '='-teken, bijvoorbeeld

arch=x86_64
release=6

Namen moeten eenvoudige alfanumerieke identificatiegegevens zijn en mogen geen witruimte bevatten. Waarden kunnen elke reeks tekens zijn. Als een waarde tussen enkele of dubbele aanhalingstekens staat, wordt het buitenste paar aanhalingstekens weggegooid. Er is geen witruimte toegestaan ​​tussen de naam en de '=' of, voor waarden tussen aanhalingstekens, tussen de '=' en het eerste aanhalingsteken of na het laatste aanhalingsteken.

Regels die beginnen met een teken '#' worden behandeld als commentaar en worden genegeerd.

Let op:
In de volgende secties wordt een instellingsnaam tussen puntige haakjes (bijvoorbeeld <arch>) gebruikt als afkorting voor de instellingswaarde.

Vereiste instellingen

Voor draklive2 moeten de volgende parameters worden gedefinieerd:

arch

De architectuur voor het live-systeem. Ondersteunde architecturen zijn i586 en x86_64.

repository

De URL of het pad naar de repository (pakketdepot) die zal worden gebruikt om het Live systeem te maken. Alleen FTP- of HTTP-URL's worden ondersteund. De URL of het pad moet eindigen met het Mageia-versienummer; de architectuur wordt automatisch toegevoegd.

vendor

Een willekeurige reeks van maximaal 128 tekens die de persoon of organisatie identificeert die de Live ISO maakt (de vendor, ofwel leverancier). Dit wordt gebruikt als de uitgever-ID )Publisher ID) in de ISO-metagegevens.

Optionele instellingen

draklive2 herkent de volgende optionele parameters:

default_session

De standaardsessie-naam (default_session) die wordt gebruikt voor automatisch inloggen. Dit zou de waarde Name moeten zijn die gevonden kan worden in het sessiebestand .desktop (bevindt zich in /usr/share/xsessions), na het verwijderen van eventuele witruimte.
Als dit niet is opgegeven, wordt er geen standaardsessienaam gedefinieerd voor automatisch inloggen.

default_user

De gebruikersnaam van de standaardgebruiker (default_user) van het Live-systeem. Dit moet een geldige Linux-gebruikersnaam zijn. Indien opgegeven, wordt het systeem zo geconfigureerd dat de gebruiker na het opstarten automatisch wordt aangemeld.
Als dit niet is opgegeven, wordt de GUI van het installatieprogramma uitgevoerd en wordt het gebruikersbeheerscherm weergegeven.

desktop

Een willekeurige tekenreeks als naam van de Desktop Environment (bureaublad-omgeving). Wordt alleen gebruikt voor het construeren van de Live ISO-naam.

distro

Een willekeurige tekenreeks. Wordt alleen gebruikt voor het construeren van de Live ISO-naam.

media

Een willekeurige tekenreeks. Wordt alleen gebruikt voor het construeren van de Live ISO-naam.

product

Een willekeurige tekenreeks. Wordt alleen gebruikt voor het construeren van de Live ISO-naam.

region

De set landinstellingen die worden opgenomen in de Live ISO. Dit kan de naam zijn van een set landinstellingen die zijn gedefinieerd in het buildconfiguratiebestand of de speciale waarde all (waardoor alle beschikbare landinstellingen worden opgenomen).
Als dit niet is opgegeven, wordt de GUI van het installatieprogramma uitgevoerd en worden de taal- en toetsenbordselectieschermen weergegeven.

release

Een willekeurige tekenreeks als naam voor een Mageia-editie. Wordt alleen gebruikt voor het construeren van de Live ISO-naam.

set

Een optie geërfd van draklive. Niet getest in draklive2.

workdir

Het pad naar de basis-werkmap voor draklive2. Alle bestanden die door draklive2 zijn gemaakt, worden opgeslagen in een submap (met de naam Live ISO-naam) onder deze map.
Als dit niet is opgegeven, wordt de huidige werkmap gebruikt.

Gebruikersinstellingen

De gebruiker kan aanvullende parameters toevoegen aan het basisinstellingen-bestand voor gebruik binnen het build-configuratie-bestand. draklive2 negeert deze parameters.

Instellingen overschrijven

Een instelling kan worden overschreven (of toegevoegd) met behulp van de opdrachtregel-optie --define <naam>=<waarde>.

Bouwconfiguratie (build)

Het build-configuratie-bestand specificeert alle aspecten van de Live ISO-compositie. De naam en locatie van dit bestand kunnen worden opgegeven met de opdrachtregel-optie --config. Indien niet gespecificeerd, is de standaardwaarde <config-dir>/config/build.cfg.

Syntaxis

De build-configuratie bestaat uit de volgende basisgegevens-typen:

number
een willekeurige reeks decimale cijfers
string
elke reeks tekens tussen enkele of dubbele aanhalingstekens. Als het tussen enkele aanhalingstekens staat, wordt de bijgevoegde tekenreeks precies gebruikt zoals geschreven. Als bepaalde tekens tussen dubbele aanhalingstekens staan, hebben ze een speciale betekenis, zoals hieronder beschreven.
array
elke reeks elementen, gescheiden door komma's en tussen vierkante haken, b.v. ['a','b','c']. Tussen de elementen en de interpunctie mag elke hoeveelheid witruimte worden toegevoegd. Elementen kunnen van elk gegevenstype zijn. Af en toe worden arrays (matrixen) gebruikt om waardenparen te bewaren, in welk geval de '=>' digraph kan worden gebruikt om de twee elementen in elk paar te scheiden in plaats van een komma.
associative array
elke reeks sleutel/waarde-paren gescheiden door komma's en tussen accolades, waarbij de sleutel en waarde gescheiden worden door de digraph '=>', b.v. {a=>1,b=>2} . Tussen de sleutels en waarden en de interpunctie mag elke hoeveelheid witruimte worden toegevoegd. Sleutels moeten eenvoudige alfanumerieke identificatiegegevens zijn (d.w.z. geen witruimte bevatten). Waarden kunnen van elk gegevenstype zijn.

Met een '#'-teken buiten een tekenreeks begint een opmerking. Het teken en alle volgende tekens op dezelfde regel worden genegeerd.

Lezers die bekend zijn met Perl zullen zich al gerealiseerd hebben dat het build-configuratie-bestand de Perl-syntaxis gebruikt. Het bestand kan in feite alle Perl-constructies bevatten; de enige beperking is dat de associatieve array die de buildconfiguratie beschrijft, het laatste item in het bestand is.

Tekenreeksen tussen dubbele aanhalingstekens worden daarom geïnterpreteerd volgens de Perl-regels. Naast de gebruikelijke escape-reeksen die in de meeste programmeertalen voorkomen (bijvoorbeeld "\n" voor een nieuwe regel), wordt elke Perl-variabele uitgebreid naar de variabelewaarde. Zie de Perl-taaldocumentatie voor meer details.

Let op:
In de volgende secties wordt een configuratiesleutel tussen accolades (bijvoorbeeld {system}{vga_mode}) gebruikt als afkorting voor de configuratiewaarde.

Toetsen

De volledige buildconfiguratie is een associatieve array die de volgende sleutels kan bevatten:

system (vereist)

Een associatieve array met de configuratiewaarden die worden gebruikt om het Live-systeem te maken en aan te passen tijdens de stap Root. Het kan de volgende sleutels bevatten:
enabled_media (vereist)
Een array die de media binnen de geselecteerde repository (pakketdepot) specificeert, die moeten worden ingeschakeld bij het uitvoeren van het klassieke installatieprogramma om het Live-systeem te maken. Elk element van de array moet een string zijn die de naam van een medium specificeert, b.v. 'Core-release', 'Core-updates'.
rpmsrate_flags (optioneel)
Een array die de rpmsrate-categorieën specificeert die moeten worden opgenomen wanneer het klassieke installatieprogramma pakketten selecteert. Elk element van de array moet een string zijn die de naam van een categorie specificeert, b.v. 'CAT_OFFICE', 'CAT_VIDEO'. Bekijk het bestand <arch>/media/media_info/rpmsrate in de geselecteerde repository om te zien welke pakketten in elke categorie zijn opgenomen.
Als dit niet is opgegeven, wordt de GUI van het installatieprogramma uitgevoerd en worden de desktop- en pakketselectieschermen weergegeven.
rpmsrate_level (optioneel)
Een getal dat de drempel specificeert voor pakketselectie binnen de rpmsrate-categorieën. Pakketten met een beoordeling in het rpmsrate-bestand die lager is dan dit getal, worden niet opgenomen als een rpmsrate-categorie is geselecteerd.
Als dit niet is opgegeven, is het standaardniveau 5.
include_packages (optioneel)
Een array die een lijst specificeert met aanvullende pakketten die moeten worden opgenomen wanneer het klassieke installatieprogramma pakketten selecteert. Elk element van de array moet een string zijn die de basisnaam van een pakket specificeert.
Dit is zelfs van toepassing als de GUI van het installatieprogramma wordt gebruikt om pakketten te selecteren.
exclude_packages (optioneel)
Een array die een lijst met pakketten specificeert die moeten worden uitgesloten wanneer het klassieke installatieprogramma pakketten selecteert. Elk element van de array moet een string zijn die de basisnaam van een pakket specificeert.
Dit is zelfs van toepassing als de GUI van het installatieprogramma wordt gebruikt om pakketten te selecteren.
preferred_packages (optioneel)
Een array die een lijst specificeert met voorkeurspakketten die moeten worden gebruikt wanneer het klassieke installatieprogramma pakket-afhankelijkheden selecteert. Elk element van de array moet een string zijn die de basisnaam van een pakket specificeert.
local_repo_packages (optioneel)
Een array die een lijst met pakketten specificeert die moeten worden opgeslagen in een lokaal pakketdepot (repository) in het Live-systeem. Elk element van de array moet een string zijn die de basisnaam van een pakket specificeert. Deze pakketten kunnen worden geïnstalleerd (met behulp van urpmi of rpmdrake) wanneer het Live-systeem actief is. Merk op dat deze pakketten automatisch worden uitgesloten wanneer het klassieke installatieprogramma pakketten selecteert.
local_repo_biarch_packages (optioneel)
Een array die een lijst met pakketnamen specificeert waarvoor zowel de 32-bits als de 64-bits versie van het pakket moeten worden opgenomen in de lokaal (pakketdepot (repository) van het Live systeem.
langs_always (optioneel)
Een array die een lijst met landinstellingen specificeert die altijd zullen worden opgenomen, ongeacht de regio-instelling. Elk element van de array moet een string zijn die één landinstelling specificeert (bijvoorbeeld 'en_US').
post_install_nr (optioneel)
Een string die een bash shell-opdrachtstring specificeert die aan het einde van het installatieproces door het klassieke installatieprogramma in de build-systeemomgeving zal worden uitgevoerd.
post_install (optioneel)
Een string die een bash shell-opdrachtstring specificeert die zal worden uitgevoerd door het klassieke installatieprogramma in een chroot naar het dummy root-bestandssysteem aan het einde van het installatieproces.
additional_media (optioneel)
Een array die een lijst met media specificeert waarop aanvullende pakketten kunnen worden geïnstalleerd, en optioneel de pakketten die vanaf die media moeten worden geïnstalleerd. De media worden toegevoegd met behulp van urpmi.addmedia in de aangegeven volgorde. Elk element van de array moet een associatieve array zijn die de volgende sleutels bevat:

name (vereist)

Een tekenreeks die de mediumnaam specificeert die wordt doorgegeven aan urpmi.addmedia. Indien ingesteld op '--distrib', wordt de optie --distrib doorgegeven aan urpmi.addmedia in plaats van aan een naam.

path (vereist)

Een tekenreeks die de medium-URL of het pad specificeert dat wordt doorgegeven aan urpmi.addmedia.

packages (optioneel)

Een array die een lijst specificeert met pakketten die vanaf dit medium moeten worden geïnstalleerd. Elk element van de array moet een string zijn die de basisnaam van een pakket specificeert.
rpms (optioneel)
Een array die een lijst specificeert met aanvullende RPM-pakketten die in het dummy root-bestandssysteem moeten worden geïnstalleerd. Elk element van de array moet een string zijn die het pad naar een RPM-bestand specificeert. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>. Alle pakketafhankelijkheden die niet in deze lijst zijn opgenomen, zullen worden opgezocht en geïnstalleerd vanaf de volledige set media die is opgegeven in additional_media.
erase_rpms (optioneel)
Een array die een lijst met pakketten specificeert die moeten worden verwijderd zodra de volledige pakketinstallatie is uitgevoerd. Elk element van de array moet een string zijn die de basisnaam van een pakket specificeert.
disable_services (optioneel)
Een array die een lijst met services specificeert die moeten worden uitgeschakeld (met behulp van systemctl). Elk element van de array moet een string zijn die de basisnaam van een service specificeert; de extensie .service wordt automatisch toegevoegd.
disable_timers (optioneel)
Een array die een lijst met timers specificeert die moeten worden uitgeschakeld (met behulp van systemctl). Elk element van de array moet een string zijn die de basisnaam van een timer specificeert; de extensie .timer wordt automatisch toegevoegd.
files (optioneel)
Een array die een lijst met bestanden specificeert die naar het dummy root-bestandssysteem moeten worden gekopieerd. Elk element van de array moet zelf een array met twee of drie elementen zijn, met daarin:
  • een tekenreeks die het pad specificeert naar de bestanden die moeten worden gekopieerd. Het pad kan eenvoudige jokertekens bevatten (* en ?) en kan individuele bestanden of hele mappen specificeren. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
  • een tekenreeks die de bestemming specificeert. Dit moet een absoluut pad zijn in het dummy root-bestandssysteem. Als de tekenreeks eindigt met een '/', wordt aangenomen dat het een map is en blijven de bestandsnamen behouden. Als er meerdere bestanden worden gekopieerd, moet er een map worden opgegeven.
  • (optioneel) een associatieve array met de volgende sleutels:

mode (optioneel)

Een 4-cijferig nummer dat de gekopieerde bestandsmodus in octaal formaat aangeeft.

no_install (optioneel)

Een getal dat specificeert of de bestanden van het geïnstalleerde systeem moeten worden verwijderd als draklive-install wordt gebruikt om het Live systeem te installeren. Elk getal dat niet nul is, zorgt ervoor dat de bestanden worden verwijderd door draklive-install.
remove_files (optioneel)
Een array die een lijst met bestanden of mappen specificeert die uit het dummy root-bestandssysteem moeten worden verwijderd. Elk element van de array moet een string zijn die een absoluut pad specificeert in het dummy rootbestandssysteem. Het pad kan eenvoudige jokertekens bevatten (* en ?) en kan individuele bestanden of hele mappen specificeren.
patches (optioneel)
Een array die een lijst met patches specificeert die moeten worden toegepast op het dummy root-bestandssysteem. Elk element van de array moet een string zijn die het pad naar een patchbestand specificeert. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>. Bestandspaden binnen het patchbestand moeten relatief zijn ten opzichte van de root van het dummy root-bestandssysteem.
final_fixes (optioneel)
Een string die een bash shell-opdrachtstring specificeert die zal worden uitgevoerd in een chroot naar het dummy root-bestandssysteem nadat alle andere aanpassingsstappen zijn uitgevoerd.
append (optioneel)
Een tekenreeks die de standaardopties specificeert die moeten worden doorgegeven op de opstart-opdrachtregel wanneer het Live-systeem wordt opgestart. Indien opgegeven, wordt deze tekenreeks toegevoegd aan de opdrachtregel in elk opstartmenu-item.
vga_mode (optioneel)
Een getal dat de VGA-modus specificeert die moet worden doorgegeven op de opstart-opdrachtregel wanneer het Live-systeem wordt opgestart. Indien gespecificeerd, wordt vga={system}{vga_mode} toegevoegd aan de opdrachtregel in elk opstartmenu-item.

loopbacks (optioneel)

Een associatieve array met de configuratiewaarden die worden gebruikt bij het comprimeren van het dummy root-bestandssysteem tijdens de stap Lus. Het kan de volgende sleutels bevatten:
exclude (optioneel)
Een array waarin wordt aangegeven welke bestanden moeten worden uitgesloten bij het comprimeren van het dummy root-bestandssysteem. Elk element van de array moet een associatieve array zijn die één (en slechts één) van de volgende sleutels bevat:

path

Een tekenreeks die een absoluut pad specificeert in het dummy root-bestandssysteem. Het pad kan eenvoudige jokertekens bevatten (* en ?) en kan individuele bestanden of hele mappen specificeren.

source

Een tekenreeks die een absoluut pad specificeert in het dummy root-bestandssysteem. Het pad moet een bestand identificeren dat een verdere lijst met absolute paden bevat naar bestanden die moeten worden uitgesloten. Het bestand moet één pad per regel bevatten.
compression- (optioneel)
(draklive2 v1.14 of hoger)
Een tekenreeks die de compressiemodus specificeert die wordt gebruikt bij het comprimeren van het dummy rootbestandssysteem. Dit kan elk geldig argument zijn voor de optie -comp van de opdracht mksquashfs. Als de compressiemodus zstd wordt gekozen, kan deze worden gevolgd door een dubbele punt en een numerieke waarde die het compressieniveau specificeert.
Als dit niet is opgegeven, is de standaardwaarde 'zstd:18'.

regions (optioneel)

Een associatieve array die sets landinstellingen definieert die kunnen worden opgenomen in de Live ISO. De sleutelnamen kunnen vrij door de gebruiker worden gekozen. Elke sleutel moet worden gekoppeld aan een reeks tekenreeksen die een lijst met landinstellingen voor die sleutel specificeren.
Tijdens de stap Root selecteert draklive2 de set locales geïdentificeerd door <region>.

media (vereist)

Een associatieve array met de configuratiewaarden die worden gebruikt bij het voorbereiden van de bootloader-bestanden tijdens de stap Boot en bij het maken van de uiteindelijke ISO-image tijdens de stap Master. Het kan de volgende sleutels bevatten:
label (vereist)
Een tekenreeks die het volumelabel voor de ISO-image specificeert.
overlay_label (optioneel)
Een tekenreeks die het volumelabel specificeert dat wordt gebruikt om de optionele persistente overlaypartitie te identificeren.
Als dit niet is opgegeven, zal de bootloader niet zoeken naar een bijgewerkte kernel in de persistente overlay-partitie. Dit heeft geen invloed op dracut, dat nog steeds naar een persistente overlay-partitie zal zoeken en deze zal gebruiken, als die bestaat.
bootloader_title (optioneel)
Een tekenreeks die de titelregel voor het bootloaderscherm specificeert.
Als dit niet is opgegeven, wordt {media}{label} gebruikt, waarbij eventuele '-'-tekens in het label worden vervangen door spaties.
bootloader_theme (optioneel)
Een tekenreeks die het pad specificeert naar een map die de themabestanden bevat die door de bootloader moeten worden gebruikt. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Als dit niet is opgegeven, wordt /boot/grub2/themes/maggy gebruikt als het aanwezig is op het buildsysteem, anders wordt er geen bootloader-thema opgenomen in de Live ISO.
bootloader_font (optioneel)
Een tekenreeks die het pad specificeert naar een bestand dat het standaard bootloader-lettertype bevat. Dit zou een GRUB2 (.pf2) lettertypebestand moeten zijn. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Indien niet gespecificeerd, zal /usr/share/grub/unicode.pf2 worden gebruikt als het aanwezig is op het buildsysteem, anders zal er geen standaard bootloader-lettertype worden opgenomen in de Live ISO en de bootloader valt terug naar de tekstmodus.
bootloader_langs (optioneel)
Een tekenreeks die het pad specificeert naar een bestand dat de lijst met talen bevat die moeten worden opgenomen in de bootloader taalselectiemenu. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Als dit niet is opgegeven, wordt het taalselectiemenu niet opgenomen in de bootloader.
bootloader_kbds (optioneel)
Een tekenreeks die het pad specificeert naar een bestand met de lijst met toetsenbordtypen die moeten worden opgenomen in de bootloader toetsenbordselectiemenu . Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Als dit niet is opgegeven, wordt het toetsenbordselectiemenu niet opgenomen in de bootloader.
bootloader_messages (optioneel)
Een tekenreeks die het pad specificeert naar een map met berichtvertalingen voor de bootloader. Alleen gecompileerde vertaalbestanden (.mo) worden opgenomen in de Live ISO.
bootloader_default (optioneel)
Een getal dat het bootloader-menu-item specificeert dat standaard zal worden geselecteerd. De ingangen van het keuzemenu zijn genummerd vanaf nul.
Als dit niet is opgegeven, is het eerste menu-item van de bootloader de standaardinstelling.
bootloader_timeout (optioneel)
Een getal dat de vertraging in seconden specificeert voordat de bootloader automatisch opstart vanaf de standaardinvoer.
Indien niet gespecificeerd, bedraagt ​​de vertraging 4 seconden.
bootloader_entries (optioneel)
Een array van gepaarde waarden die de menu-items van de bootloader specificeren. Het eerste element in elk paar moet een string zijn die de titel van het menu-item specificeert. Het tweede element in elk paar moet een associatieve array zijn die de volgende sleutels bevat:

command (optioneel)

Een tekenreeks die de GRUB2-opdracht specificeert die wordt uitgevoerd wanneer het menu-item wordt geselecteerd. Dit moet ofwel 'linux' of 'linux16' zijn.
Als dit niet is opgegeven, wordt het commando linux gebruikt.

image (optioneel)

Een tekenreeks die het pad specificeert naar de kernel-image die voor dit menu-item zal worden gebruikt.
Als dit niet is opgegeven, wordt /boot/vmlinuz gebruikt, wat de kernel is die is gekopieerd van het dummy root-bestandssysteem tijdens de stap Boot.

initrd (optioneel)

Een tekenreeks die het pad specificeert naar de initiële RAM-schijfkopie die voor dit menu-item zal worden gebruikt. Als dit niet is opgegeven, wordt /boot/initrd.gz gebruikt. Dit is de initiële RAM-schijf-image die is gemaakt tijdens de stap Boot. De speciale waarde 'none' kan worden gebruikt om aan te geven dat er geen initiële RAM-schijf-image is voor dit menu-item.

append (optioneel)

Een tekenreeks die aanvullende opties specificeert die moeten worden toegevoegd aan de opstartopdrachtregel voor dit menu-item. Alle opties die automatisch worden toegevoegd door draklive2 worden vóór deze string toegevoegd.
mbr_boot_img (optioneel)
Een tekenreeks die het pad specificeert naar de GRUB2 MBR-bootloader-image voor hybride opstarten. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Indien niet gespecificeerd, zal /usr/lib/grub/i386-pc/boot_hybrid.img worden gebruikt als het bestaat op het buildsysteem, anders zal draklive2 eindigen met een fout.
eltorito_img (optioneel)
Een string die het pad specificeert naar de GRUB2 El Torito bootloader-image. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Als dit niet is opgegeven, zal draklive2 grub2-mkimage gebruiken om de El Torito bootloader-image te bouwen.
iso_part_start (optioneel)
Een getal dat de startsector specificeert voor de hybride ISO-beschermende partitie die het ISO9660-bestandssysteem beschermt. Dit moet 0 of 1 zijn. De optie om te beginnen bij sector 1 is gekozen vanwege verenigbaarheid met sommige oude BIOS's.
Als dit niet is opgegeven, begint de beschermende partitie bij sector 0.
iso_part_type (optioneel)
Een tekenreeks die het partitietype specificeert voor de hybride ISO-beschermende partitie die het iso9660-bestandssysteem beschermt. Dit moet een hexadecimaal getal van twee cijfers zijn in 'C'-formaat, b.v. '0x00'.
Als dit niet is opgegeven, wordt het type beschermende partitie ingesteld op '0x00'.
efi_type (optioneel)
Een tekenreeks die de EFI-opstarttypen specificeert die moeten worden ondersteund. Dit moet een van 'none', '32bit', '64bit' of 'all' zijn.
Als dit niet is opgegeven, is de standaardwaarde 'none'.
boot32_efi (optioneel)
Een tekenreeks die het pad specificeert naar de GRUB2 32-bit EFI-opstartlader-image. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Als dit niet is opgegeven, zal draklive2 grub2-mkimage gebruiken om de 32-bits EFI-bootloader-image te bouwen als dit nodig is (hiervoor is de 32-bits grub2- efi pakket dat op het buildsysteem moet worden geïnstalleerd).
Deze sleutel wordt genegeerd als het EFI-opstarttype is ingesteld op 'none' of '64bit'.
boot64_efi (optioneel)
Een tekenreeks die het pad specificeert naar de GRUB2 64-bit EFI-opstartlader-image. Er wordt een relatief pad genomen als relatief ten opzichte van <config-dir>.
Indien niet gespecificeerd, zal draklive2 grub2-mkimage gebruiken om de 64-bit EFI bootloader-image te bouwen als dit nodig is (dit vereist de 64-bit prog|grub2-efi} }-pakket dat op het buildsysteem moet worden geïnstalleerd).
Deze sleutel wordt genegeerd als het EFI-opstarttype is ingesteld op 'none' of '32bit'.
copy_from_repo (optioneel)
Een array van gepaarde waarden die een lijst met bestanden of mappen specificeren die van het pakketdepot (repository) naar het ISO-image-bestandssysteem moeten worden gekopieerd. Het eerste element in elk paar moet een tekenreeks zijn die het pad specificeert naar het bestand of de map die moet worden gekopieerd (ten opzichte van de map <arch> in het pakketdepot). Het tweede element in elk paar moet een tekenreeks zijn die het pad naar het bestand of de map in het ISO-image-bestandssysteem specificeert (ten opzichte van de hoofdmap van het bestandssysteem). Tussenliggende mappen in het ISO-image-bestandssysteem worden indien nodig automatisch aangemaakt.
Als <repository> een FTP- of HTTP-URL is, mag de lijst alleen bestanden bevatten, geen mappen.
checksums (optioneel)
Een array die een lijst met controlesomtypen specificeert die moeten worden berekend op basis van en opgeslagen naast het ISO-image-bestand. Elk element van de array moet een string zijn die een controlesomtype specificeert. Erkende soorten zijn:
  • 'md5' - een 128-bit MD5-controlesom, opgeslagen in een bestand met de extensie .md5
  • 'sha1' - een 160-bit SHA-1 checksum, opgeslagen in een bestand met de extensie .sha1
  • 'sha2' - een 512-bit SHA-2 checksum, opgeslagen in een bestand met de extensie .sha512
  • 'sha3' - een 512-bit SHA-3 checksum, opgeslagen in een bestand met de extensie .sha3
Als dit niet is opgegeven, worden er geen controlesommen gegenereerd.

iso_name_fields (optioneel)

Een array die de instellingswaarden specificeert die worden gebruikt om de Live ISO-naam te construeren, die zowel wordt gebruikt om de werkende submap een naam te geven als de basisnaam voor het ISO-imagebestand en de bijbehorende controlesom bestanden. Elk element van het array moet een tekenreeks zijn die de naam van één instelling specificeert. De instellingenwaarden worden gescheiden door '-'-tekens bij het samenstellen van de Live ISO-naam.
Als dit niet is opgegeven, is de standaardnaam voor de Live ISO <distro>-<release>-<product>-<desktop>-<region>-<arch>-<media>. Null-instellingen worden overgeslagen, evenals de instelling region als deze is ingesteld op all.

Instellingen gebruiken

Voordat het build-configuratie-bestand wordt gelezen, leest draklive2 het basisinstellingen-bestand en slaat de instellingen op in een associatieve array in een object dat is opgeslagen in de globale variabele $build. Hierdoor kunnen de instellingen worden gebruikt in het build-configuratie-bestand. De instelling arch kan bijvoorbeeld worden verkregen door $build->{settings}{arch}. Snelkoppelingen kunnen worden gemaakt door lokale variabelen te declareren, b.v.

my $arch = $build->{settings}{arch};

die vervolgens kan worden gebruikt binnen tekenreeksen tussen dubbele aanhalingstekens.

Nuttige Perl-functies

Een handige snelkoppeling is de ingebouwde functie qw() van Perl. Deze converteert een reeks gewone woorden naar een door komma's gescheiden lijst van aangehaalde tekenreeksen, bijvoorbeeld

qw(a b c)

staat gelijk aan

'a', 'b', 'c'

Voordat het build-configuratiebestand wordt gelezen, importeert draklive2 de [1] Perl-bibliotheek, zodat het build-configuratiebestand elke functie kan gebruiken die is geëxporteerd door deze bibliotheek. Een handige functie is if_(), waarmee items voorwaardelijk in een lijst kunnen worden opgenomen. Dus als de lokale variabele $arch bijvoorbeeld is ingesteld op x86_64

'a', 'b', if_($arch eq 'x86_64', 'c', 'd')

staat gelijk aan

'a', 'b', 'c', 'd'

anders is het gelijk aan

'a', 'b'

Syntaxiscontrole

Omdat het build-configuratiebestand de Perl-syntaxis gebruikt, kan de Perl-interpreter worden gebruikt om te controleren of er geen syntaxisfouten in het bestand voorkomen, voordat draklive2 wordt uitgevoerd. Geef gewoon het commando

perl -qw <bestand>

(waarbij <bestand> het pad naar het bestand is). Om een ​​valse waarschuwing te voorkomen, moet u de associatieve array op het hoogste niveau aan een variabele toewijzen, bijvoorbeeld

my $config = { ... };

Bootloader-menu's

Hoofdmenu

Dit menu toont de lijst met onderwerpen die door de gebruiker zijn opgegeven in {media}{bootloader_entries}. Als er een persistente overlay-partitie geïdentificeerd door {media}{overlay_label} wordt gedetecteerd, en een bijgewerkte kernel bevat, wordt dit gevolgd door een menu-ingang dat selecteert tussen de nieuwste kernel in de persistente overlay en de originele kernel in de basis-ISO-image. Als de gebruiker een {media}{bootloader_langs}-bestand heeft opgegeven, wordt dit gevolgd door een menu-ingang die het taalkeuzemenu selecteert. Als de gebruiker een {media}{bootloader_kbds}-bestand heeft opgegeven, wordt dit gevolgd door een menu-ingang die het toetsenbord-selectiemenu selecteert.

Taalkeuzemenu

Dit menu toont de lijst met talen gespecificeerd door het bestand {media}{bootloader_langs}. Het bestand moet een array van gepaarde waarden bevatten, met dezelfde syntaxis als het build-configuratiebestand, behalve dat de array tussen ronde haakjes staat in plaats van vierkante haakjes. Het eerste element in elk paar moet een string (tekenreeks) zijn die de taalcode specificeert (bijvoorbeeld 'en_US'). Het tweede element in elk paar moet een string zijn die de weergegeven naam van de taal specificeert. Als het bestand UTF-8-gecodeerd is, laat u de array voorafgaan door de regel

use utf8;

Zie /usr/share/drakiso/bootloader/lang-names.txt voor een voorbeeld.

Wanneer een onderwerp in dit menu wordt geselecteerd, wordt de omgevingsvariabele bootloader lang ingesteld op de geselecteerde taalcode, waardoor de bootloader-menu's kunnen worden vertaald als de benodigde vertalingen aanwezig zijn in de { media}{bootloader_messages} map.

Wanneer een gewoon onderwerp in het hoofdmenu wordt geselecteerd, zal de bootloader een lang=<taalcode> optie toevoegen aan de opstart-opdrachtregel om de meest recent geselecteerde taalcode door te geven aan het Live systeem.

Toetsenbord-selectiemenu

Dit menu toont de lijst met toetsenborden gespecificeerd in het bestand {media}{bootloader_kbds}. Het bestand moet een array van gepaarde waarden bevatten, met dezelfde syntaxis als het build-configuratiebestand, behalve dat de array tussen ronde haakjes staat in plaats van vierkante haakjes. Het eerste element in elk paar moet een string zijn die de toetsenbordcode specificeert (bijvoorbeeld 'en'). Het tweede element in elk paar moet een string zijn die de weergegeven naam van het toetsenbord specificeert. Als het bestand UTF-8-gecodeerd is, laat u de array voorafgaan door de regel

use utf8;

Zie /usr/share/drakiso/bootloader/kbd-names.txt voor een voorbeeld.

Wanneer een gewoon onderwerp in het hoofdmenu wordt geselecteerd, zal de bootloader een kbd=<toetsenbordcode> optie toevoegen aan de opstart-opdrachtregel om de meest recent geselecteerde toetsenbordcode door te geven aan het Live systeem.

Als een bestand met de naam lang-kbds.txt in dezelfde map bestaat als het bestand {media}{bootloader_langs}, zal het bestand lang-kbds.txt worden gebruikt om de standaardinvoer in het toetsenbordselectiemenu te bepalen, zodra een taal is geselecteerd. Het bestand moet een associatieve array bevatten waarbij de sleutels de taalcodes zijn en de bijbehorende waarden de standaard-toetsenbordcodes.

Zie /usr/share/drakiso/bootloader/lang-kbds.txt voor een voorbeeld.

Let op:
Het was de bedoeling dat het toetsenbord-selectiemenu ook zou worden gebruikt om de toetsenbordtoewijzing in de bootloader te wijzigen, maar GRUB2 biedt geen betrouwbare manier om dit te doen.

Vertalingen

Alle tekst in het hoofdmenu en het toetsenbordselectiemenu is vertaalbaar. De taalnamen in het taalselectiemenu zijn niet vertaalbaar - er wordt aangenomen dat elke taalnaam in zijn oorspronkelijke vorm wordt weergegeven in het bestand {media}{bootloader_langs}.

dracut configuration

De dracut-configuratie voor het genereren van de initiële RAM-schijf van het Live-systeem moet worden aangepast. De twee essentiële veranderingen zijn

hostonly = "no"
add_dracutmodules+=" mgalive "

De module mgalive zorgt voor het aankoppelen van het gecomprimeerde loopback-bestandssysteem; zonder dit kan het live-systeem niet worden opgestart. De module mgalive verzorgt ook de detectie en het gebruik van een persistente overlay-partitie. Het label dat is opgegeven in {media}{overlay_label} moet overeenkomen met het label waarnaar wordt gezocht door de module mgalive, die momenteel mgalive-persist is.

Zie /usr/share/drakiso/examples/minimal/files/dracut-live.conf voor een voorbeeld van andere wijzigingen die mogelijk vereist zijn.