Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
27 mai 2016

htmlpdflatexmanmd




cert-to-efi-hash-list

cert-to-efi-hash-list

Outils pour convertir des certificats Openssl en lists de révocation de hash de signature EFI

   cert-to-efi-hash-list prend un certificat X509 en entrée au format PEM et le convertis en fichier de liste de hash de signature EFI

OPTIONS

-g ‹guid› Utilise le guid spécifie comme propriétaire de la signature. Non spécifié, un guid avec des 0 est utilisé
-s ‹hash› Spécifie l'algorithme SHA‹hash› (256, 384, 512)
-t ‹timestamp› Durée de révocation pour le hash (0=infini)

Exemples

Produire un fichier de hash de signature EFI
cert-to-efi-hash-list PK.crt PK.esl
Pour produire un fichier avec plusieurs signatures:
cat PK1.esl PK2.esl › PK.esl
^
27 mai 2016

htmlpdflatexmanmd




cert-to-efi-sig-list

cert-to-efi-sig-list

Outil pour convertir des certificats openssl en listes de signature EFI

   cert-to-efi-sig-list prend un certificat X509 en entrée au format PEM et le convertis en fichier de liste de signature EFI contenant seulement ce certificat.

OPTIONS

-g ‹guid› Utilise le guid spécifie comme propriétaire de la signature. Non spécifié, un guid avec des 0 est utilisé

Exemples

Produire un fichier de signature EFI
cert-to-efi-sig-list PK.crt PK.esl
Pour produire un fichier avec plusieurs signatures:
cat PK1.esl PK2.esl › PK.esl
^
22 mai 2017

htmlpdflatexmanmd




dracut

dracut

Outil bas niveau pour générer une image initramfs

   Créé une image initramfs pour la version kernel spécifiée. Si la version kernel est omise, la version courante est utilisée. Si l'image n'est pas spécifié, l'emplacement par défaut est utilisée. Si vous être basculé dans un shell de récupération durant le boot, le fichier /run/initramfs/rdsosreport.txt est créé. Des informations de debuggage peuvent être ajoutés au boot en ajoutant rd.debug à la ligne de commande du kernel. /run/initramfs/rdsosreport.txt contient tous les logs et la sortie de certains outils.

Pour créer une image initramfs, la commande la plus simple est:
dracut
Si l'initramfs existe déjà, dracut affiche une erreur. Pour écraser l'image existante:
dracut --force
Pour spécifie un autre nom de fichier pour l'image
dracut foobar.img
Pour générer une image pour une version kernel spécifique:
dracut foobar.img 2.6.40-1.rc5.f20
Un raccourci pour générer l'image à l'emplacement par défaut:
dracut --kver 2.6.40-1.rc5.f20

   Pour créer des images plus petites, utiliser l'option --hostonly.

Pour voir le contenu d'une image créé:
lsinitrd | less
Pour afficher le contenu d'un fichier dans l'initramfs:
lsinitrd -f /etc/ld.so.conf
Certains modules dracut sont désactivés par défaut et doivent être activés manuellement. Les modules peuvent être ajoutés dans /etc/dracut.conf ou /etc/dracut.conf.d/myconf.conf.
dracut --att bootchart initramfs-bootchart.img
Pour voir une liste des modules dracut disponible
dracut --list-modules
Pour ajouter des modules kernel dans l'initramfs qui ne sont pas automatiquement ajoutés par dracut, utiliser l'option --add-drivers ou dans /etc/dracut.conf.
dracut --add-drivers mymod initramfs-with-mymod.img
Un initramfs généré sans le mode hostonly ne contient aucun fichiers de configuration système, donc la configuration doit être faite sur la ligne de commande kernel. Pour afficher la ligne de commande:
dracut --print-cmdline
Spécifier le périphérique root:
root=/dev/sda2
Spécifier les paramètres clavier
rd.vconsole.font=latarcyrheb-sun16 rd.vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8
blacklister les modules kernel
rd.driver.blacklist=mptsas rd.driver.blacklist=nouveau
Pour accélerer le processus de démarrage il est possible de spécifier plus d'informations. Par exemple, on peut indiquer à dracut que la partition root n'est pas un volume LVM ni un raid
rd.luks=0 rd.lvm=0 rd.md=0 rd.dm=0
Injecter des fichiers personnalisés avec l'option --include
dracut --include cmdline-preset /etc/cmdline.d/mycmdline.conf initramfs-cmdline-pre.img
L'option --install permet de spécifier de nombreux fichier qui sont installés dans l'image initramfs aux même emplacement.
dracut --install 'strace fsck.ext3 ssh' initramfs-dbg.img
boot réseaux
ip=dhcp
Pour réduire la taille de l'image, il est possible d'omettre tous les modules dracut. On peut également spécifie les modules kernel et dracut exacte. Par exemple pour une image NFS:
dracut -m "nfs network base" initramfs-nfs-only.img
puis on eut réduire encore la taille avec --host-only
dracut -m "nfs network base" --host-only initramfs-nfs-host-only.img

Résolution de problèmes

   Si le processus de boot échoue, il existe de nombreuses options pour debugger la situation:

1. Supprimer "rhgb" et "quiet"
2. Ajouter 'rd.shell'
3. ajouter 'rd.shell rd.debug log_bug_len=1M'
4. /run/initramfs/rdsosreport.txt est généré et contient tous les logs et la sortie des outils important.

debugger dracut

Debugger dracut nécessite une console durant le boot. Cette section documente uen connection série pour enregistrer les messages de boot
1. Activer la console série pour le kernel et le bootloader
2. ouvrir /boot/grub2/grub.cfg, sous la ligne timeout=5, ajouter:
serial --unit=0 --speed=9600
terminal --timeout=5 serial console
3. ouvrir /boot/grub2/grub.cfg, ajouter les arguments de boot à la ligne kernel:
console-tty0 console=ttys0,9600
4. Rediriger la sortie non-interactive
exec ›/dev/kmsg 2›&1 ‹/dev/console

OPTIONS

--kver ‹kernel version› Définis la version kernel
-f, --force Écrase un initramfs existant
-a, --add ‹list of dracut modules› Ajoute des modules dracut. peut être spécifié plusieurs fois
--force-add ‹list of dracut modules› Force l'ajoute de modules dracut dans le jeu de modules par défaut. Peut être spécifié plusieurs fois
-o, --omit ‹list of dracut modules› Omet les modules dracut spécifié Peut être spécifié plusieurs fois
-m, --modules ‹list of drucat modules› Spécifie une liste de modules dracut à appeler pendant la construction de l'initramfs. Les modules sont localisé dans /usr/lib/dracut/modules.d. Peut être spécifié plusieurs fois. Cette option force dracut à n'inclure que les modules spécifiés dans la liste
-d, --drivers ‹list of kernel modules› Liste de modules kernel à inclure exclusivement dans l'initramfs, sans le suffixe .ko. Peut être spécifié plusieurs fois.
--add-drivers ‹list of kernel modules› Liste de modules kernel à ajouter à l'initramfs
--force-drivers ‹list of kernel modules› idem à add-drivers, mais s'assure que les pilotes sont chargés très tôt via modprobe
--omit-drivers ‹list of kernel modules› Liste de modules kernel à exclure de l'initramfs. peut être spécifié plusieurs fois
--filesystems ‹list of filesystems› Liste de modules de systèmes de fichier à inclure exclusivement dans l'initramfs. peut être spécifié plusieurs fois
-k, --kmoddir ‹kernel directory› Répertoire où rechercher les modules kernel.
--fwdir ‹dir›[:‹dir›...]++ Répertoires additionnels, où rechercher des firmwares. Peut être spécifié plusieurs fois
--kernel-cmdline ‹parameters› Paramètres de ligne de commande kernel par défaut
--kernel-only N'installe que les pilotes kernel et les firmwares
--no-kernel N'installe par les pilotes kernel ni les firmwares
--early-microcode Combine le microcode avec ramdisk
--no-early-microcode Ne combine pas le microcode avec ramdisk
--print-cmdline Affiche la ligne de commande kernel pour le layout disque courant
--mdadmconf Inclus /etc/mdadm.conf
--nomdadmconf N'inclus pas /etc/mdadm.conf
--lvmconf inclus /etc/lvm/lvm.conf
--nolvmconf N'inclus pas /etc/lvm/lvm.conf
--fscks [LIST] Ajoute une liste d'outils fsck, en plus de ceux spécifiés dans la configuration.
--nofscks inhibe l'installation des outils fsck
--strip strip les binaires dans l'initramfs
--nostrip ne strip pas les binaires dans l'initramfs
--prelink prelink les binaires dans l'initramfs
--noprelink ne prelink pas les binaires dans l'initramfs
--hardlink hardlink les fichiers dans l'initramfs
--nohardlink ne haldlink pas les fichiers dans l'initramfs
--prefix ‹dir› préfixe les fichiers dans l'initramfs avec le répertoire spécifié
--noprefix ne préfixe pas les fichiers dans l'initramfs
--debug Affiche des inforamtion de débuggage durant la construction
-v, --verbose mode verbeux
-q, --quiet mode silencieux
-c, --conf ‹dracut configuration file› spécifie le fichier de configuration à utiliser
--confdir ‹configuration directory› Spécifie le répertoire de configuration à utiliser
--tmpdir ‹temporary directory› Spécifie le répertoire temporaire à utiliser
--sshkey ‹sshkey file› Fichier de clé ssh utilisé avec le module ssh-client
--logfile ‹logfile› Fichier de log à utiliser
-l, --local Active le mode locale. dracut utilise les modules depuis le répertoire courant au-lieu des modules installés dans /usr/lib/dracut/modules.d.
-H, --hostonly Mode host-only: n'installe que ce qui est nécessaire pour booter l'hôte locale.
-N, --no-hostonly Désactive le mode host-only
--hostonly-cmdline Stocke les arguments de ligne de commande kernel nécessaires dans l'initramfs
--no-hostonly-cmdline Ne stocke pas les arguments de ligne de commande nécessaires dans l'initramfs
--hostonly-i18n Installe seulement le clavier nécessaire et les fonts en accord avec la configuration de l'hôte
--no-hostonly-i18n Installe tous les claviers et fonts disponibles
--persistent-policy ‹policy› Utiliser la stratégie pour adresses les disques et partitions. peut être un nom de répertoire dans /dev/disk (ex by-uuid, by-label)
--fstab Utilise /etc/fstab au lieu de /proc/self/mountinfo
--add-fstab ‹filename› Ajoute les entrées du fichier au fstab de l'initramfs
--mount "‹device› ‹mountpoint› ‹filesystem type› [‹filesystem options› [‹dump frequency› [‹fsck order›]]]" Monte de périphérique dans l'iniramfs.
--mount "‹mountpoint›" idem, mais les paramètres manquant sont déterminés en recherchant dans les montages courants
--add-device ‹device› Connecte le périphérique. Utile en mode hostonly pour le supporte du swap dans une partition lvm chiffrée.
-i, --include ‹SOURCE› ‹TARGET› Inclus les fichiers dans le répertoire source dans le répertoire cible dans l'initramfs. Peut être spécifié plusieurs fois
-I, --install ‹file list› Installe la liste de fichiers dans l'initramfs
--install-optional ‹file list› Installe la liste des fichiers dans l'initramfs, s'ils existent
--gzip Compresse l'initramfs avec gzip
--bzip2 Compresse l'initramfs avec bzip2
--lzma Compresse l'initramfs avec lwma
--xz Compresse l'initramfs avec xz
--lzo Compresse l'initramfs avec lzop
--lz4 Compresse l'initramfs avec lz4
--compress ‹compressor› Compresse l'initramfs avec le programme de compression spécifié.
--no-compress Ne compresse pas l'initramfs généré
--reproducible Crée des images reproductible
--no-reproducible Ne créé pas d'images reproductibles
--list-modules Liste les module dracut disponibles
-M, --show-modules Les les modules inclus durant la construction
--keep Conserve le répertoire temporaire pour débuggage
--printsize Affiche la taille du module installé
--profile Affiche les informations de profile du processus de construction
--ro-mnt Mount / et /usr en lecture seule
-L, --stdlog ‹level› Niveau de log, de 0 à 6.
--regenerate-all Régénère toutes les images initramfs dans l'emplacement par défaut avec les versions kernel trouvés dans le système.
--loginstall ‹DIR› Log tous les fichiers installés depuis l'hôte dans le répertoire spécifié
--uefi Créé un exécutable uefi.
--uefi-stub ‹FILE› Spécifie le stub loader UEFI, qui charge le kernel, initramfs et ligne de commande attachés. Défaut: /lib/systemd/boot/efi/linux‹EFI-MACHINE-TYPE-NAME›.efi.stub. ou /usr/lib/gummiboot/linux‹EFI-MACHINE-TYPE-NAME›.efi.stub
--kernel-image ‹FILE› Spécifie l'image kernel à inclure dans l'exécutable UEFI. Défaut: /lib/modules/‹KERNEL-VERSION›/vmlinuz ou /boot/vmlinuz-‹KERNEL-VERSION›

Fichiers

/var/log/dracut.log Fichier de log de la création de l'initramfs
/tmp/dracut.log fichier de log, si /var/log/dracut n'est pas accéssible en écriture
/etc/dracut.conf Fichier de configuration de dracut
/etc/dracut.conf.d/*.conf Fichiers de configurations de dracut
/usr/lib/dracut/dracut.conf.d/01-dist.conf /usr/lib/dracut/dracut.conf.d/02-rescue.conf /usr/lib/dracut/dracut.conf.d/50-nss-softokn.conf Fichiers de configurations de dracut
/etc/conf.d/ (initramfs) Fichiers sourcés dans l'initramfs pour définir les valeurs initiales
/etc/cmdline (initramfs) Contient des options de ligne de commande additionnelles
/etc/cmdline.d/*.conf (initramfs) Contient des options de ligne de commande additionnelles
^
22 mai 2017

htmlpdflatexmanmd




dracut.cmdline

dracut.cmdline

Options de ligne de commande kernel dracut

   Le périphérique root utilisé par le kernel est spécifié dans le fichier de configuration de boot dans la ligne de commande kernel, comme toujours. La spécification traditionnelle root=/dev/sda1 est toujours permise, mais non encouragée. Le périphérique root devrait être identifié par un label ou un uuid.

  Les paramètres "rd.*" mentionnés sans '=' sont des paramètres booléens. Si l'assignement avec '=' est manquant, '=1' est assumé.

Standard

init=‹path to real init› Spécifie le chemin du programme init à démarrer un fois l'initramfs terminé
root=‹path to blockdevice› Spécifie le périphérique à utilisé pour '/'
rootfstype=‹filesystem type› auto, si non spécifié
rootflags=‹mount options› Spécifie des options de montage additionnels pour '/'. Non spécifié, lit /etc/fstab du vrai '/'.
ro force '/' et '/usr' en lecture seule
rw force '/' et '/usr' en lecture écriture
rootfallback=‹path to blockdevice› Spécifie le périphérique block à utiliser comme périphérique root, si le root normal ne peut être trouvé
rd.auto rd.auto=1 ACtive l'auto-assemblage des périphérique spéciaux comme cryptoLUKS, dmraid, mdraid ou lvm.
rd.hostonly=0 Supprime tous ce qui est compilé dans la configuration de l'hôte. Celà permet de booter sur un changement de disque.
rd.cmdline=ask Demande à l'utilisateur des paramètres additionnels
rd.fstab=0 N'honore pas les options de montage spéciaux pour '/' dans /etc/fstab du vrai '/'
resume=‹path to resume partition› Résume depuis une partition swap
rd.skipfsck N'effectue pas de fsck pour '/' et '/usr'.

iso-scan/filename

   Utiliser iso-scan/filename avec une iso Fedora/Red Hat/CentOS fonctionne en copiant les paramètres cmdline kernel

Divers

rd.driver.blacklist=‹drivername›[,‹drivername›,...] Ne pas charger le module kernel. Peut être spécifié plusieurs fois
rd.driver.pre=‹drivername›[,‹drivername›,...] Force le chargement du module spécifié. Peut être spécifié plusieurs fois
rd.driver.post=‹drivername›[,‹drivername›,...] Force le chargement du module une fois tous les modules automatique ont été chargé. Peut être spécifié plusieurs fois
rd.retry=‹seconds› Délai pour retenter le initqueue pour configurer les périphériques. Défaut: 30s. après 2/3 du temps, les raids dégradés sont démarrés de force.
rd.timeout=‹seconds› Délai d'attente pour que les périphériques apparaissent. Défaut: 0 - indéfinis. noter que ce délai ne devrait pas dépasser rd.retry
rd.noverifyssl Accèpte les certificats auto-signés pour les téléchargements ssl
rd.ctty=‹terminal device› Spécifie le terminal de contrôle pour la console. Utile avec plusieurs console=*.

debug

rd.info AFfiche des informations supplémentaires même si 'quiet' est spécifié
rd.shell Permet d'être basculé dans un shell si le montage root échoue
ld.debug définis -x pour le shell dracut. Si systemd est actif dans l'initramfs, toute la sortie est loggée dans le journal système.
rd.memdebug=[0-3] Affiche l'utilisation mémoire, de 0 à 3
rd.break Bascule dans un shell à la fin
rd.break={cmdline|pre-udev|pre-trigger|initqueue|pre-mount|mount|pre-pivot|cleanup} Bascule dans un shell au breakpoint définis
rd.udev.info Définis le niveau de log udev à info
rd.udev.debug Définis le niveau de log udev à debug

I18N

rd.vconsole.keymap=‹keymap base file name› Table de traduction clavier chargé par loadkeys; pris depuis le répertoires de keymaps. Écris dans KEYMAP dans /etc/vconsole.conf dans l'initramfs
rd.vconsole.keymap.ext=‹list of keymap base file names› Liste de keymaps supplémentaires, écris d-ans EXT_KEYMAP dans /etc/vconsole.conf
rd.vconsole.unicode (bool) Indique le mode utf-8. Sera écrit dans UNICODE dans /etc/vconsole.conf
rd.vconsole.font=‹font base file name› Police de caractère de la console. Écris dans FONT dans /etc/vconsole.conf
rd.vconsole.font.map=‹console map base file name› Voir setfont -m.
rd.vconsole.font.unimap=‹unicode table base file name› Voir setfont -u
rd.locale.LANG=‹locale› Pris depuis l'environnement.
rd.locale.LC_ALL=‹locale› Pris depuis l'environnement

LVM

rd.lvm=0 Désactive la détection LVM
rd.lvm.vg=‹volume group name› N'active que ce groupe de volume. Peut être spécifié plusieurs fois
rd.lvm.lv=‹logical volume name› N'active que les volumes logique spécifiés. Peut être spécifié plusieurs fois
ld.lvm.conf=0 Supprime tout /etc/lvm/lvm.conf, qui pourrait exister dans l'initramfs

LUKS

ld.luks=0 Désactive la détection LUKS
rd.luks.uuid=‹luks uuid› N'active que les partitions LUKS avec l'uuid donné.
rd.luks.allow-discards=‹luks uuid› Permet l'utilisations des requêtes discards (TRIM) pour les partitions LUKS avec l'uuid donné.
rd.luks.allow-discards Permet l'utilisations des requêtes discards (TRIM) pour toutes les partitions LUKS
rd.luks.crypttab=0 Ne vérifie pas si la partition LUKS est dans /etc/crypttab

LUKS - key on removable device support

rd.luks.key=‹keypath›:‹keydev›:‹luksdev› keypath est le chemin d'une clé à rechercher. si keypath fini par .gpg, c'est une clé symétrique GPG. keydev est un périphérique sur lequel la clé réside. Peut être un périphérique, UUID ou label. luksdev indique le périphérique luks auquel s'applique la clé.

md raid

rd.md=0 Désactive la détection raid
rd.md.imsm=0 Désactive les raids imsm/ism
rd.md.ddf=0 Désactive les raids ddf
rd.md.conf=0 Ignore mdadm.conf inclus dans l'initramfs
rd.md.waitclean=1 Attends la fin des resynchro, récupération, ou reshape avant de continuer
rd.md.uuid=‹md raid uuid› N'active que le raid avec l'uuid spécifié. peut être spécifié plusieurs fois

dm raid

rd.dm=0 Désactive la détection dm raid
rd.dm.uuid=‹dm raid uuid› N'active que le raid avec l'uuid spécifié. peut être spécifié plusieurs fois

multipath

rd.multipath=0 Désactive la detection multipath

FIPS

rd.fips Active FIPS
rd.fips.skipkernel Ne vérifie pas le checksum de l'image kernel

Réseau

ip={dhcp|on|any|dhcp6|auto6} spécifie la méthode d'obtention d'une adresse ip
ip=‹interface›:{dhcp|on|any|dhcp6|auto6}[:[‹mtu›][:‹macaddr›]] idem, spécifique à une interface. peut être spécifié plusieurs fois
ip=‹client-IP›:[‹peer›]:‹gateway-IP›:‹netmask›:‹client_hostname›:‹interface›:{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[‹mtu›][:‹macaddr›]] Configuration réseau explicite. Peut être spécifié plusieurs fois
ip=‹client-IP›:[‹peer›]:‹gateway-IP›:‹netmask›:‹client_hostname›:‹interface›:{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[‹dns1›][:‹dns2›]] configuration réseau explicite.
ifname=‹interface›:‹MAC› Assigne le nom spécifié au périphérique réseau.
rd.route=‹net›/‹netmask›:‹gateway›[:‹interface›] Ajouter une route statique.
bootdev=‹interface› Spécifie l'interface réseau à utiliser pour les informations netroot et de routage. Requis si plusieurs lignes ip= sont utilisées
BOOTIF=‹MAC› Spécifie l'interface réseau à utiliser pour les informations netroot et de routage.
rd.bootif=0 Désactive le parsing BOOTIF, qui est fournis par PXE
nameserver=‹IP› [nameserver=‹IP› ...] Spécifie les serveurs de noms à utiliser
rd.peerdns=0 Désactive le paramètre DNS des paramètres DHCP
biosdevname=0 désactive le renommage d'interface réseau biosdevname
rd.reednet=1 active l'événement réseau sans netroot définis
vlan=‹vlanname›:‹phydevice› Définis un périphérique vlan
bond=‹bondname›[:‹bondslaves›:[:‹options›]] Définis une périphérique bond
team=‹teammaster›:‹teamslaves› Définis un périphérique team
bridge=‹bridgename›:‹ethnames› Définis un périphérique bridge

NFS

root=[‹server-ip›:]‹root-dir›[:‹nfs-options›] Monte un partage NFS. si aucun serveur n'est donné, utilise dhcp
root={dhcp|dhcp6} permet de rechercher le chemin de root via dhcp
rd.nfs.domain=‹NFSv4 domain name› Spécifie le domaine NFSv4. Écrase les paramètres dans /etc/idmap.conf
rd.net.dhcp.retry=‹cnt› Si définis, dracut tente de se connecter via dhcp, cnt fois avant d'échouer. Défaut: 1
rd.net.timeout.dhcp=‹arg› Si définis, dhclient est appelé sans "-timeout ‹arg›"
rd.net.timeout.iflink=‹seconds› Délai d'attente d'activation des liens. Défaut: 60
rd.net.timeout.ifup=‹seconds› Délai d'attente de l'état "up" des lient. Défaut: 20
rd.net.timeout.route=‹seconds› Délai d'attente d'activation des routes. Défaut: 20
rd.net.timeout.ipv6dad=‹seconds› Délai d'attente pour IPv6 DAD. Défaut: 50
rd.net.timeout.ipv6auto=‹seconds› Délai d'attente pour l'adressage ipv6 automatique. Défaut: 40
rd.net.timeout.carrier=‹seconds› Délai d'attente de reconnaissance du carrier. Défaut: 5

CIFS

root=cifs://[‹username›[:‹password›]@]‹server-ip›:‹root-dir› Définis un partage cifs
cifsuser=‹username› username cifs
cifspass=‹password› password cifs

iSCSI

root=iscsi:[‹username›:‹password›[:‹reverse›:‹password›]@][‹servername›]:[‹protocol›]:[‹port›][:[‹iscsi_iface_name›]:[‹netdev_name›]]:[‹LUN›]:‹targetname› Définis un accès iSCSI pour root
root=???
netroot=iscsi:[‹username›:‹password›[:‹reverse›:‹password›]@][‹servername›]:[‹protocol›]:[‹port›][:[‹iscsi_iface_name›]:[‹netdev_name›]]:[‹LUN›]:‹targetname› Plusieurs options netroot sont permis pour définir plusieurs disques iscsi
root=??? rd.iscsi.initiator=‹initiator› rd.iscsi.target.name=‹target name› rd.iscsi.target.ip=‹target ip›
rd.iscsi.target.port=‹target port› rd.iscsi.target.group=‹target group› rd.iscsi.username=‹username›
rd.iscsi.password=‹password› rd.iscsi.in.username=‹in username› rd.iscsi.in.password=‹in password› Spécifier manuellement tous les paramètres iscsistart.
root=??? netroot=iscsi rd.iscsi.firmware=1 Li le paramètre iscsi depuis le firmware BIOS
rd.iscsi.param=‹param› Le paramètre est passé à iscsistart. peut être spécifié plusieurs fois
rd.iscsi.ibft rd.iscsi.ibft=1 Active l'autoconfiguration iBFT pour les interfaces
rd.iscsi.waitnet=0 Désactive l'attente que toutes les interfaces soient actives avant de tenter une connection aux targets iSCSI
rd.iscsi.testroute=0 Désactive la vérification, si la route vers de target iSCSI est possible avant de tenter une connection

FCoE

fcoe=‹edd|interface|MAC›:{dcb|nodcb} Définis une connexion FCoE via l'interface spécifiée.

NBD

root=??? netroot=nbd:‹server›:‹port/exportname›[:‹fstype›[:‹mountopts›[:‹nbdopts›]]] Mounte un partage nbd.
root=dhcp dhcp root-path=nbd:‹server›:‹port/exportname›[:‹fstype›[:‹mountopts›[:‹nbdopts›]]] récupère les informations nbd via dhcp.

DASD

rd.dasd=... Même syntaxe que le paramètre du module kernel.

ZFCP

rd.zfcp=‹zfcp adaptor device bus ID›,‹WWPN›,‹FCPLUN› Peut être spécifié plusieurs fois
rd.zfcp.conf=0 ignore zfcp.conf inclus dans l'initramfs

ZNET

rd.znet=‹nettype›,‹subchannels›,‹options› Peut être spécifié plusieurs fois

Booter des images live

   dracut offre plusieurs options pour les images live.

  SquashFS Le système boot avec un fs readonly depuis le squashfs et applique un dm rw par dessus le fs readonly.

  non compressé Quand le système live est installé avec --skipconpress, le système root ext3fs.img, est étendu à l'installation et aucun squashfs n'est utilisé durant le boot.

  image writable Le système récupère une image compressée, l'extrait dans /run/initramfs/fsimg/rootfs.img, la connecte dans un périphérique loop, créé un dm writable à /dev/mapper/live-rw et le monte comme volume rw à /.

rd.writable.fsimg=1 ACtive le support de système de fichier rw.
root=live:‹url› Boot une image live récupérée depuis l'url spécifié. (http, https, ftp, terrent, tftp)
rd.live.debug=1 Active la sortie debug du processus de boot
rd.live.dir=‹path› Spécifie le répetroire dans le squashfs où ext3fs.img ou rootfs.img peuvent être trouvés. Défaut: LiveOS
rd.live.squashimg=‹filename of SquashFS image› Spécifie le fichier d'une image squash du système de fichier root. Défaut: squashfs.img
rd.live.ram=1 Copie l'image complète en RAM et l'utilise pour booter. Utile quand l'image réside sur un DVD par ex. qui doit être éjeté ensuite.
rd.live.overlay=‹devspec›:(‹pathspec›|auto)|none Permet l'utilisation d'overlay permanent.
rd.live.overlay.size=‹size MiB› Spécifie une taille d'overlay persistant. Défaut: 512
rd.live.overlay.readonly=1 Spécifie un overlay rw non persistant stacké sur un snapshot ro.
rd.live.overlay.reset=1 Spécifie qu'un overlay persistant devrait être réinitialisés au boot.
rd.live.overlay.thin=1 Active l'utilisation de snapshots thin.

Plymouth

plymouth.enable=0 Désactive plymouth complètement
rd.plymouth=0 Désactive plymouth seulement dans l'initramfs

Clés kernel

masterkey=‹kernel master key path name› Définis la clé maître
masterkeytype=‹kernel master key type› Définis le type de clé maître
evmkey=‹EVM key path name› Définis le chemin de la clé EVM
ecryptfskey=‹eCryptfs key path name› Définis le chemin de la clé eCryptfs
^
22 mai 2017

htmlpdflatexmanmd




dracut.conf

dracut.conf

Fichier de configuration pour dracut

OPTIONS

add_dracutmodules+=" ‹dracut modules› " Ajoute la liste de modules dracut
dracutmodules+=" ‹dracut modules› " Liste de modules dracut à appeler
omit_dracutmodules+=" ‹dracut modules› " Omet la liste des modules dracut
drivers+=" ‹kernel modules› " liste de modules kernel à inclure exclusivement
add_drivers+=" ‹kernel modules› " liste de module à inclure
force_drivers+=" ‹list of kernel modules› " idem à add_drivers, mais s'assure que les pilotes sont chargés très tôt via modprobe
omit_drivers+=" ‹kernel modules› " liste de modules à ne pas ajouter
filesystems+=" ‹filesystem names› " Liste de modules fs à inclure exclusivement
drivers_dir="‹kernel modules directory›" Répertoire où rechercher les modules kernel
fw_dir+=" :‹dir›[:‹dir› ...] " Répertoire additionnel où rechercher les firmwares
install_items+=" ‹file›[ ‹file› ...] " Fichiers additionnels à inclure
install_optional_items+=" ‹file›[ ‹file› ...] " fichiers additionnels à inclure s'ils existent
compress="{bzip2|lzma|xz|gzip|lzo|lz4|‹compressor [args ...]›}" compression à utiliser
do_strip="{yes|no}" strip les binaire à inclure
do_prelink="{yes|no}" prelink les binaires à inclure
hostonly="{yes|no}" mode hostonly
hostonly_cmdline="{yes|no}" Stocke les arguments de ligne de commande dans l'initramfs
i18n_install_all="{yes|no}" Installe tous les fichiers claviers et font disponible
persistent_policy="‹policy›" Stratégie pour adressesr les disques et partitions. (ex: by-uuid, by-label)
tmpdir="‹temporary directory›" répertoire temporaire à utiliser
use_fstab="{yes|no}" Utilise /etc/fstab au lieur de /proc/self/mountinfo
add_fstab+=" ‹filename› " Ajoute les entrées dans le fichier au fstab de l'initramfs
add_device+=" ‹device› " Connecte le périphérique. Utile en mode hostonly pour le supporte du swap dans une partition lvm chiffrée.
mdadmconf="{yes|no}" Inclus /etc/mdadm.conf
lvmconf="{yes|no}" Inclus /etc/lvm/lvm.conf
fscks=" ‹fsck tools› " Ajoute une liste d'outils fsck. Défaut: "umount mount /sbin/fsck /sbin/fsck.btrfs /sbin/fsck.cramfs /sbin/fsck.ext2 /sbin/fsck.ext3 /sbin/fsck.ext4 /sbin/fsck.f2fs /sbin/fsck.fat /sbin/fsck.gfs2 /sbin/fsck.hfs /sbin/fsck.hfsplus /sbin/fsck.jfs /sbin/fsck.minix /sbin/fsck.msdos /sbin/fsck.ntfs /sbin/fsck.reiserfs /sbin/fsck.vfat /sbin/fsck.xfs xfs_db xfs_check xfs_repair e2fsck jfs_fsck reiserfsck btrfsck"
nofscks="{yes|no}" N'installe pas les outils fsck
ro_mnt="{yes|no}" mount '/' et '/usr' en lecture seule
kernel_cmdline="parameters" Spécifie les paramètres de ligne de commande du kernel
kernel_only="{yes|no}" Installe seulement les drivers et firmwares
no_kernel="{yes|no}" N'instanne pas les drivers et firmwares
acpi_override="{yes|no}" Remplace la table ACPI fournis par le BIOS.
acpi_table_dir="‹dir›" Répertoire où rechercher les tables ACPI.
early_microcode="{yes|no}" combine le microcode avec ramdisk
stdloglvl="{0-6}" Niveau de log de l'erreur standard
sysloglvl="{0-6}" Niveau de log syslog
fileloglvl="{0-6}" Niveau de log fichier
logfile="‹file›" Chemin du fichier de log
show_modules="{yes|no}" Affiche le nom des modules inclus sur stdout
i18n_vars="‹variable mapping›" voir dracut/modules.d/10i18n/README
i18n_default_font="‹fontname›" Font à installer.
i18n_install_all="{yes|no}" Installe tout
reproducible="{yes|no}" Créé une image reproductible
loginstall="‹DIR›" Log tous les fichiers installés depuis l'hôte dans le répertoire spécifié
uefi_stub="‹FILE›" Spécifie le loader UEFI qui va charger le kernel, initramfs et ligne de commande.
kernel_image="‹FILE›" Spécifie l'image kernel à inclure dans l'exécutable UEFI.
^
27 mai 2016

htmlpdflatexmanmd




efi-readvar

efi-readvar

Outil pour afficher les variables sécurisés

   Sans arguments, affiche la base de variables et étend le contenu des hash et des certificats x509. Peut être restreint à des variables spécifiques et des signatures spécifiques dans les variables. Noter que les listes de signatures EFI sont numérotées à partir de 0 et peuvent contenir un ou plusieurs entrées également numérotées à partir de 0, donc 0-0 représente la première entrée de la liste de signature 0.

OPTIONS

-v ‹var› Liste seulement le contenu de ‹var›
-s ‹list›[-‹entry›] Liste seulement la liste de signature donnée
-o ‹file› Sort les les listes de signature demandées dans le fichier

Exemples

voir toutes les variables:
efi-readvars
Voir la seconde entrée de la liste de signature 1 pour la variable db:
efi-readvars -v db -s 1-1
Voir toutes les entrées de la liste de signature 0 pour le KEK
efi-readvars -v KEK -s 0
^
27 mai 2016

htmlpdflatexmanmd




efi-updatevar

efi-updatevar

Outil de mise à jours des variables

OPTIONS

-a Ajoute une valeur à une variable au lieu de la remplacer
Utiliser la liste de signature EFI au lieu de mises à jours signées
-b «binfile› Ajoute le hash du fichier spécifié à la liste de signature
-f ‹file› Ajoute ou remplace le fichier de clé (.esl ou .auth) à ‹var›
-c ‹file› Ajoute ou remplace le certificat x509 à ‹var›
-g ‹guid› guid optionnel pour le certificat x509
-k ‹key› Fichier de clé secrète pour autoriser les mises à jours en User Mode
-d ‹list›[-‹entry›] Supprime la liste de signature spécifiée, ou simplement une entrée dans la liste

Exemples

Supposons vos propres clé PK.auth et noPK.auth, les sortir du système en mode user:
efi-updatevar -f noPK.auth PK
puis les replacer:
efi-updatevar -f PK.auth PK
Ajouter le hash de bin.efi à db en mode setup:
efi-updatevar -b bin.efi db
Ajouter une liste de signature EFI à db en mode setup:
efi-updatevar -a -e append.esl db
Ajouter votre propre clé KEK en mode user:
efi-updatevar -a -c KEK.crt -k PK.key KEK
Ajouter le certificat DB.crt à db en mode user:
efi-updatevar -a -c DB.crt -k KEK.key db
Remplacer l'ancienne clé de plateforme avec une nouvelle:
efi-updatevar -c newPK.crt -k PK.key db
Supprimer la clé privée, basculant du mode user au mode setup:
efi-updatevar -d 0 -k PK.key PK
Et place la clé privée de nouveau (en mode setup):
efi-updatevar -c PK.crt -k PK.key PK
^
27 mai 2016

htmlpdflatexmanmd




hash-to-efi-sig-list

hash-to-efi-sig-list

Créer une entrée de liste de signature de hash depuis un binaire

   Produit un fichier de liste de signature EFI contenant le hash SHA256 du binaire EFI

Exemples

Créer un fichier avec le binaire HelloWorld.efi, pour la placer dans les variables db avec UpdateVar
hash-efi-sig-list HelloWorld.efi hash.esl
^
22 mai 2017

htmlpdflatexmanmd




lsinitrd

lsinitrd

Outil pour afficher le contenu d'une image initramfs

OPTIONS

-s, --size Trie le contenu par taille
-f, --file ‹filename› afficher le contenu du fichier spécifié
-k, --kver ‹kernel version› Affiche l'initramfs de la version kernel spécifiée
--unpack décompresse l'initramfs dans le répertoire courant au lieu d'afficher le contenu
--unpackearly décompresse le microcode dans le répertoire courant
-v, --verbose décompresse en mode verbeux
^
22 mars 2016

htmlpdflatexmanmd




sbattach

sbattach

Outil de signature détachée de boot sécurisé UEFI

OPTIONS

--attach ‹sigfile› Définis sigfile comme table de signature d'image de boot
--detach ‹sigfile› Copie la tabe de signature de l'image de boot dans sigfile
--remove Supprime la table de signature d'image de boot du fichier original
^
22 mars 2016

htmlpdflatexmanmd




sbkeysync

sbkeysync

Met à jours la base de clé EFI

OPTIONS

--efivars=path ‹dir› Point de montage efivars
--verbose Mode verbeux
--pk Définis PK
--keystore ‹dir› Lis les clé depuis le répertoire spécifié
--no-default-keystores Ne lit pas le clé depuis le keystore par défaut
--dry-run Ne met pas à jours la base de clé
^
22 mars 2016

htmlpdflatexmanmd




sbsiglist

sbsiglist

Crée une base de signature EFI_SIGNATURE_LIST

OPTIONS

--owner ‹guid› GID propriétaire de la signature
--type ‹type› Type de signature (sha256)
--output ‹type› Écris la donnée signé dans le fichier
^
22 mars 2016

htmlpdflatexmanmd




sbsign

sbsign

Outil de signature de boot sécurisé UEFI

OPTIONS

--key ‹keyfile› Clé de signature (RSA au format PEM)
--cert ‹certfile› Certificat x509
--detached Écrire une signature détaché, au lieu d'un binaire signé
--output ‹file› Écrit la donnée signé dans le fichier.
^
22 mars 2016

htmlpdflatexmanmd




sbvarsign

sbvarsign

Outil de signature de variable authentifié UEFI

OPTIONS

--key ‹keyfile› Clé de signature (RSA au format PEM)
--cert ‹certfile› Certificat x509
--include-attrs Inclus les attributs au début du fichier de sortie
--guid ‹GUID› GUID EFI pour la variable
--attr ‹attrs› Variable (NON_VOLATILE, BOOTSERVICE_ACCESS, RUNTIME_ACCESS, TIME_BASED_AUTHENTICATED_WRITE_ACCESS, APPEND_WRITE)
--output ‹file› Écris la donnée signé dans le fichier
^
22 mars 2016

htmlpdflatexmanmd




sbverify

sbverify

Outil de vérification de boot sécurisé UEFI

OPTIONS

--cert ‹certfile› Certificat x509
--no-verify Ne vérifie pas le certificat
--detached lit la signature depuis le fichier
^
27 mai 2016

htmlpdflatexmanmd




sig-list-to-certs

sig-list-to-certs

Outils de conversion des listes de signature EFI en certificats openssl

   Prend un fichier de liste de signature EFI et le convertis en certificats x509 au format DER.

Exemples

Voir quels certificats le système UEFI possède:
dmpstore PK › PK.uc16
Ce fichier n'est pas compréhensible à cause du format UC-16, donc pour le convertir:
iconv -f utf-16 PK.uc16 › PK.txt
Puis supprimer l'en-tête. Le dump hexa peut être convertis avec:
xxd -r PK.txt › pk.esl
Et enfin extraire les certificats avec
sig-list-to-certs PK.esl PK
Finallement, voir le certificat:
openssl x509 -text -inform DER -in PK.0
^
27 mai 2016

htmlpdflatexmanmd




sign-efi-sig-list

sign-efi-sig-list

Outils de signature de variables

   Produit un fichier de sortie avec un en-tête d'authentification pour mettre à jours une variable. Cette sortie peut être signée par les clés usuelles directement ou peut être splité pour une signature externe en utilisant les options -o et -i.

OPTIONS

-r Le certificat est rsa2048 au lieu de x509
-m Utilise un compteur monotonique au lieu d'un timestamp
-a Prépare la variable pour APPEND_WRITE au lieu d'un remplacement
-o Ne signe pas, mais sort un fichier du bundle exact à signer
-t timestamp utiliser le timestamp spécifié.
-i Prend une signature détachée au format PEM produit pas -o et complète la création de la mise à jours
-g guid Utilise le guid comme guid propriétaire de la signature
-c crt Le certificat de signature au format PEM

Exemples

Pour signer une simple mise à jours dans db qui a été préparé comme liste de signature EFI dans DB.esl et sort le résultat avec l'en-tête d'authentification dans DB.auth
sign-efi-sig-list -a -c KEK.crt -k KEK.key db DB.esl DB.auth
Pour faire une signature détachée:
sign-efi-sig-list -a -t 'Jul 21 09:39:37 BST 2012' -o db DB.esl DB.forsig
Signer le fichier DB.forsig à la manière openssl. Noter que les standards imposent sha256
openssl smime -sign -binary -in DB.forsig -out DB.signed -signer KEK.crt -inkey KEK.key -outform DER -md sha256
Qui produit une signature PKCS7 détachée dans DB.signed. Maintenant le placer dans le programme:
sign-efi-sig-list -a -i DB.signed -t 'Jul 21 09:39:37 BST 2012' db DB.auth
Pour supprimer une clé, simplement signer un fichier de liste de signature, donc pour produire une mise à jours de variable qui va supprime le PK:
› null.esl
Puis le signer:
sign-efi-sig-list -c PK.crt -k PK.key PK null.esl PK.auth
Utiliser UpdateVars.efi pour l'appliquer:
UpdateVars [-a] db DB.auth
où le flag -a doit être présent si le fichier DB.auth a été créé comme ajout, et absent s'il remplace la variable.
^
31 mars 2016

htmlpdflatexmanmd




bootctl

bootctl

Contrôle le firmware et le paramètre du gestionnaire de boot

   bootctl vérifie, met à jours, installe et supprime le chargeur de boot du système courant.

Commandes

status Vérifie et affiche les versions installées du chargeur et les variables de boot EFI
update Met à jours toutes les versions installées de systemd-boot, si la versions courante est plus récente que la version installée dans la partition système EFI. Cela inclus également le chargeurs EFI default/fallback dans /EFI/Boot/boot*.efi. Une entrée systemd-boot dans les variables de boot EFI est créé s'il n'y a pas d'entrée courante. L'entrée courante sera ajoutée à la fin le la liste de l'ordre de boot.
install Install systemd-boot dans la partitions système EFI. Une copie de systemd-boot sera stockée comme chargeur EFI default/fallback dans /EFI/Boot/boot*.efi. Une entrée systemd-boot dans les variables de boot EFI est créé et ajoutée en haut de la liste de l'ordre de boot.
remove Supprime toutes les versions installées de systemd-boot de la partition système EFI, et supprime systemd-boot des variables de boot EFI

OPTIONS

--path Chemin de la partition système EFI. Le défaut est /boot.
--no-variables Ne touche pas aux variables de boot EFI

Code de sortie

   En cas de succès, retourne 0.
^
11 février 2014

htmlpdflatexmanmd




bootlogd

bootlogd

Enregistre les messages de boot commande

   Il se lance en tâche de fond et copie toutes les chaînes envoyées à /dev/console dans un fichier de log. Si le fichier n'est pas accessible, il les conserve en mémoire jusqu'à ce qu'il soit disponible.

OPTIONS

-d Ne fork pas et se lance en tâche de fond
-c Tente d'écrire dans le fichier de log même s'il n'existe pas. Sans cette options, il attendra que ce fichier apparaisse avant d'écrire dedans, ce qui empêche d'écrire dans un fichier sous un point de montage.
-r S'il existe un fichier nommé logfile, il le renomme en logfile~, à moins que logfile~ existe.
-s S'assure que les données sont écrites dans le fichier après chaque ligne en appelant fdatasync(3). Celà ralentit fsck(8)
-l Fichier de log (défaut: /var/log/boot)
-p PID du processus. (défaut: aucun pid)
^
31 mars 2016

htmlpdflatexmanmd




busctl

busctl

Examiner et superviser le bus D-Bus

OPTIONS

--address=ADDRESS Se connecte au bus spécifié par l'adresse au lieu d'utiliser celui par défaut
--show-machine En affichant la liste des paires, affiche une colonne contenant les noms des conteneurs auxquels ils appartiennent.
--unique En affichant la liste des paires, afficher seulement les noms uniques (sous la forme :number.number)
--acquired L'opposé de --unique. Uniquement les noms connus sont affichés.
--activatable En affichant la liste des paires, affiche seulement les paires qui ne sont pas encore activés, mais peuvent être démarrés automatiquement si accédés.
--match=MATCH En affichant les messages échangés, affiche seulement le sous-jeu correspondant au match
--size= Utilisé avec la commande capture, spécifie la taille de message bus max à capturer. Défaut: 4096
--list Utilisé avec la commande tree, affiche une liste plate de chemins d'objets au lieu d'une arborescence.
-quiet Utilisé avec la commande call, supprime l'affichage du payload de réponse. Noter que cela n'empêche pas les erreurs retournées d'être affichés.
--verbose Avec les commandes call et get-property, affiche dans un format plus verbeux
--expect-reply=BOOL Utilisé avec la commande call, spécifie si busctl devrait attendre la fin du call de méthode, afficher la donnée de la réponse de la méthode, et retourne un succès ou un échec via de code de sortie du process. Défaut: yes
--auto-start=BOOL Utilisé avec la commande call, spécifi si le call de méthode devrait implicitement activer le service appelé, qui ne devrait pas être encore en cours d'exécution mais est configuré en auto-start. Défaut: yes
--allow-interactive-authorization=BOOL Utilisé avec la commande call, spécifie si les services peuvent forcer l'autorisation interactive tout en exécutant l'opération, si la stratégie de sécurité est configurée pour cela. Défaut: yes
--timeout=SECS Utilisé avec la commande call, spécifie le temps max d'attente pour la fin du call de methode. Par défaut, assume des secondes (peut être spécifié avec ms, us, s, min, h, d, w, month, y). Noter que ce timeout ne s'applique pas si --expect-reply=no est utilisé. Défaut: 25s.
--augment-creds=BOOL Contrôle si les données d'accréditifs reportées par list ou status devraient être augmenté avec les données de /proc. Activé, les données affichées peuvent être inconsistantes, vu que les données dans /proc peuvent être plus récentes que le reste des informations d'accréditifs. Défaut: yes
--user Dialogue avec le gestionnaire de service de l'utilisateur appelant, au lieu du gestionnaire de service système.
--system Dialogue avec le gestionnaire de service système.
-H, --host= Exécute l'opération à distance. Spécifie un nom d'hôte, ou un nom d'utilisateur est un nom d'hôte séparé par un @ pour s'y connecter. Le nom d'hôte peut optionnellement être suffixé par un nom de conteneur, séparé par un :, qui connecte directement au conteneur spécifique sur l'hôte spécifié. Il utilise ssh pour dialoguer avec une instance de gestionnaire de machine. Les noms de conteneur peuvent être énumérés avec machinectl -H ‹host›
-M, --machine= Exécute l'opération dans un conteneur local. Spécifie un nom de conteneur
--no-pager Ne sort pas la sortie dans un pager
--no-legend N'affiche pas la légende (en-tête et pied de page)

Commandes

list Affiche tous les paires sur le bus, par noms de service. Par défaut, affiche tous les noms.
status [SERVICE] Affiche les information de processus et d'accréditifs d'un service, un processus, ou le propriétaire du bus.
monitor [SERVICE...] Dump les message échangés. Si SERVICE est spécifié, affiche les message vers et depuis ce paire. Sinon affiche tous les messages sur le bus.
capture [SERVICE...] Similaire à monitor mais écris la sortie au format pcap.
tree [SERVICE...] Affiche une arborescence d'objet d'un ou plusieurs services. Si SERVICE est spécifié, affiche l'arborescence d'objet des services spécifiés, sinon affiche toutes les arborescences sur le bus.
introspect SERVICE OBJECT [INTERFACE] Affiche les interfaces, méthodes, propriétés et signaux de l'objet spécifié (identifié par son chemin) sur le service spécifié. Si l'argument interface est passé, la sortie est limitée aux membres de l'interface spécifiée.
call SERVICE OBJECT INTERFACE METHOD [SIGNATURE [ARGUMENT...]] Invoque une méthode et affiche la réponse. Prend un nom de service, un chemin d'objet, nom d'interface et nom de méthode. Si les paramètres doivent être passés à l'appel de la méthode, une chaîne signature est requise, suivie par les arguments, individuellement formatés comme chaîne. Pour les détails du format utilisé, voir plus bas. Pour supprimer la sortie de la donnée retournée, utiliser l'option --quiet.
get-property SERVICE OBJECT INTERFACE PROPERTY... Récupère la valeur courante d'une ou plusieurs propriétés d'objet. Plusieurs propriétés peuvent être spécifiés à la fois.
set-property SERVICE OBJECT INTERFACE PROPERTY SIGNATURE ARGUMENT... Définis la valeurs courante d'une propriété d'objet.

Format de paramètres

   Les commandes call et set-property prennent une chaîne signature suivie par une liste de paramètres formatés comme chaîne (voir la spécification D-Bus pour les chaînes de signature). Pour les types simple, chaque paramètre suivant la signature devrait simplement être la valeur du paramètre formaté comme chaîne. les valeurs booléennes peuvent être formatées en "true", "yes", "on", ou "1". Pour les tableaux, un argument numérique pour le nombre d'entrées doit être spécifié. Pour les variantes, la signature du contenu doit être spécifié, suivi par le contenu. Pour les dictionnaires et structures, le contenu doit être spécifié directement.

formater une simple chaîne "jawoll"
s jawoll
formater un tableau de chaîne avec 2 entrées:
as 3 hello world foobar
formater un tableau dictionnaire qui map les chaînes en variantes, consistant de 3 entrées. La chaîne "One" est assignée à la chaîne "Eins". "Two" à l'entier 32-bits 2, Yes est assigné comme booléen positif:
a{sv} 3 One s Eins Two u 2 Yes b true

Exemples

Les 2 commandes suivantes écrivent d'abord une propriété puis la lisent. La propriété est trouvée dans l'objet /org/freedesktop/systemd1 du service org.freedesktop.systemd1. Le nom de la propriété est "LogLevel" sur l'interface "org.freedesktop.systemd1.Manager".
busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug
busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s "debug"
Les 2 commandes suivantes lisent une propriété qui contient un tableau de chaînes, et affichent d'abords au format simple, puis au format verbeux
busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment
as 2 "LANG=en_US.UTF-8" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
busctl get-property --verbose org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment
ARRAY "s" {
STRING "LANG=en_US.UTF-8";
STRING "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin";
};
La commande suivante invoque une méthode StartUnit sur l'interface org.freedesktop.systemd1.Manager de l'objet org/freedesktop/systemd1 du service org.freedesktop.systemd1, et lui passe 2 chaînes cups.service et replace.
busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager StartUnit ss "cups.service" "replace"
o "/org/freedesktop/systemd1/job/42684"
^
31 mars 2016

htmlpdflatexmanmd




coredump.conf

coredump.conf, coredump.conf.d

Fichier de configuration de stockage de coredump

   Ces fichiers peuvent se trouver dans les emplacements suivants:

/etc/systemd/coredump.conf
/etc/systemd/coredump.conf.d/*.conf
/run/systemd/coredump.conf.d/*.conf
/usr/lib/systemd/coredump.conf.d/*.conf

   Ces fichiers configurent le comportement de systemd-coredump(8). La configuration par défaut est définie durant la compilation, donc un fichier de configuration dans /etc/systemd/ contient les entrées commentées montrant les défaut. Quand un package doit personnaliser la configuration, il peut installer des configurations dans /usr/lib/systemd/*.conf.d/. Le fichier de configuration principal est lu avant tous les autres, et a la précédence la plus faible. Les fichiers dans un sous-répertoire sont triés alphabétiquement, sans regarder dans quel sous-répertoire il réside. Pour désactiver un fichier de configuration fournis par un vendeur, la manière recommandée est de placer un lien vers /dev/null dans le répertoire /etc avec le même nom de fichier que le fichier de configuration du vendeur.

OPTIONS

Storage= Contrôle où stocker les cores. none log mais ne stocke pas de manière permanente, external (défaut) stocke les cores dans /var/lib/systemd/coredump. journal stocke les cores dans le journal et suis les rotations de journaux. both stocke les cores dans les 2 emplacements.
Compress= Contrôle la compression pour le stockage externe. défaut: yes.
ProcessSizeMax= Taille maximum en octets d'un core qui est traité. les coredump excédant cette taille sont loggé, mais le backtrace ne sera pas généré et le core ne sera pas stocké.
ExternalSizeMax=, JournalSizeMax= Taille maximum (non-compressée) en octets d'un core à sauvegarder
MaxUse=, KeepFree= Force les limites de l'espace disque pris par les coredumps stockés en externe. MaxUse s'assure que les anciens coredumps sont supprimés dès que l'espace disque utilisé par les coredump atteint cette limite (défaut: 10% de la taille totale du disque). KeepFree contrôle l'espace disque à conserver lible au minimum (défaut: 15% de l'espace disque total). Noter que l'espace disque utilisé par les coredumps peut excéder ces limits durant la compression. Les anciens coredumps sont supprimés basés sur de temps via systemd-tmpfiles(8).
^
31 mars 2016

htmlpdflatexmanmd




coredumpctl

coredumpctl

Récupère les coredump du journal

OPTIONS

--no-legend N'affiche pas les en-têtes
-1 Affiche les informations s'un simple coredump seulement, au lieu de lister tous les coredumps connus.
-F FIELD, --field=FIELD Affiche toutes les valeurs possible du champ spécifié correspondant dans les entrées coredump du journal
-o FILE, --output=FILE Écrit le core dans le fichier spécifié
-D DIR, --directory=DIR Utiliser les fichiers journaux dans le répertoire spécifié
--no-pager Ne sort pas la sortie dans un pager

Commandes

list Liste les coredumps capturés dans le journal correspondant aux caractéristiques spécifiées
info Affiche des informations détaillée sur les coredumps capturés dans le journal
dump Extrait le dernier coredump correspondant aux caractéristiques spécifiées.
gdb Invoque gdb sur le dernier coredump correspondant aux caractéristiques spécifiées.

Correspondance

PID Process ID du processus qui a dumpé le core. En entier.
COMM Nom de l'exécutable (correspond à COREDUMP_COMM=). Ne doit pas contenir de '/'
MATCH Prédicat journalctl général. Doit contenir un signe '='

Exemples

Liste tous les coredump d'un programme nommé foo
coredumpctl list foo
Invoque gdb sur le dernier coredump
coredumpctl gdb
Affiche des informations sur un processus qui a dumpé le core, correspondant au PID 6654
coredumpctl info 6654
Extrait le dernier coredump de /usr/bin/bar dans un fichier
coredumpctl -o bar.coredump dump /usr/bin/bar
^
12 mars 2016

htmlpdflatexmanmd




grub-bios-setup

grub-bios-setup

Définir un périphérique de boot en utilisant GRUB

   Définis les images à booter depuis le périphérique spécifié. Ce programme est généralement invoqué par grub-install. Le périphérique donné doit être un périphérique OS (ex: /dev/sda)

OPTIONS

-a, --allow-floppy Rend le périphérique bootable également comme une disquette.
-b, --boot-image=FILE Utilise le fichier comme image de boot. Défaut: boot.ing
-c, --core-image=FILE Utilise le fichier comme image core. Défaut: core.img
-d, --directory=DIR Répertoire contenant les fichiers GRUB. Défaut=/boot/grub
-f, --force Install même si des problèmes sont détectés
-m, --device-map=FILE Utilise le fichier comme map de périphérique. Défaut: /boot/grub/device.map
--no-rs-codes N'applique pas de codes reed-solomon en embarquant core.img. Uniquement pour les cibles BIOS x86
-s, --skip-fs-probe Ne recherche pas de système de fichier dans le périphérique donné
^
12 mars 2016

htmlpdflatexmanmd




grub-editenv

grub-editenv

Éditer le block d'environnement de GRUB

OPTIONS

create Créé un fichier block vide
list Liste les variables courantes
set [NAME=VALUE ...] Définis des variables
unset [NAME=VALUE ...] Supprime des variables

Exemples

Ajouter la langue:
grub-editenv -v - set lang=fr
^
12 mars 2016

htmlpdflatexmanmd




grub-file

grub-file

Vérifie si le fichier est du type spécifié

OPTIONS

--is-i386-xen-pae-domu Vérifier si le fichier peut être booté comme kernel invité non-privilégié Xen PAE i386
--is-x86_64-xen-domu Vérifier si le fichier peut être booté comme kernel invité non-privilégié Xen x86_64
--is-x86-xen-dom0 Vérifie si le fichier peut être utilisé comme kernel invité privilégié Xen x86_64
--is-x86-multiboot Vérifie si le fichier peut être utilisé comme kernel multiboot x86_64
--is-x86-multiboot2 Vérifie si le fichier peut être utilisé comme kernel multiboot2
--is-arm-linux Vérifie si le fichier est un Linux ARM
--is-arm64-linux Vérifie si le fichier est un Linux ARM64
--is-ia64-linux Vérifie si le fichier est un Linux IA64
--is-mips-linux Vérifie si le fichier est un Linux MIPS
--is-mipsel-linux Vérifie si le fichier est un Linux MIPSEL
--is-sparc64-linux Vérifie si le fichier est un Linux SPARC64
--is-powerpc-linux Vérifie si le fichier est un Linux POWERPC
--is-x86-linux Vérifie si le fichier est un Linux
--is-x86-linux32 Vérifie si le fichier est un Linux x86 supportant le mode 32bits
--is-x86-kfreebsd Vérifie si le fichier est ur kFreeBSD x86
--is-i386-kfreebsd Vérifie si le fichier est ur kFreeBSD i386
--is-x86_64-kfreebsd Vérifie si le fichier est ur kFreeBSD x86_64
--is-x86-knetbsd Vérifie si le fichier est ur kNetBSD x86
--is-i386-knetbsd Vérifie si le fichier est ur kNetBSD i386
--is-x86_64-knetbsd Vérifie si le fichier est ur kNetBSD x86_64
--is-i386-efi Vérifie si le fichier est un fichier EFI i386
--is-x86_64-efi Vérifie si le fichier est un fichier EFI x86_64
--is-ia64-efi Vérifie si le fichier est un fichier EFI ia64
--is-arm64-efi Vérifie si le fichier est un fichier EFI ARM64
--is-arm-efi Vérifie si le fichier est un fichier EFI ARM
--is-hibernated-hiberfil Vérifie si le fichier est hiberfil.sys à l'état hibernated
--is-x86_64-xnu Vérifie si le fichier est un XNU x86_64
--is-i386-xnu Vérifie si le fichier est un XNU i386
--is-xnu-hibr Vérifie si le fichier est un XNU
--is-x86-bios-bootsector Vérifie si le fichier est un secteur de boot BIOS
^
12 mars 2016

htmlpdflatexmanmd




grub-fstest

grub-fstest

Outil de débuggage pour les pilotes de système de fichier GRUB

Commandes

blocklist FILE Affiche la liste de blocks du fichier
cat FILE Copie le fichier sur la sortie standard
cmp FILE LOCAL Compare le fichier avec le fichier local
cp FILE LOCAL Copie le fichier dans le fichier local
crc FILE Récupérer le checksum crc32 du fichier
hex FILE Affiche le contenu du fichier en hexa
ls PATH Liste les fichiers dans le chemin
xnu_uuid DEVICE Calcule l'UUID XNU du périphérique
-c, --diskcount=NUM Spécifie le nombre de fichiers d'entrées
-C, --crypto Monte les périphériques crypto
-d, --debug=STRING Définis la variable d'environnement debug
-K, --zfs-key=FILE|prompt Charge la clé crypto zfs
-n, --length=NUM Gère N octets dans le fichier de sortie
-r, --root=DEVICE_NAME Définis le périphérique root
-s, --skip=NUM Saute N octets de fichier de sortie
-u, --uncompress Décompresse les données
-v, --verbose mode verbeux
^
12 mars 2016

htmlpdflatexmanmd




grub-glue-efi

grub-glue-efi

Traite les images EFI ia32 et amd 64 et les traite en accord avec le format Apple

OPTIONS

-3, --input32=FILE Définis le fichier d'entrée pour la partie 32-bits
-6, --input64=FILE Définis le fichier d'entrée pour la partie 64-bits
-o, --output=FILE Définis le fichier de sortie. Défaut: STDOUT
^
12 mars 2016

htmlpdflatexmanmd




grub-install

grub-install

Installer grub

OPTIONS

--compress[=no,xz,gz,lzo] compresse les fichiers GRUB
-d, --directory=DIR Utiliser les images et les modules sous DIR. Défaut: /usr/lib/grub/‹platform›
--fonts=FONTS Installe les FONTS. défaut: unicode
--install-modules=MODULES Installe seulement les modules spécifiés et leur dépendances. Défaut: all
-k, --pubkey=FILE Embarque le fichier comme clé publique pour la vérification de la signature
--locale-directory=DIR Utilise les traductions sous le répertoire. Défaut: /usr/share/locale
--locales=LOCALES Installe seulement les locales. Défaut=all
--modules=MODULES Pré-charge les modules spécifiés
--themes=THEMES Installe les thèmes. Défaut: starfield
-v, --verbose mode verbeux
--allow-floppy Rend le disque bootable comme une disquette
--boot-directory=DIR Installe les images GRUB sous le répertoire DIR/grub.
--bootloader-id=ID L'ID du bootloader. Cette options est seulement disponible sous EFI et Macs
--core-compress=xz|none|auto Choisis la compression à utiliser pour l'image core
--disk-module=MODULE module disque à utiliser (biosdisk ou native). Cette option est seulement disponible sur les cible BIOS
--efi-directory=DIR Utilise DIR comme partition système EFI
--force Install même si des problèmes sont détectés
--force-extra-removable Force l'installation sur média amovible. Cette option est seulement disponible sur EFI
--force-file-id Utilise l'identifiant de fichier même si UUID est disponible
--label-bgcolor=COLOR Utilise la couleur pour le label de fond
--label-color=COLOR Utilise la couleur pour le label
--label-font=FILE utilise la font pour le label
--macppc-directory=DIR Utilise le répertoire spécifié pour l'installation MAC PPC
--no-bootsector n'installe pas le secteur de boot.
--no-nvram ne met pas à jours les variables NVRAM boot-device/Boot*. Seulement disponible sur les cibles EFI et IEEE1275.
--no-rs-codes N'applique pas de codes reed-solomon en embarquant core.img. Cette option est seulement disponible sur les cibles BIOS x86
--no-uefi-secure-boot N'installe pas d'image utilisable avec UEFI, même si le système est démarré en l'utilisant. Uniquement disponible sur EFI
--product-version=STRING Utilise la chaîne comme version
--recheck Supprime la map de périphérique si elle existe
--removable Le périphérique d'installation est amovible. Uniquement disponible sur EFI
-s, --skip-fs-probe Ne sonde pas les système de fichiers dans le périphérique spécifié
--target=TARGET Install GRUB pour le plateforme spécifiée. Défaut: i386-pc
--uefi-secure-boot Installe une image utilisabe avec UEFI. Cette option est seulement disponible sur EFI et si grub-efi-amd64-signed est installé

   Le périphérique d'installation doit être le nom d'un périphérique. grub-install copie les images GRUB dans boot/grub. Dans certaines plateformes, il peut également installer GRUB sur le secteur de boot.
^
12 mars 2016

htmlpdflatexmanmd




grub-kbdcomp

grub-kbdcomp

Génère un fichier de couche clavier au format keymaps(5) dans un format qui peut être utilisé par la commande keymap de GRUB

OPTIONS

-o, --output=FILE Sauve la sortie dans le fichier
^
12 mars 2016

htmlpdflatexmanmd




grub-macbless

grub-macbless

bénir un fichier/répertoire mac

OPTIONS

-p, --ppc Pour les macs basés sur PPC
-v, --verbose mode verbeux
-x, --x86 Pour les macs basés sur x86
^
12 mars 2016

htmlpdflatexmanmd




grub-menulst2cfg

grub-menulst2cfg

transforme un fichier menu.lst en grub.cfg

   Cette commande n'a pas d'option

^
12 mars 2016

htmlpdflatexmanmd




grub-mkconfig

grub-mkconfig

Génère un fichier de configuration GRUB

OPTIONS

-o, --output=FILE Définis le fichier de sortie. Défaut: STDOUT
^
12 mars 2016

htmlpdflatexmanmd




grub-mkdevicemap

grub-mkdevicemap

Créer un fichier de mappage de périphérique

OPTIONS

-n, --no-floppy Ne recherche pas de lecteur de disquette
-s, --probe-second-floppy Recherche le second lecteur de disquette
-m, --device-map=FILE Utilise le fichier comme map. Défaut: /boot/grub/device.map
^
12 mars 2016

htmlpdflatexmanmd




grub-mkfont

grub-mkfont

Créé des fichiers de font GRUB au format PF2

OPTIONS

-a, --force-autohint Force l'autohint
-b, --bold Convertit la font en gras
-c, --asce=NUM set font ascent
-d, --desc=NUM et font descent
-i, --index=NUM Select face index
-n, --name=NAME Définis le nom de la famille de font
--no-bitmap Ignore les bitmaps strikes au chargement
--no-hinting Désactive le hinting
-o, --output=FILE Sauve la sortie dans le fichier
-r, --range=FROM-TO[,FROM-TO] Plage de font
-s, --size=SIZE Taille de font
^
12 mars 2016

htmlpdflatexmanmd




grub-mkimage

grub-mkimage

Créer une image bootable GRUB

OPTIONS

-c, --config=FILE Fichier embarqué comme première configuration
-C, --compression=(xz|none|auto) Choisis la compression à utiliser pour le core
-d, --directory=DIR Utilise les images et les modules sous DIR. Défaut: /usr/lib/grub/‹platform›
-k, --pubkey=FILE Embarque la clé publique pour la vérifitation de signature
-m Embarque le fichier comme image memdisk. Implique -p (memdisk)/boot/grub
-n, --note Ajoute le segment note pour CHRP IEEE1275
-o, --output=FILE Sort l'image générée dans le fichier. Défaut: stdout
-O, --format=FORMAT Génère une image au format spécifié (i386-coreboot, i386-multiboot, i386-pc, i386-pc-pxe, i386-pc-eltorito, i386-efi, i386-ieee1275, i386-qemu, x86_64-efi, i386-xen, x86_64-xen, mipsel-yeeloong-flash, mipsel-fuloong2f-flash, mipsel-loongson-elf, powerpc-ieee1275, sparc64-ieee1275-raw, sparc64-ieee1275-cdcore, sparc64-ieee1275-aout, ia64-efi, mips-arc, mipsel-arc, mipsel-qemu_mips-elf, mips-qemu_mips-flash, mipsel-qemu_mips-flash, mips-qemu_mips-elf, arm-uboot, arm-efi, arm64-efi
-p, --prefix=DIR Définis le préfixe de répertoire. Défaut: /boot/grub
^
12 mars 2016

htmlpdflatexmanmd




grub-mklayout

grub-mklayout

Génère un fichier de couche clavier GRUB au format keymaps(5) dans un format qui peut être utilisé par la commande keymap

OPTIONS

-o, --output=FILE Sauve la sortie dans le fichier
^
12 mars 2016

htmlpdflatexmanmd




grub-mknetdir

grub-mknetdir

Prépare un répertoire de boot réseau GRUB

OPTIONS

--compress[=no,xz,gz,lzo] Compresse les fichiers
-d, --directory=DIR Utilise les images et les modules sous DIR. Défaut: /usr/lib/grub/‹platform›
--fonts=FONTS Installe les FONTS. défaut: unicode
--install-modules=MODULES Installe seulement les modules spécifié. Défaut: all
-k, --pubkey=FILE Embarque la clé publique pour la vérification de la signature
--locale-directory=DIR Utilise les locales sous DIR. Défaut: /usr/share/locale
--locales=LOCALES Installe seulement les locales spécifiées. Défaut: all
--modules=MODULES Précharge les modules spécifiés
--themes=THEMES Installe les thèmes spécifiés. Défaut: starfield
--core-compress=xz|none|auto Choix de la compression de l'image core
--net-directory=DIR Répertoire root du serveur TFTP
--subdir=DIR Sous-réseau relatif d'un serveur réseau
^
12 mars 2016

htmlpdflatexmanmd




grub-mkpasswd-pbkdf2

grub-mkpasswd-pbkdf2

Génère un mot de passe hashé pour GRUB

OPTIONS

-c, --iteration-count=NUM Nombre d'itération de PBKDF2
-l, --buflen=NUM Longueur du hash générés
-s, --salt=NUM Longueur du salt
^
12 mars 2016

htmlpdflatexmanmd




grub-mkrelpath

grub-mkrelpath

Créé un chemin système relatif a son root

   Transforme un nom de fichier système en nom GRUB

^
12 mars 2016

htmlpdflatexmanmd




grub-mkrescue

grub-mkrescue

Créer une image de récupération GRUB

   Génère une image bootable pour CD/USB/disquette. Les arguments autre que les options sont passé à xorriso.

OPTIONS

--compress[=no,xz,gz,lzo] Compresse les fichiers
-d, --directory=DIR Utilise les images et les modules sous DIR. Défaut: /usr/lib/grub/‹platform›
--fonts=FONTS Installe les FONTS. défaut: unicode
--install-modules=MODULES Installe seulement les modules spécifié. Défaut: all
-k, --pubkey=FILE Embarque la clé publique pour la vérification de la signature
--locale-directory=DIR Utilise les locales sous DIR. Défaut: /usr/share/locale
--locales=LOCALES Installe seulement les locales spécifiées. Défaut: all
--modules=MODULES Précharge les modules spécifiés
--themes=THEMES Installe les thèmes spécifiés. Défaut: starfield
--arcs-boot Active ARCS.
--core-compress=xz|none|auto Choix de la compression de l'image core
--label-bgcolor=COLOR Utilise la couleur comme fond de label
--label-color=COLOR Utilise la couleur pour les labels
--label-font=FILE Utilise la font spécifiée pour les labels
-o, --output=FILE Sauve la sortie dans le fichier
--product-name=STRING Utilise la chaîne spécifiée comme nom de produit
--product-version=STRING Utilise la chaîne spécifiée comme version de produit
--rom-directory=DIR Sauve les images ROM dans le répertoire
--sparc-boot Active le boot sparc
--xorriso=FILE Utilise le fichier comme xorriso
^
12 mars 2016

htmlpdflatexmanmd




grub-mkstandalone

grub-mkstandalone

Créé une image GRUB basé sur memdisk

OPTIONS

--compress[=no,xz,gz,lzo] Compresse les fichiers
-d, --directory=DIR Utilise les images et les modules sous DIR. Défaut: /usr/lib/grub/‹platform›
--fonts=FONTS Installe les FONTS. défaut: unicode
--install-modules=MODULES Installe seulement les modules spécifié. Défaut: all
-k, --pubkey=FILE Embarque la clé publique pour la vérification de la signature
--locale-directory=DIR Utilise les locales sous DIR. Défaut: /usr/share/locale
--locales=LOCALES Installe seulement les locales spécifiées. Défaut: all
--modules=MODULES Précharge les modules spécifiés
--themes=THEMES Installe les thèmes spécifiés. Défaut: starfield
--core-compress=xz|none|auto Choix de la compression de l'image core
-o, --output=FILE Sauve la sortie dans le fichier
-O, --format=FORMAT Génère une image au format spécifié (i386-coreboot, i386-multiboot, i386-pc, i386-pc-pxe, i386-pc-eltorito, i386-efi, i386-ieee1275, i386-qemu, x86_64-efi, i386-xen, x86_64-xen, mipsel-yeeloong-flash, mipsel-fuloong2f-flash, mipsel-loongson-elf, powerpc-ieee1275, sparc64-ieee1275-raw, sparc64-ieee1275-cdcore, sparc64-ieee1275-aout, ia64-efi, mips-arc, mipsel-arc, mipsel-qemu_mips-elf, mips-qemu_mips-flash, mipsel-qemu_mips-flash, mips-qemu_mips-elf, arm-uboot, arm-efi, arm64-efi
^
12 mars 2016

htmlpdflatexmanmd




grub-mount

grub-mount

Exporter des systèmes de fichier GRUB avec FUSE

OPTIONS

-C, --crypto Monter des périphériques crypto
-d, --debug=STRING Définir la variable d'environnement debug
-K, --zfs-key=FILE|prompt Charge la clé crypto zfs
-r, --root=DEVICE_NAME Définis le périphérique root
^
12 mars 2016

htmlpdflatexmanmd




grub-probe

grub-probe

Affiche des informations de périphérique pour GRUB

OPTIONS

-d, --device L'argument donné est un périphérique système, pas un chemin
-m, --device-map=FILE Utilise FILE comme map de périphérique (défaut: /boot/grub/device.map)
-t, --target=TARGET Affiche la cible disponible (abstraction, arc_hints, baremetal_hints, bios_hints, compatibility_hint, cryptodisk_uuid, device, disk, drive, efi_hints, fs, fs_label, fs_uuid, gpt_parttype, hints_string, ieee1275_hints, msdos_parttype, partmap, zero_check) défaut: fs
-v, --verbose mode verbeux
^
12 mars 2016

htmlpdflatexmanmd




grub-reboot

grub-reboot

Définis l'entrée de boot par défaut pour le prochain boot uniquement.

OPTIONS

--boot-directory=DIR Utilise le répertoire DIR/grub au lieu de /boot/grub.

   L'entrée de menu spécifiée est un nombre, un titre, ou un identifiant.
^
12 mars 2016

htmlpdflatexmanmd




grub-render-label

grub-render-label

Génère un .disk_label pour Mac

OPTIONS

-b, --bgcolor=COLOR Utilise la couleur pour le fond
-c, --color=COLOR Utilise la couleur pour le texte
-f, --font=FILE Utilise la font (PF2)
-i, --input=FILE Lis le texte depuis le fichier
-o, --output=FILE Définis le fichier de sortie. Défaut: STDOUT
-t, --text=STRING Définis le label
^
12 mars 2016

htmlpdflatexmanmd




grub-script-check

grub-script-check

Vérifie la syntaxe de grub.cfg

OPTIONS

-v, --verbose Affiche des messages d'informations
^
12 mars 2016

htmlpdflatexmanmd




grub-set-default

grub-set-default

Définis l'entrée de boot par défaut pour GRUB. Nécessite de définir GRUB_DEFAULT=saved dans /etc/default/grub

OPTIONS

--boot-directory=DIR Utilise DIR/grub au lieu de /boot/grub

   L'entrée de menu spécifiée est un nombre, un titre, ou un identifiant.
^
12 mars 2016

htmlpdflatexmanmd




grub-syslinux2cfg

grub-syslinux2cfg

Transforme une configuration syslinux en grub.cfg

OPTIONS

-c, --cwd=DIR Répertoire courant de syslinux. Défaut: le répertoire parent du fichie d'entrée
-i, --isolinux assume que l'entrée est un fichier de configuration isolinux
-o, --output=FILE Écris la sortie dans le fichier. Défaut: stdout
-p, --pxelinux Assume que le fichier d'entrée est un fichier de configuration pxelinux
-r, --root=DIR Répertoire root du disque syslinux. Défaut: /
-s, --syslinux Assume que le fichier d'entrée est un fichier de configuration syslinux
-t, --target-root=DIR Répertoire root qui sera vu à l'exécution. Défaut: /
-T, --target-cwd=DIR Répertoire courant du syslinux tel que vu à l'exécution. Défaut: le répertoire parent du fichie d'entrée
^
12 mars 2016

htmlpdflatexmanmd




grub2

grub2

multiboot bootloader

   Brièvement, un boot loader est le premier logiciel qui est lancé au démarrage de l'ordinateur. Il est responsable du chargement et de transférer le contrôle à un kernel. Le kernel, en retour, initialise le reste du système d'exploitation.

   GRUB est un boot loader très puissant, qui peut charger une grande variété de systèmes d'exploitation. GRUB est conçu pour adresser la complexité du boot d'un ordinateur personnel.

   Une des fonctionnalité les plus importantes est sa flexibilité; GRUB comprend les systèmes de fichier et les formats exécutable de kernel, ce qui permet de charger un kernel sans enregistrer sa position physique sur le disque.

   En bootant avec GRUB, vous pouvez utiliser soit une interface en ligne de commande, ou une interface. En utilisant la ligne de commande, il suffit de spécifier l'emplacement du dique et le nom de fichier du kernel manuellement. Dans l'interface par menu, il suffit de sélectionner un OS en utilisant les touches. Le menu est basé sur un fichier de configuration qui peut être préparé avant. Il est possible de basculer d'un mode à l'autre, et même éditer les entrées du menu avant de les utiliser.

Fonctionnalités

- Reconnaissante de plusieurs formats d'exécutable
- Supporte de nombreuses variantes de a.out, plus ELF. Les tables de symbole sont également chargés.
- Support de kernels non-multiboot
- Supporte de nombreux kernels 32bits qui ne sont pas multiboot compliant ( FreeBSD, NetBSD, OpenBSD, et Linux).
- Charger plusieurs modules
- Support complet du chargement de modules.
- Charger un fichier de configuration
- Support de fichiers de configuration au format texte avec des commandes de boot. Il est également possible de charger un autre fichier de configuration dynamiquement et embarque un fichier de configuration preset dans un fichier image grub. La liste des commandes sont un superset de ces lignes de commandes supportées.
- Fournis une interface par menu
- Une interface à menu avec un timeout programmable est disponible. Il n'y a pas de limite fixée sur le nombre d'entrées de boot, et l'implémentation actuelle a l'espace pour des centaines.
- Interface en ligne de commande flexible: Une interface flexible, accessible depuis le menu, est disponible pour éditer les commandes, ou écrire une nouvelle commande. Si aucun fichier de configuration n'est présent, GRUB supprime la ligne de commande.
- Suporte plusieurs systèmes de fichier: AFFS, AtheOs Fs, BeFS, BtrFS, cpio, ext2/3/4, DOS, ISO9660, JFS, Minix Fs, NTFS, ReiserFS, ROMFS, SFS, Squash4, tar, UDF, BSD UFS, XFS et ZFS.
- Décompression automatique: Peut décompresser des fichiers compressés avec gzip ou xz. Cette fonction est automatique et transparente à l'utilisateur.
- Accède aux données sur un périphérique installé
- Supporte la lecture des données depuis des disquettes ou disques dur reconnus par le BIOS
- Indépendant des translation de géometrie du disque. À la différence de nombreux boot loader, GRUB gère les géometries de disque de manière transparente.
- Detecte toute la RAM installée. GRUB peut généralement trouver toute la RAM installée sur une machine compatible PC. Il utiliser des techniques de requête du BIOS pour trouver toutes les régions mémoire.
- Support du mode LBA. GRUB détecte automatiquement si le mode LBA est accessible et l'utilise si disponible.
- Support du boot réseau
- GRUB est un bootloader basé sur le disque mais supporte également le réseau, en utilisant TFTP
- Support de terminaux distants
- Pour supporter des machines sans console, GRUB fournis un terminal distant. Seul le terminal série est implémenté actuellement.

Convention de nommage

La syntaxe de périphérique utilisée dans GRUB est un peu différent de ce qui est vu dans un OS, et il est nécessaire de spécifier un couple disque/partition. l'exemple:
(fd0)
Avant tout, GRUB exige que le nom du périphérique soit entre parenthèses. fd signifie une disquette. Le numéro 0 est le numéro du disque, qui est compté en partant de 0. Cette expression indique toute la disquette.
(hd0,msdos2)
Ici, hd signifie un disque dur. 0 indique le numéro du disque. msdos indique le type de partition, et 2 indique e numéro de partition. Les numéros de partitions sont comptés à partir de 1, et non 0. Cette expression spécifie la 2ème partition du premier disque. Dans ce cas, GRUB utilise une partition du disque, au lieu du disque entier.
(hd0,msdos5)
Cela spécifie la première partition étendue du disque dur. Noter que les numéros de partition pour les partitions étendues sont comptés à partir de 5, sans regarder le nombre de partition primaire sur le disque.
(hd1,msdos1,bsd1)
Signifie la partition a de BSD sur le premier slice du second disque.

   Noter que GRUB ne fait pas de distinction entre IDE et SCSI. Il compte simplement les numéros de disque de 0, sans regarder leur type. Normalement, un disque IDE est inférieur au numéro d'un disque SCSI, bien que ce n'est pas vrai si l'on change la séquence de boot en inversant les disque IDE et SCSI dans le BIOS.

Maintenant, pour spécifier un fichier on utilisera la syntaxe:
(hd0,msdos1)/vmlinuz
Cela spécifie le fichier nommé 'vmlinuz', trouvé sur la première partition du premier disque dur.

Installation

   Pour installer GRUB comme boot loader, il faut d'abord installer GRUB et les utilitaires sous un OS type UNIX. Une fois installé, la commande grub-install install le bootloader sur le disque.

   GRUB est fournis avec des images de boot, qui sont généralement dans /usr/lib/grub/‹cpu›-‹plateform› c'est le répertoire d'image, et le répertoire où le boot loader doit les trouver (généralement /boot) est le répertoire de boot.

   Pour installer GRUB sous un OS type Unix, invoquer le programme grub-install en root. L'utilisation est très simple. Vous devez simplement spécifier un argument au programme, où installer le boot loader. L'argument doit être un fichier de périphérique (par ex: /dev/hda). l'option --boot-directory spécifie le répertoire de boot (/boot par défaut).

Certains bios ont un bug qui exposent la première partition d'un disque usb comme disquette au lieu de l'exposer comme disque usb, il est nécessaire dans ce cas d'utiliser:
losetup /dev/loop0 /dev/sdb1
mount /dev/loop0 /mnt/usb
grub-install --boot-directory=/mnt/usb/bugbios --force --allow-floppy /dev/loop0

   Noter que grub-install est actuellement un simple script shell et le vrai travail est fait pas grub-mkimage et grub-setup.

Créer un CDROM bootable

   GRUB supporte le mode sans émulation dans la spécification El Torito. Celà signifie qu'on peut utiliser tout le CDROM depuis GRUB sans avoir à créer un fichier image disquette ou disque dur, qui peut créer des problèmes de compatibilité.

   Pour booter depuis un CD-ROM, GRUB utilise une image spéciale appelée cdboot.img, qui est concaténé avec core.img. Le core.img utilisé pour cela devrait être construit avec au moins les modules iso9660 et biosdisk. Le CDROM bootable va généralement nécessiter également un fichier de configuration grub.cfg et quelques autres modules.

Pour créer un CD de récupération GRUB simple, utiliser la commande grub-mkrescue:
grub-mkrescue -o grub.iso
Pour inclure d'autres fichiers à l'image, créer un répertoire
mkdir iso
créer un répertoire pour GRUB:
makd -p iso/boot/grub
Si souhaité, créer le fichier de configuration grub.cfg et copier les fichier et répertoires pour le disque dans iso/. Enfin, créer l'image:
grub-mkrescue -o grub.iso iso

   Le périphérique root sera définis de manière approprié en entrant le fichier de configuration, pour réferrer aux noms de fichier dans le cd sans avoir à utiliser de nom de périphérique expicit. Celà simplifie la production d'images qui fonctionnent sur les disques optiques et les périphériques de stockage USB.

Mappage entre les disques BIOS et les périphériques OS

   Si le fichier de map de périphérique existe, les utilitaires GRUB (grub-probe, grub-setup, etc) le lise pour mapper les périphériques BIOS aux périphériques OS. Ce fichier consiste de ligne sous la forme: (device) file

   device est un disque spécifié dans la syntaxe GRUB, et file est un fichier OS, qui est normalement un fichier de périphérique.

   Historiquement, le fichier de mappage de périphérique a été utilisé parce que les noms de périphérique GRUB devaient être utilisés dans le fichier de configuration, et ils étaient dérivés des numéro de lecteur du BIOS. Le mappage entre les disque BIOS et OS ne peut pas toujours être deviné correctement: par exemple GRUB obtiendra le mauvais ordre si on échange la séquence de boot entre IDE et SCSI dans le BIOS.

   Malheureusement, même les noms de périphérique OS ne sont pas toujours stable. Les versions moderne de Linux peuvent sonder les disques dans un ordre différent d'un boot à l'autre, et le préfixe (/dev/hd* vs /dev/sd*) peut changer en fonction du pilote utilisé. Cela impose d'éditer fréquemment le fichier de map.

   GRUB évite ce problème en utilisant les UUID ou les labels de système de fichier en générant grub.cfg, et il est recommandé de faire de même pour toute entrée ajoutée manuellement. Si le fichier de map n'existe pas, les utilitaires GRUB assument un map temporaire à la volée. C'est suffisant, en particulier pour les système à un seul disque.

   Cependant, le fichier de map de périphérique n'est pas entièrement obsolète, et il est utilisé pour écraser un environnement courant différent de celui du boot. Un cas courant est l'utilisation d'une partition ou d'un volume logique comme disque pour une machine virtuelle.

Installation BIOS

   Le format de la table de partition traditionnellement utilisé pour les plateformes PC BIOS est appelée le format MBR; c'est le format qui autorise jusqu'à 4 partitions primaire et des partitions logiques additionnelles. Avec ce format de table de partition il y a 2 manières d'installer GRUB: Il peut être embarqué dans la zone entre le MBR et la première partition, (généralement 31KiB, appelée la zone embarquée), ou l'image peut être installé dans un système de fichier et une liste de blocks le forme peuvent être stockés dans le premier secteur de cette partition.

   Chaque méthode a ses inconvénients. Il n'y a pas de manière de réserver de l'espace dans la zone embarquée de manière sûre, et certains logiciels propriétaire sont connus pour l'utiliser; et les systèmes sont parfois partitionnés sans laisser suffisamment d'espace avant la première partition. D'un autre coté, installer dans un système de fichier signifie que GRUB est vulnérable si ses blocks sont déplacés dans le système de fichiers tel que fsck, donc cette approche est fragile, et peut seulement être utilisée si le système /boot est sur le même disque que le BIOS boot.

   Les systèmes récents utilisent le format GPT. C'est spécifié dans EFI, mais peut également être utilisé sur les plateformes BIOS si le système le supporte. Par exemple, GRUB et GNU/Linux peuvent être utilisé dans cette configuration. Avec ce format, il est possible de réserver une partition entière pour GRUB, appelée la partition de Boot. GRUB peut ainsi être embarquée dans cette partition sant rique d'être écrasé par un autre logiciel et dans être contenu dans un système de fichier.

   En créant un BIOS Boot Partition dans un système GPT, on doit s'assurer qu'il y a au moins 31KiB d'espace disponible. Il faut également s'assurer qu'il a le type de partition correcte. En utilisant parted:

Boot

   Grub peut charger les kernels conforme au Multiboot de manière consistante mais pour certains OS, il faut utiliser une méthode spécifique.

booter un OS

   GRUB a 2 méthodes de boot distinct. Une des 2 est de charger un OS directement, et l'autre est de chaîner le loader qui va ainsi charger l'OS.

   Multiboot est le format natif supporté par GRUB. Il supporte également Linux. Cependant, DOS et Windows ont certains problèmes.

   Pour les OS qui ne supportent pas Multiboot et n'ont pas de support spécifique dans GRUB, le chain-loader doit être utilisé, ce qui implique qu'un autre loader est chargé.

La commande chainloader est utilisée pour définir ce mode. Il est normalement nécessaire de charger certains modules GRUB et définir le périphérique root de manière approprié. Pour un système Windows, une entrée peut ressembler à:
menuentry "Windows" {
    insmod chain
    insmod ntfs
    set root=(hd0,1)
    chainloader +1
}

   Sur les système avec plusieurs disques dur, une travail supplémentaire doit être fournis. Le chain-Loading est seulement supporté sur les PC BIOS et les plateformes EFI.

Boot Loopback

   Grub est capable de lire une image ( CD ou HDD) stocké dans un stockage accessible. Cependant l'OS lui-même devrait être capable de trouver son root. Cela implique généralement de lancer un programme dans l'espace utilisateur avant que le vrai root soit trouvé. GRUB peut charger une petite image faite spécialement en ram en la passant au kernel, avec les commandes kfreebsd_module, knetbsd_module_elf, kopenbsd_ramdisk, initrd, initrd16, multiboot_module, multiboot2_module, ou xnu_ramdisk, en fonction du chargeur.

Problèmes spécifiques à l'OS

   Vu que GNU/Hurd est conforme à Multiboot, il est facile à booter. Il ne faut cependant pas oublier de spécifier la partition root du kernel.

1. Spécifier le périphérique root de GRUB sur le même disque que celui de GNU/Hurd. La commande search --set=root --file /boot/gnumach.gz ou similaire peut aider.
2. Charger le kernel et les modules:
multiboot /boot/gnumach.gz root=device:hd0s1
module /hurd/ext2fs.static ext2fs --readonly --multiboot-command-line='${kernel-command-line}' --host-priv-port='${host-port}' --device-master-port='${device-port}' --exec-server-task='${exec-task}' -T typed '${root}' '$(task-create)' '$(task-resume)'
module /lib/ld.so.1 exec /hurd/exec '$(exec-task=task-create)'
3. Finalement, lancer la commande boot.

GNU/Linux

   Il est relativement simple à booter, parce qu'il ressemble au boot des OS conformes Multiboot.

1. Définir le périphérique root de grub au même disque que le root de Linux.
2. Charger le kernel avec la commande: linux /vmlinuz root=/dev/sda1. Si nécessaire ajouter des paramètres au kernel: linux /vmlinuz root=/dev/sda1 acpi=off
3. Si besoin d'un initrd, utiliser la commande initrd: initrd /initrd
4. Finalement lancer la commande boot.

Fichier de configuration

   GRUB est configuré en utilisant grub.cfg, généralement dans /boot/grub. Ce fichier est flexible, mais beaucoups d'utilisateurs n'ont pas besoin d'écrire tout à la main.

Configuration simple

   Le programme grub-mkconfig génère grub.cfg correctement dans la plupart des cas. Il est prévu pour mettre à jours une distribution, et découvre les kernels disponible et tente de générer des entrées.

   grub-mkconfig a quelques limitations. En ajoutant des entrées manuellement à la fin de la liste en éditant /etc/grub.d/40_custom, ou en créant /boot/grub/custom.cfg, changer l'ordre des entrées du menu ou changer les scripts dans /etc/grub.d ou changer leur nom peut rendre les changements plus complexe. Cela peut être améliorer dans le future. Il est préférable dans ce cas d'éditer directement grub.cfg et de désactiver l'utilisation automatique de grub-mkconfig du système.

   Le fichier /etc/default/grub contrôle les opération de grub-mkconfig. Il est lu par un script shell, et doit être une entrée de shell POSIX valide; normalement c'est simplement une séquence de lignes KEY=value; mais si la valeur contient des espace ou des caractères spéciaux, ils doivent être entre guillemets.

GRUB_DEFAULT Entrée du menu par défaut. Peut être un nombre (la nième entrée) dans le menu, en commançant à 0, ou le titre d'une entrée du menu, ou la chaîne spéciale "saved", qui est l'entrée sauvée par GRUB_SAVEDEFAULT, grub-set-default, ou grub-reboot. Défaut: 0
GRUB_TIMEOUT Boot sur le défaut au boot de n secondes. Défaut: 5. 0 boot immédiatement sans afficher le menu, et -1 attend indéfiniment
GRUB_HIDDEN_TIMEOUT Attend n secondes pour une touche avant d'afficher le menu. Avec GRUB_TIMEOUT à 0, le menu n'est jamais affiché sauf si une touche est pressée. Défaut: non-définis
GRUB_HIDDEN_TIMEOUT_QUIET Supprime le décompte de GRUB_HIDDEN_TIMEOUT. non définis par défaut.
GRUB_DEFAULT_BUTTON
GRUB_TIMEOUT_BUTTON
GRUB_HIDDEN_TIMEOUT_BUTTON
GRUB_BUTTON_CMOS_ADDRESS Variantes des variables correspondantes sans le suffix _BUTTON, utilisés pour supporter les boutons de mise sous tension spécifique au vendeur.
GRUB_DISTRIBUTOR Définis par les distributeurs de GRUB pour identifier leur nom. Utilisé pour générer des titre d'entrée de menu plus informatifs
GRUB_TERMINAL_INPUT Sélectionne le périphérique d'entrée du terminal. les noms dépendent de la plateform, mais peut inclure console (PC Bios et consoles EFI), serial, ofconsole (OpenFirmware Console), at_keyboard (PC AT keyboard utilisant le protocole de boot HID), ou usb_keyboard (clavier USB utilisant le protocole de boot HID). Défaut: utilise l'entrée de terminal natif de la plateforme.
GRUB_TERMINAL_OUTPUT Sélectionne le périphérique de sortie du terminal. console, serial, gfxterm, ofconsole, ou vga_text. Défaut: utilise la sortie de terminal native de la plateforme.
GRUB_TERMINAL Si définis, remplace GRUB_TERMINAL_INPUT et GRUB_TERMINAL_OUTPUT.
GRUB_SERIAL_COMMAND Une commande pour configurer le port série pour utiliser la console série. Défaut: serial
GRUB_CMDLINE_LINUX Arguments à ajouter aux entrées de menu pour le kernel Linux
GRUB_CMDLINE_LINUX_DEFAULT Sauf si GRUB_DISABLE_RECOVERY est définis, 2 entrées de menu sont générés pour chaque kernel linux: une entrée par défaut, et une entrée pour le mode récupération. Cette option liste les arguments à ajouter seulement à l'entrée par défaut, après ceux listés dans GRUB_CMDLINE_LINUX.
GRUB_DISABLE_LINUX_UUID Normalement, grub-mkconfig génère des entrées de menu qui utilisent des UUID pour identifier le système de fichie racine pour le kernel Linux en utilisant "root=UUID=...". Pour désactiver l'utilisation des UUID, définir cette option à true.
GRUB_DISABLE_RECOVERY À true, désactive la génération des entrées de menu pour le mode récupération
GRUB_VIDEO_BACKEND Si le support vidéo graphique est requis, soit parce que le terminal graphique gfxterm est utilisé ou parce que GRUB_GFXPAYLOAD_LINUX est définis, grub-mkconfig va normalement charger tous les pilotes vidéo GRUB et utiliser le plus approprié pour votre hardware. Cette option permet de forcer des paramètres spécifique. Une fois grub-install lancé, les pilotes disponible sont listés dans /boot/grub/video.lst.
GRUB_GFXMODE Définis la résolution utilisée dans le terminal graphique gfxterm. Noter que vous pouvez seulement utiliser les modes que votre carte supporte via les extensions VESA BIOS (VBE), donc pour les résolution d'écran LCD peuvent ne pas être disponible. Le défaut est auto, qui tente de sélectionner la résolution préférrée.
GRUB_BACKGROUND Définis l'image à utiliser avec le terminal graphique gfxterm. Ce fichie doit être accéssible au moment du boot et doit se terminer avec .png, .tga, .jpg, ou .jpeg. L'image sera redimensionné si besoin.
GRUB_THEME Définis un thème à utiliser avec le terminal graphique gfxterm
GRUB_GFGPAYLOAD_LINUX à text, force Linux à booter en mode text normal. à keep, préserve le mode graphique définis avec GRUB_GFXMODE.
GRUB_DISABLE_OS_PROBER Normalement, grub-mkconfig tente d'utiliser le programme os-prober, si installé, pour découvrir les autres OS installés sur le système et générer les entrées de menu appropriés pour eux. à true, désactive cette recherche.
GRUB_INIT_TUNE Joue un son dans les haut-parleurs quand GRUB démarre. Utile pour les utilisateurs ne pouvant pas voir l'écran. La valeur de cette option est passée directement à play.
GRUB_BARAM Si mis, GRUB émet une commande badram pour filtrer des régions mémoire.
GRUB_PRELOAD_MODULES Cette option peut être mis à une liste de modules GRUB séparés par des espaces. Chaque module sera chargé le plus tôt possible, au début de grub.cfg.

   Pour une personnalisation plus détaillée de la sortie de /etc/grub.d/40_custom est particulièrement utile pour ajouter des entrées particulièrement utiles pour ajouter des entréess

Ecrire des fichiers de configuration directement

   grub.cfg est écrit dans la langage de scripting intégré à GRUB, qui a une syntaxe similaire à BASH et d'autres shells.

MOTS Un mot est une séquence de caractères considérés comme une unité simple. Les mots sont séparés par des métacaractères, qui sont les suivane, plus espace, tabulation et nouvelle ligne.
{ } | & $ ; › ‹ les guillemets peuvent être utilisés pour inclure les métacaractères dans les mots.

Mots réservés

Les mots réservés ont une signification spéciale pour GRUB. Les mots suivants sont reconus:
! [[ ]] { }
case do done elif else esac fi for function
if in menuentry select then time until while

guillemets

   Les guillemets sont utilisés pour supprimés la signification spéciale de certains caractères ou mots. Il peut être utilisé pour traiter les métacaractères comme partie d'un mot. Il y a 3 mécanismes de guilemets: le caractère d'échappement, guillemets simple et guillemets double.

expansion de variables

   Le caractère '$' introduit l'expansion de variable. Le nom de la variable à étendre peut être entre crochets, qui servent optionnellement à protéger la variable à étendre des caractères qui suivent immédiatement.

   Les noms de variables normales commencent avec un caractère alphanumérique, suivi par 0 ou plusieurs caractères alphanumérique. Ces noms réfèrent aux entrées dans l'environnement GRUB.

   Les noms de variables positionnels consistent en 1 ou plusieurs chiffres. Ils représentent les paramètres passés aux appels de fonction, avec $1 représentant le premier paramètre.

   Le nom de variable spéciale ? s'étend au code de sortie de la dernière commande exécutée. Quand les noms de variable positionnels sont actifs, d'autres variables @, *, et # sont définis et s'étendent à tous les paramètres positionnels avec des guillemets nécessaire, sans guillemets, et comme compteur de paramètres, respectivement.

Commandes simple

   Une commande simple est une séquence de mots séparés par des espaces ou des tabulation et terminés par un ';' ou un newline. le premier mot spécifie la commande à exécuter. Les autres mots sont passés en argument à la commande.

   La valeur de retour d'une commande simple est sont status de sortie. Si le mot réservé ! précède la commande, la valeur de retour est un NOT du status de sortie de la commande.

Commandes composés

Une commande composée est une des suivantes:
for name in word ...; do list; done

if list; then list; [elif list; then list;] ... [else list;]fi

while cond; do list; done
until cond; do list; done

function name { command; ...}

menuentry title [--class=class ...][--users=users][--unrestricted][--hotkey=key]{command;...}

Commande embarquées

Certaines commande sont également fournis par GRUB pour effectuer des action qui ne seraient pas possible autrement.
break[n]
continue[n]
return[n]
shift[n]

Configuration manuelle Multiboot

   L'autogénération des fichiers de configuration pour les environnements multi-bot dépendent de os-prober. Il est possible de créer soi-même la configuration

Tout d'abord, créer une partition séparée pour GRUB. Certaines options ci-dessous montrent comment charger des images d'installeur d'OS depuis cette partition. Mounter cette partition dans /mnt/boot et désactiver GRUB dans tous les OS et installer manuellement le dernier GRUB compilé avec:
grub-install --boot-directory=/mnt/boot /dev/sda

Dans tous les OS installer les outils GRUB mais désactiver l'installation de GRUB dans le secteur de boot, pour avoir le menu.lst et grub.cfg disponible. Désactiver également l'utilisation d'os-prober en définissant:
GRUB_DISABLE_OS_PROBER=true

Puis écrire un grub.cfg:
menuentry "OS using grub2" {
    insmod xfs
    search --set=root --label OS1 --hint hd0,msdos8
    configfile /boot/grub/grub.cfg
}
    
menuentry "OS using grub2-legacy" {
    insmod ext2
    search --set=root --label OS2 --hint hd0,msdos6
    legacy_configfile /boot/grub/menu.lst
}
    
menuentry "Windows XP" {
    insmod ntfs
    search --set=root --label WINDOWS_XP --hint hd0,msdos1
    ntldr /ntldr
}
    
menuentry "Windows 7" {
    insmod ntfs
    search --set=root --label WINDOWS_7 --hint hd0,msdos2
    ntldr /bootmgr
}
    
menuentry "FreeBSD" {
    insmod zfs
    search --set=root --label freepool --hint hd0,msdos7
    kfreebsd /freebsd@/boot/kernel/kernel
    kfreebsd_module_elf /freebsd@/boot/kernel/opensolaris.ko
    kfreebsd_module_elf /freebsd@/boot/kernel/zfs.ko
    kfreebsd_module /freebsd@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
    set kFreeBSD.vfs.root.mountfrom=zfs:freepool/freebsd
    set kFreeBSD.hw.psm.synaptics_support=1
}
    
menuentry "experimental GRUB" {
    search --set=root --label GRUB --hint hd0,msdos5
    multiboot /experimental/grub/i386-pc/core.img
}
    
menuentry "Fedora 16 installer" {
    search --set=root --label GRUB --hint hd0,msdos5
    linux /fedora/vmlinuz lang=en_US keymap=sg resolution=1280x800
    initrd /fedora/initrd.img
}
    
menuentry "Fedora rawhide installer" {
    search --set=root --label GRUB --hint hd0,msdos5
    linux /fedora/vmlinuz repo=ftp://mirror.switch.ch/mirror/fedora/linux/development/rawhide/x86_64 lang=en_US keymap=sg resolution=1280x800
    initrd /fedora/initrd.img
}
    
menuentry "Debian sid installer" {
    search --set=root --label GRUB --hint hd0,msdos5
    linux /debian/dists/sid/main/installer-amd64/current/images/hd-media/vmlinuz
    initrd /debian/dists/sid/main/installer-amd64/current/images/hd-media/initrd.gz
}

Embarquer un fichier de configuration dans GRUB

   GRUB supporte un fichier de configuration embarqué directement dans l'image core, pour qu'il puisse être chargé avant d'entrée dans le mode normal. C'est utile pour par exemple quand est difficile de trouver le vrai fichier de configuration ou pour débugger un problème avec le chargement de ce fichier. grub-install utilise cette fonctionnalité quand il n'utilise pas de fonction disque du bios ou en installant sur un disque différent de celui contenant /boot/grub, auquel cas il doit utiliser la commande search pour trouver /boot/grub.

   Pour embarquer un fichier de configuration, utiliser l'option -c de grub-mkimage. Le fichier est copié dans l'image core.

Une fois embarqué, le fichier de configuration est exécuté, GRUB va charger le module 'normal', qui va lire le fichier de configuration de $prefix/grub.cfg. À ce point, la variable root aura également été définis au nom du périphérique root. Par exemple, prefix peut être définis à '(hd0,1)/boot/grub' et et root peut être définis à 'hd0,1'. Donc, dans la plupart des cas, le fichier de configuration embarqué a seulement besoin des variables root et prefix, et ainsi supprimer le traitement normale de GRUB. Un exemple typique est:
search.fs_uuid 01234567-89ab-cdef-0123-456789abcdef root
set prefix=($root)/boot/grub

   Le module search_fs_uuid doit être inclus dans l'image core pour que cet exemple fonctionne.

Dans des cas plus complexe, il peut être utile pour lire d'autres fichiers de configuration directement depuis le fichier de configuration embarquée. Cela permet de lire des fichiers qui ne s'appellent pas grub.cfg ou lire des fichiers depuis un répertoire autre que celui où les modules GRUB sont installés. Pour faire cela, inclure les modules configfile et normal dans l'image core, et embarquer un fichier de configuration qui utilise la commande configfile pour charger un autre fichier. L'exemple suivant nécessite également les modules echo, search_label, et test à inclure dans l'image core:
search.fs_label grub root
if [ -e /boot/grub/example/test1.cfg ]; then
    set prefix=($root)/boot/grub
    configfile /boot/grub/example/test1.cfg
else
    if [ -e /boot/grub/example/test2.cfg ]; then
        set prefix=($root)/boot/grub
        configfile /boot/grub/example/test2.cfg
    else
        echo "Could not find an example configuration file!"
    fi
fi

   Le fichier de configuration embarqué peut ne pas contenir d'entrées de menu directement.

format du fichier de thème

   Le menu graphique GRUB supporte les thèmes qui peuvent être personnalisés. Le thème est configuré via un fichier texte qui spécifie les composant de l'interface graphique (incluant le menu de boot, la barre de progression de timeout, et les messages) ainsi que l'apparence en utilisant les couleurs, fonts, et images. Des exemples sont disponible dans docs/example_theme.txt.

Couleurs

Les couleurs peuvent être spécifié de nombreuses manières:
Style HTML #RRGGBB ou #RGB
au format RGB décimal: "128,128,255".
Avec les noms de couleur SVG 1.0 qui doivent être spécifiés en minuscule.

Fonts

   Les fonts GRUB utilisent le format de fonts bitmap PFF2. Les fonts sont spécifié avec le nom des font. Actuellement il n'y a pas de provision pour une liste de font préférentielle, ou de dériver une font d'une autre. Les fonts sont chargés avec la commande loadfont dans GRUB. Pour voir la liste des fonts chargés, exécuter lsfonts. S'il y a trop de font pour tenir dans l'écran, définir set pager=1 avant lsfonts.

Progress Bar

   Les barres de progression sont utilisées pour afficher le temps restant avant que GRUB boot sur l'entrée par défaut. Pour créer une barre de progression qui va afficher le temps restant, simplement créer un composant progress_bar avec l'id __timeout__. Celà indique à GRUB que la progress bar devrait être mis à jours si le compteur du boot automatique est intérrompu par l'utilisateur.

   Les barres de progression peuvent optionnellement avoir un texte affiché. Ce texte est contrôlé par la variable text qui contient un template printf avec le seul argument %d qui est le nombre de secondes restants. Additionnellement les valeurs spéciales “@TIMEOUT_NOTIFICATION_SHORT@”, “@TIMEOUT_NOTIFICATION_MIDDLE@”, “@TIMEOUT_NOTIFICATION_LONG@” sont remplacées avec les templates standard et traduits.

Indicateur de progression circulaire

   L'indicateur de progression circulaire fonctionne de manière similaire à la progress bar. en donnant un id de __timeout__, GRUB met à jours l'indicateur de progression circulaire pour indiquer le temps restant. pour cet indicateur, il y a 2 images utilisées: l'image au centre, et l'image de tick. L'image du centre est rendue au centre du composant, et l'image tick est utilisée pour rendre chaque marque à la circomférence de l'indicateur.

Labels

   Les labels texte peuvent être placés sur l'écran de boot. La font, couleur et alignement horizontale peuvent être spécifiés pour les labels. Si un label a l'id __timeout__, le text pour ce label est également utilisé avec un message informant l'utilisateur du nombre de secondes restant jusqu'au boot automatique. C'est utile dans le acs où vous souhaitez que le texte soit affiché au lieu d'une progress bar.

Boot Menu

   Le menu de boot où GRUB affiche les entrées de menu. C'est une liste d'éléments, où chaque élément a un titre, et un icône optionnel. L'icône est sélectionné basésur les classes spécifiée pour l'entrée du menu. Si il y a un fichier png nommé myclass.png dans grub/themes/icons, il sera affiché pour les éléments ayant cette classe. Le menu de boot peut être personnalisé de différentes manières, tels que la font et la couleur utilisé pour le titre de l'entrée de menu, et en spécifiant de boites stylisés pour le menu lui-même, et pour l'élement sélectionné.

Boites stylisées

Une de fonctionnalité les plus importantes pour personnalisés la couche est d'utiliser des boites stylisés, composés de 9 régions rectangulaires, qui sont utilisés pour dessiner les boites.
Northwest (nw)    North (n)    Northeast (ne)
West (w)    Center (c)    East (e)
Southwest (sw)    South (s)    Southeast (se)

Fichier de thème

   Le fichier de thème est un fichier texte, qui contient 2 types de déclarations, Les propriétés globales, et la construction de composant.

Les propriétés globales sont spécifiées avec le format simple:
name1: value1
name2: "valeur qui peut contenir des espaces"
name3: #88F

Liste de propriétés globles

title-text Spécifie le texte à afficher en haut de l'écran
title-font Font utilisée pour le titre
title-color Couleur du titre
message-font font à utiliser pour les messages
message-color Couleurs pour les messages
message-bg-color couleur de fond
desktop-image Image à utiliser comme fond
desktop-color Couleur pour le fond si desktop n'est pas spécifié
terminal-box Spécifie le motif de nom de fichier pour la boite stylisée.

Construction

   Une plus grande personnalisation est fournie par des composants. Une arborescence de composants forment l'interface utilisateur. Les conteneurs sont des composants qui peuvent contenir d'autres composants, et il y a toujours un composant root qui est une instance d'un conteneur caneva.

Les composant sont créés dans le fichier thème en préfixant le type de composant avec le signe +:
+ label { text="GRUB" font="aqui 11" color="#8FF" }

   Les propriétés d'un composant sont spécifiés avec "name=value", où value peut être un simple mot, un chaîne entre guillemets, ou un tuple "(ex: preferred_size=(120,80)"

Liste de composants

label Un label affiche une ligne de texte. Propriétés:

        id À "__timeout__" pour afficher le temps passé pour booter sur l'entrée par défaut.
        text Le texte à afficher
        font La font à utiliser
        color La couleur du texte
        align left, center et right
        visible À false permet de cacher le label.

image Affiche une image. Propriétés:

        file Chenin de l'image à charger

progress_bar Affiche une barre horizontale de progression. Propriétés

        id À "__timeout__" pour afficher le temps passé pour booter sur l'entrée par défaut.
        fg_color couleur de devant pour le rendu
        bg_color couleur de fond pour le rendu
        border_color La couleur de bordure pour le rendu
        text_color Couleur du texte
        bar_style La spécification de la boite stylisée pour la barre de progression.
        highlight_style La spécification de boite stylisée pour la région survolée de la barre de progression.
        highlight_overlay À true, la highlight box est affichée par dessus.
        text Le texte à afficher sur la barre de progression.
        font font à utiliser

circular_progress Affiche un indicateur de progression circulaire. L'apparence de ce composant est déterminé par 2 images. Propriétés:

        id À "__timeout__" pour afficher le temps passé pour booter sur l'entrée par défaut.
        center_bitmap Nom de l'image au centre
        tick_bitmap Nom de l'image de tick
        num_ticks Nombre de ticks qui sont créés dans un cercle complet
        ticks_disappear booléen indiquant si les ticks apparaîssent ou disparaissent progressivement.
        start_angle Position du premier tick, mesuré en "parrot" (1 parrot = 1/256 du cercle complot.)

boot_menu Affiche le menu de boot GRUB. il permet de sélectionner les éléments et de les exécuter. propriétés:

        item_font font à utiliser pour les items de menu
        selected_item_font Font à utiliser pour l'élément sélectionné
        item_color Couleur du texte
        selected_item_color Couleur du texte de l'élément séléctionné
        icon_width Largeur de l'icône
        icon_height Hauteur de l'icône
        item_height Hauteur de chaque élément du menu
        item_padding Espace en pixels à laisser de chaque côté du contenu de l'élément du menu
        item_icon_space L'espace entre un icône et le texte, en pixels
        item_spacing Espace à laisser entre les éléments du menu, en pixel
        menu_pixmap_style Motif de fichier pour la boite stylisée.
        selected_item_pixmap_style Boite stylisée pour l'élement sélectionné
        scrollbar booléen indiquant si la barre de défilement est affichée
        scrollbar_frame Motif de fichier pour le fond de la barre de défilement.
        scrollbar_thumb Motif de fichier pour la barre de défilement.
        scrollbar_thumb_overlay À true, le scrollbar thumb des bords s'affichent par dessus la scrollbar frame.
        scrollbar_slice Emplatement de la barre de défilement (west, center, east)
        scrollbar_left_pad padding à gauche, en pixel
        scrollbar_right_pad padding à droite, en pixel
        scrollbar_top_pad Padding en haut, en pixel
        scrollbar_bottom_pad padding en bas, en pixel
        visible À false permet de cacher la barre de progression

booter grub depuis le réseau

Les instructions suivantes fonctionnent seulement sur les systèmes PC BIOS où l'environnement PXE est disponible.
Pour générer une image PXE, lancer:
grub-mkimage --format=i386-pc-pxe --output=grub.pxe --prefix='(pxe)/boot/grub' pxe pxecmd

   copier grub.pxe, /boot/grub/*.mod et /boot/grub/*.lst sur le serveur TFTP, s'assurant que *.mod et *.lst sont accessibles via le chemin /boot/grub depuis les serveur TFTP. définir la configuration du serveur DHCP pour offrir grub.pxe comme fichier de boot.

   On peut également utiliser l'utilitaire grub-mknetdir pour générer une image et un répertoire GRUB, au lier de copier les fichiers manuellement.

   Une fois GRUB démarré, les fichiers sur le serveur TFTP sera accessible via le périphérique pxe.

   L'adresse ip du serveur et de la passerrelle peuvent être contrôlés en changeant le périphérique (pxe) en (pxe:server-ip) ou (pxe:server-ip:gateway-ip).

   GRUB fournis de nombreuses variables d'environnements qui peuvent être utilisée pour inspecter ou changer le comportement du périphérique PXE:

net_‹interface›_ip L'adresse IP de cette machine. Lecture seule
net_‹interface›_mac L'adresse MAC de l'interface réseau. Lecture seule
net_‹interface›_hostname Le nom d'hôte du client fournis par DHCP. Lecture seule.
net_‹interface›_domain Nom de domaine du client fournis par DHCP. Lecture seule.
net_‹interface›_rootpath Le chemin du disque root du client, fournis par DHCP. Lecture seule.
net_‹interface›_extensionspath Le chemin d'extensions de vendeur DHCP additionnels fournis par DHCP. Lecture seule
net_‹interface›_boot_file Nom du fichier de boot fournis pas DHCP. Lecture seule.
net_‹interface›_dhcp_server_name Le nom du serveur DHCP responsable pour ces paramètres de boot. Lecture seule.
net_default_ip L'adresse IP de l'interface par défaut. Lecture seule. alias de net_${net_default_interface}_ip
net_default_mac L'adresse mac de l'interface par défaut. Lecture seule. alias de net_${net_default_interface}_mac
net_default_server Le serveur par défaut. Lecture écriture

Utilitser GRUB via une ligne série

   Pour les machines sans écran/clavier, il peut être utile de contrôler via des communications série. Pour connecter une machine avec un autre via une ligne série, il faut préparer un cable série, et avoir une carte série multiport. De plus, un émulateur de terminal est également requis, tels que minicom.

Comme pour GRUB, l'instruction pour définir un terminal série et simple. Exemple:
serial --unit=0 --speed=9600
terminal_input serial; terminal_output serial

   La commande serial initialise la série, COM1. Cette commande accepte de nombreuses options. Les commandes terminal_input et terminal_output choisissent quel type de terminal utiliser.

Utiliser GRUB avec des touches de mise en route

Certains vendeurs de laptop fournissent un bouton power-on additionnel qui boot un autre OS. GRUB supporte de tels boutons avec les variables GRUB_TIMEOUT_BUTTON, GRUB_DEFAULT_BUTTON, GRUB_HIDDEN_TIMEOUT_BUTTON and GRUB_BUTTON_CMOS_ADDRESS dans default/grub. Les valeurs connue sont :
Dell XPS M1530
85:3
Asus EeePC 1005PE
84:1

Fichiers image GRUB

   GRUB consiste de nombreuses images: une variété d'image de boot pour démarrer GRUB de différentes manières, une image kernel, et un jeu de modules qui sont combinés avec l'image kernel pour former l'image core.

boot.img Sur les systèmes PC BIOS, cette image est la première partie de GRUB à démarrer. Elle est écrite dans un MBR ou sur le secteur de boot d'une partition. Parce que le secteur de boot PC fait 512 octets, la taille de cette image fait exactement 512 octets. La seule fonction de boot.img est de lire le premier secteur de l'image core depuis le disque local, et de sauter dessus. À cause de la restriction de la taille, boot.img ne peut pas comprendre la structure d'un système de fichier, donc grub-setup code en dur l'emplacement du premier secteur de l'image core dans boot.img en installant GRUB.
diskboot.img Cette image est utilisée comme premier secteur de l'image core en bootant depuis un disque dur. Elle lit le reste de l'image core en mémoire et démarre le kernel. Vu que la gestion du système de fichier n'est pas encore disponible, il encode l'emplacement de l'image core en utilisant un format de liste de blockes
cdboot.img Cette image est utilisée comme premier secteur de l'image core en bootant depuis un CD-ROM.
pxeboot.img Cette image est utilisée comme début de l'image core en bootant depuis le réseau en utilisant PXE.
lnxboot.img Cette images peut être placée comme début de l'image core pour que GRUB ressemble à un kernel liste qui peut être booté par LILO.
kernel.img Cette image contient les facilités basiques de GRUB: frameworks pour les périphériques et gestion des fichiers, variables d'environnement, mode récupération, etc. Elle est rarement utilisée directement, mais intégré dans toutes les images core.
core.img L'image core de GRUB. Elle est construite dynamiquement depuis d'image kernel et une liste arbitraire de modules par le programme grub-mkimage. Généralement, elle contient suffisamment de modules pour accéder à /boot/grub, et charger tout le reste. Le design modulaire permet à l'image core d'être conservée petite, vu que la zone disque où elle doit résider fait souvent moins de 32Ko.
*.mod Tout le reste de GRUB réside dans des modules. Ils sont souvent chargés automatiquement, ou intégrés dans l'image core s'ils sont essentiels, mais peuvent également être chargés manuellement en utilisant insmod.

Syntaxe et sémantiques de système de fichiers

   GRUB utilise une syntaxe spéciale pour spécifier les disques qui peuvent être accédés par le BIOS. À cause de la limitation des BIOS, GRUB ne peut pas distinguer les disques IDE, ESDI, SCSI, et d'autres. Vous devez connaître quel périphérique BIOS est équivalent à quel périphérique OS. Normalement, cela devrait être clair si les fichiers sont visible dans un périphérique ou en utilisant la commande search.

Comment spécifier les périphériques

La syntaxe de périphérique est la suivante:
(device[,partmap-name1part-num1[,partmap-name2part-num2[,...]]])

Les disques BIOS et EFI utilisent soit fd ou hd suivis par un chiffre, comme fd0 ou cd. AHCI, PATA, crypto, USB utilisent le nom du pilote suivi par un nombre. Memdisque et host sont limités à un disque et donc son référrés juste par le nom du pilote. RAID(md), ofdisk(ieee1275 et nand), LVM(lv), LDM et arcdisq (arc) utilisent un nom de disque intrinsèque du disque aliasé comme nand. Les conflit sont résolus en suffixant un nombre si nécessaire. Les virgules doivent être échappés:
(fd0)
(hd0)
(cd)
(ahci0)
(ata0)
(crypto0)
(usb0)
(cryptouuid/123456789abcdef0123456789abcdef0)
(mduuid/123456789abcdef0123456789abcdef0)
(lvm/system-root)
(lvmid/F1ikgD-2RES-306G-il9M-7iwa-4NKW-EbV1NV/eLGuCQ-L4Ka-XUgR-sjtJ-ffch-bajr-fCNfz5)
(md/myraid)
(md/0)
(ieee1275/disk2)
(ieee1275//pci@1f\,0/ide@d/disk@2)
(nand)
(memdisk)
(host)
(myloop)
(hostdisk//dev/sda)

   part-num représente le numéro de partition de device, commençant à 1. partname est optionnel mais est recommandé vu que le disque peut avoir de nombreux partmaps top-level. En spécifiant le 3ème et dernier composant on peut accéder aux sous-partitions.

La syntaxe (hd0) représente utilisant tout le disque, alors que la syntaxe (hd0,1) représente l'utilisation de la première partition du disque.
(hd0,msdos1)
(hd0,msdos1,msdos5)
(hd0,msdos1,bsd3)
(hd0,netbsd1)
(hd0,gpt1)
(hd0,1,3)

   En activant le support réseau (tftp) , (http) et autre sont également disponibles. Avant d'utiliser le disque réseau, il faut initialiser le réseaux. En bootant sur un cdrom, (cd) est disponible.

Comment spécifier des fichiers

   Il y a 2 manières de spécifier des fichiers, par nom de fichier absolue, et par liste de block.

   Un nom de fichier absolue a la forme (hd0,1)/boot/grub/grub.cfg. Si le nom du périphérique est omis, GRUB utilise le périphérique root implicitement.

Une liste de blocks est utilisée pour spécifier un fichie qui n'apparaît pas dans le système de fichier, comme un chainloader. La syntaxe est [offset]+length[,[offset]+length]... par exemple:
0+100,200+1,300+300

   Cela signifie que GRUB devrait lire les blocks 0 à 99, le block 200, et les blocks 300 à 599. Si l'offset est absent, GRUB assume que l'offset est 0. De même, si le nom du périphérique est absent, le périphérique root est assumé.

Interface utilisateur de GRUB

   GRUB a une interface de menu simple pour choisir une entrée depuis un fichier de configuration, et une ligne de commande. GRUB lit son fichier de configuration dès qu'il l'a chargé. S'il en trouve un, l'interface à menu est activée en utilisant les entrées trouvées dans le fichier. Avec la ligne de commande, ou si le fichier de configuration n'a pas été trouvé, GRUB passe sur l'interface en ligne de commande.

   L'interface en ligne de commande fournis un prompt similaire à un shell Unix. Chaque commande est immédiatement exécutée après qu'elle soit entrée. Les commandes sont un sous-jeu de celles disponible dans le fichier de configuration, utilisée avec la même syntaxe.

   Le mouvement du curseur et l'édition du text sur la ligne peut être fait via un sous-jeu de fonctions disponible dans le shell BASH:

C-f (flèche droite) Déplacer d'un caractère en arrière
C-b (flèche gauche) Déplace d'un caractère en avant
C-a (HOME) Déplacer au début de la ligne
C-e (END) Déplace à la fin de la ligne
C-d (DEL) Supprimer le caractère sous le curseur
C-h (BS) Supprimer le caractère à gauche du curseur
C-k Supprimer le texte de la position courant à la fin de la ligne
C-u Supprimer le texte du début de la ligne à la position du curseur
C-y Placer le texte supprimé dans le tampon au curseur
C-p, C-n (flèche du haut/bas) De déplacer dans l'historique

   En tapant des commande interactivement, si le curseur et dans ou avant le premier mot dans la ligne de commande, la touche TAB affiche un listing des commandes disponible, ou la completion des disques, partitions, et noms de fichiers.

   Noter qu'on ne peut pas utiliser la fonctionnalité de completion dans le système de fichier TFTP.

   L'interface à menu est facile à utiliser. ses commande sont raisonnablement intuitives et décrites à l'écran. Basiquement, l'interface à menu fournis une liste d'entrées de boot. Utiliser les touches fléchées pour sélectionner l'entrée, puis appuyer sur entrer pour valider le choix

   Les commandes sont disponible pour entrer une ligne de commande en appuyant sur 'c' qui opèrent exactement comme la version sans fichier de configuration de GRUB, mais permet de retourner au menu si désiré en appuyant sur échappe.

   En protégeant l'interface avec un mot de passe, tout ce que l'on peut faire est de choisir une entrée avec entrer ou appuyer sur p pour entrer un mot de passe.

Éditer une entrée de menu

   L'éditeur d'entrée de menu ressemble à l'interface à menu principale, mais les lignes dans le menu sont des commandes individuelles dans l'entrée sélectionnée au lieu des noms de l'entrée.

   Si échappe est pressé dans l'éditeur, il annule tous les changement faits sur l'entrée et retourne dans le menu principal.

   Chaque ligne dans l'entrée de menu peut être édité librement, et on peut également ajouter des lignes. Pour booter sur l'entrée éditée, utiliser Ctrl+x.

Variables d'environnement GRUB

   GRUB supporte les variables d'environnement qui sont similaires aux système UNIX

biosnum En chaînant un autre chargeur de boot, GRUB a besoin de connaître quel numéro de disque BIOS correspond au périphérique root pour qu'il puisse être enregistré correctement. Si cette variable n'est pas définie, GRUB le devine.
check_signatures Contrôle si GRUB force la signature numérique au chargement des fichiers.
chosen En exécutant une entrée du menu, GRUB définis cette variable au titre de cette entrée.
cmdpath L'emplacement depuis lequel core.img a été chargé, en chemin absolue. Définis par GRUB au démarrage.
color_highlight Cette variable contient les couleurs de terminal foreground et background, séparé par un '/'. Définir cette variable change ces couleurs. Défaut: 'black/white'
color_normal Cette variable contient les couleurs normales foreground et background, séparés par un '/'. Chaque couleur doit être un nom parmis black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white. défaut: white/black
debug Cette variable peut être mis pour activer le debuggage de différents composants de GRUB. Contient une liste de facilités, ou all.
default Si cette variable est définie, elle identifie une entrée du menu qui devrait être par défaut. Peut être identifier par un numéro ou un titre.
fallback Si définie, identifie une entrée de menu qui devrait être sélectionnée si l'entrée par défaut échoue.
gfxmode Si définie, indique la résolution utilisée dans le terminal graphique gfxterm. Noter qu'il n'est possible d'utiliser que les modes VESA BIOS Extensions (VBE). défaut: auto.
gfxpayload contrôle le mode vidéo dans lequel Linux démarre. Remplace l'option de boot vga=. peut être 'text' pour forcer linux à booter en mode texte normal, 'keep' pour préserver le mode graphique définis avec gfxmode, ou une des valeurs permises pour gfxmode.
gfxterm_font nom d'une font à utiliser pour le texte dans le terminal graphique gfxterm.
grub_cpu En mode normal, GRUB définis cette variable au type de CPU pour lequel GRUB a été construit.
grub_platform En mode normal, GRUB définis cette variable à la platform pour laquelle GRUB a été construit (ex: pc ou efi)
icondir Répertoire dans lequel le menu graphique GRUB devrait rechercher les icônes, après avoir recherché dans le répertoire 'icons'
lang code de langue que la commande gettext utilise pour traduire les chaînes.
locale_dir Répertoire où trouver les fichiers de traduction, généralement /boot/grub/locale. sinon, l'internationnalisation est désactivée.
menu_color_highlight Contient les couleurs foreground et background à utiliser pour les entrées de menu sélectionnés, séparés par un '/'.
menu_color_normal Contient les couleurs à utiliser pour les entrée non-sélectionnés
net_* Voir la partie réseaux
pager À 1, pause la sortie après chaque écran plein et attend une entrée clavier.
prefix L'emplacement du répertoire /boot/grub. Normalement définis par GRUB
root Nom du périphérique root
superusers liste de noms de superutilisateurs pour activer le support de l'authentification
theme Répertoire contenant un theme graphique
timeout Spécifie le temps en seconde à attendre une entrée clavier avant de booter l'entrée par défaut. 0 indique de booter immédiatement, et -1, attend indéfiniment.
timeout_style Peut être menu, countdown, ou hidden.

Block d'environnement GRUB

   Il est souvent utile de se rappeler d'un boot à l'autre. Par exemple, l'entrée par défaut peut être celle sélectionnée la dernière fois. GRUB n'implémente pas délibérément le support pour écrire des fichiers afin de minimiser les risques de corruption des systèmes de fichier. Cependant, GRUB fournis un block d'environnement qui peut être utilisé pour sauver une petite quantité d'états.

   Le block d'environnement est un fichie 1024 octets préalloués, qui vis dans /boot/grub/grubenv. Au boot, load_env charge les variables depuis ce fichier, et save_env sauve les variables dans ce fichier. grub-editenv peut être utilisé pour éditer le block d'environnement.

   Pour des raisons de sécurité, ce stockage est seulement disponible si installé sur un simple disque (ni LVM ou RAID), en utilisant un système de fihier sans checksum (pas de ZFS), et en utilisant des fonction BIOS ou EFI (pas de ATA, USB ou IEEE1275).

   grub-mkconfig utilise cette facilité pour implémenté GRUB_SAVEDEFAULT

Liste de commandes disponible

   Les commandes appartiennent à différents groupes. Quelques commandes peuvent être utilisées dans la section globale du fichier de configuration (ou menu). La plupart d'entre-elles peuvent être entrée sur la ligne de commande et peut être utilisée soit dans le menu ou spécifiquement dans les entrées du menu.

   En mode récupération, seul insmod, ls, set, et unset sont normalement disponibles.

Commandes pour le menu uniquement

   Les sémantiques utilisées pour parser le fichier de configuration sont les suivantes:

- Les fichiers doivent être au format plain-text
- Les options sont séparés par des espaces
- Tous les nombres peuvent être en décimal ou en hexadécimal.
Ces commandes peuvent être seulement être utilisés dans le menu:


menuentry title [--class=class ...][--users=users][--unrestricted][--hotkey=key]{command;...} Définie une entrée du menu nommée title. --class peut être spécifié plusieurs fois, et est utilisée par les thèmes pour afficher différentes classes en utilisant différents styles. --users donne aux utilisateurs spécifiques l'accès à l'entrée. --unrestricted donne accès à tous les utilisateurs. --hotkey associe une touche avec l'entrée, ou 'backspace, tab ou delete.
submenu title [--class=class ...][--users=users][--unrestricted][--hotkey=key]{command;...} Définis un sous-menu.

   Liste des commandes générales, utilisée dans le menu et sur la ligne de commande:

serial [--unit=unit] [--port=port] [--speed=speed] [--word=word] [--parity=parity] [--stop=stop] Initialise un périphérique série. unit est un nombre de 0 à 3. Le port série n'est pas utilisé sauf si les commandes terminal_input et terminal_output sont utilisés.
terminal_input [--append|--remove] [terminal1] [terminal2] … Sélectionne un terminal d'entrée. Sans argument, liste les terminaux actifs et disponibles. --append ajoute les terminaux nommés à la liste de terminaux actifs. --remove supprime les terminaux nommés de la liste active.
terminal_output [--append|--remove] [terminal1] [terminal2] … Identique à terminal_output, mais pour les terminaux se sortie
terminfo [-a|-u|-v] [term] Définis les capacités de votre terminal en donnant le nom d'une entrée dans la base terminfo, qui devrait correspondre à une variable d'environnement TERM dans Unix. "vt100", "vt100-color", "ieee1275", et "dumb". Les options -a (--ascii), -u (--utf8), et -v (--visual-utf8) contrôlent comment le text non-ASCII est affiché.

   Liste des commande utilisable sur la ligne de commande et dans les entrées de menu

[ Alias de test
acpi [-1|-2] [--exclude=table1,…|--load-only=table1,…] [--oemid=id] [--oemtable=table] [--oemtablerev=rev] [--oemtablecreator=creator] [--oemtablecreatorrev=rev] [--no-ebda] filename … Les systèmes BIOS modern implémentent ACPI, et définissent diverses tables qui décrivent l'interface entre un OS conforme ACPI et le firmware. Dans certains cas, les tables fournies par défaut ne fonctionnent qu'avec certains OS, et il peut être nécessaire de les remplacer. Cette commande va remplacer le Root System Description Pointer (RSDP) dans le Extended BIOS Data Area pour pointer vers de nouvelles tables. Si --no-ebda est utilisé, les nouvelles tables seront connues uniquement de GRUB, mais peut être utilisé par l'émulation EFI de GRUB.
authenticate [userlist] Vérifie l'utilisateur dans userlist ou listé dans la variable superusers.
background_color color Définis la couleurs de fond pour le terminal actif. Ne peut être changé qu'en utilisant gfxterm
background_image [[--mode ‘stretch’|‘normal’] file] Charge l'image de fond pour le terminal actif depuis le fichier spécifié. Uniquement en utilisant gfxterm
badram addr,mask[,addr,mask...] Filtrer la mémoire endommagée. La syntaxe est la même que fournie par l'utilitaire memtest86+
blocklist file Affiche une liste de block pour le fichier donné.
boot La commande boot démarre un OS ou un chain-loader qui a été chargé.
cat [--dos] file Affiche le contenu d'un fichier. Si --dos est utilisé, les CR/NL sont affiché comme simple nouvelle ligne.
chainloader [--force] file Charge le fichier comme chain-loader. --force charge le fichier même si la signature est incorrect.
clear Éfface l'écran
cmosclean byte:bit Efface la varleur d'un bit dans le CMOS.
cmosdump contents Dump le contenu du CMOS en valeurs hexadécimal.
cmostest byte:bit Test la valeur d'un bit dans le CMOS.
cmp file1 file2 Compare 2 fichiers.
configfile file Charge le fichier de configuration spécifié, puis affiche le menu.
cpuid [-l] Vérifie les fonctionnalités CPU. Cette commande est seulement disponible sur les systèmes x86. -l retourne vrai si le CPU supporte le mode long (64-bits)
crc file Affiche le checksum CRC32 du fichier
cryptomount device|-u uuid|-a|-b Définis l'accès à un périphérique chiffré. -a monte tous les périphérique chiffrés détectés. GRUB supporte les disques chiffrés en utilisant LUKS et geli.
date [[year-]month-day] [hour:minute[:second]] Sans argument, affiche l'heure et la date courante. Sinon prend la date et l'heure courante, change un élément spécifié et définis le résultat comme nouvelle date et heure.
devicetree file Charge le dtb depuis un système de fichier, pour le passer à Linux.
distrust pubkey_id Supprime la clé publique donnée du jeu de clé de GRUB. pubkey_id est les 4 derniers octets en hexa de l'id de clé GPG v4, qui est également la sortie de list_trusted. L'id de clé peut être obtenu avec gpg --fingerprint. Ces clés sont utilisées pour valider les signatures.
drivemap -l|-r|[-s] from_drive to_drive Sans option, map le lecteur from_drive au lecteur to_drive. C'est nécessaire pour chain-load certains OS, comme DOS. -s inverse le mappage, inversant 2 disques. -l liste les mappages courant. -r réinitialise tous les mappages
echo [-n] [-e] string … Affiche le texte demandé et, sauf si l'option -n est utilisée, une nouvelle ligne. -e autorise l'interprétation des caractères échappé.
eval string ... Concatène les arguments ensemble en utilisant un simple espace comme séparateur et évalue de résultat comme séquence de commandes GRUB.
export envvar Exporte la variable d'environnement envvar. Les variables exportée sont visible aux fichiers de configurations chargés avec configfile
false Ne fait rien, se termine avec un code de sortie false
gettext string Traduit la chaîne donnée dans la langue courante. La langue courant est stockée dans la variable lang.
gptsync device [partition[+/-[type]]]... Les disques utilisant une table de partition GUID ont également une table de partition MBR pour compatibilité avec le BIOS et avec d'anciens OS. Les MBR peut seulement représenter un sous-jeu limité d'entrées de partitions GPT. Cette commande popule le MBR avec les entrées de partition spécifiés sur le périphérique. Jusqu'à 3 partitions peuvent être utilisée. 'type' est un code de type de partition MBR, [+/-] rend la partition active ou non.
halt --no-apm arrête l'ordinateur. Si l'option --no-apm est spécifiée, aucun appel APM n'est effectué. Sinon, l'ordinateur est éteint en utilisant APM.
hashsum --hash hash --keep-going --uncompress --check file [--prefix dir]|file … Calcule ou vérifie les hashes des fichier. (adler32, crc64, crc32, crc32rfc1510, crc24rfc2440, md4, md5, ripemd160, sha1, sha224, sha256, sha512, sha384, tiger192, tiger, tiger2, whirlpool.
help [pattern ...] Affiche des informations sur les commandes intégrées.
initrd file Charge le ramdisk initial pour une image kernel Linux et définis les paramètres appropriés dans la zone de configuration de Linux. Peut seulement être spécifiée après la commande linux.
initrd16 file Identique, mais pour un ramdisk initiale en mode 16bits.
insmod module Charge un module GRUB
keystatus [--shift][--ctrl][--alt] Retourne true si les touches Shift, Control, ou Alt sont enfoncée, comme requis par les options. Utile dans les scripts pour permettre un certain contrôle utilisateur sur le comportement sans avoir à attendre une touche.
linux file Charge l'image Linux. Le reste de la ligne de commande est passée telle quelle au kernel.
linux16 file Idem mais charge un kernel en mode 16bits.
list_env -f file Liste toutes les variables dans le fichier block d'environnement. -f écrase l'emplacement par défaut du block d'environnement.
load_env -f file Charge toutes les variables depuis le fichier block d'environnement dans l'environnement.
loadfont file Charge les fonts spécifiées.
loopback -d device file Charge le contenu d'un fichier comme périphérique. -d pour le supprimer. ex loopback loop0 /path/to/image; ls (loop0)/
ls [arg ...] Liste des périphériques ou fichiers.
lsfonts Liste les fonts chargées
lsmod Liste les modules chargés
md5sum alias de hashsum --hash md5 arg …
module [--nounzip] file [arguments] Charge un module pour l'image kernel multiboot. Le reste de la ligne est passé comme ligne de commande du module.
multiboot [--quirk-bad-kludge] [--quirk-modules-after-kernel] file … Charge l'image kernel multiboot depuis le fichier spécifié. Le reste de la ligne est passé au kernel comme ligne de commande.
nativedisk switch d'un pilote de disque firmware à un natif.
normal [file] Entre en mode normal et affiche le menu GRUB. En mode normal, les commandes, modules de système de fichier, et modules cryptographique sont automatiquement chargés, et le parser de script GRUB est disponible. Si un fichier est donné, les commandes seront lues depuis ce fichier, sinon elles sont lues depuis $prefix/grub.cfg, s'il existe.
normal_exit sort du mode normal. Si cette instance du mode normal n'a pas été imbriqué dans un autre, retourne en mode rescue.
parttool partition commands Effectue diverses modifications des entrées de la table de partition. Chaque command est soit un booléen, auquel cas il doit être suivi avec + ou -, pour activer ou désactiver cette option, ou peut prendre une valeur sous la forme command=value.
password user clear-password Définir un utilisateur nommé user avec le mot de passe donné.
password_pbkdf2 user hashed-password Définis un utilisateur nommé user avec le mot de passe hashé. Utiliser grub-mkpasswd-pbkdf2 pour générer des hashs de mot de passe.
play file | tempo [pitch1 duration1][pitch2 duration2]... Jouer un son. Si l'argument est un nom de fichier, joue le fichier.
probe [--set var] --driver|--partmap|--fs|--fs-uuid|--label device Récupère des informations de périphérique. --set assigne le résultat à la variable var, sinon affiche l'information à l'écran.
pxe_unload Décharge l'environnement PXE.
read [var] Lit une ligne d'entrée de l'utilisateur. Si une variable var est donnée, définis cette variable d'environnement.
reboot Redémarre la machine
regexp [--set [number:]var] regexp string Test si l'expression régulière matche la chaîne.
rmmod module Supprime un module chargé
save_env [-f file] var ... Sauve les variables nommée depuis l'environnement dans le fichier block d'environnement.
search [--file|--label|--fs-uuid] [--set [var]] [--no-floppy] name Recherche des périphérique par fichier (-f, --file) label de système de fichier (-l, --label), ou UUID de système de fichier (-u, --fs-uuid). Avec --set, la variable var est définis avec le premier périphérique trouvé. La variable par défaut est root. --no-floppy empêche de recherche les périphérique disquette. les commandes search.file, search.fs_label, et search.fs_uuid sont des alias de search --file, search --label, et search --fs-uuid, respectivement.
sendkey [--num|--caps|--scroll|--insert|--pause|--left-shift|--right-shift|--sysrq|--numkey|--capskey|--scrollkey|--insertkey|--left-alt|--right-alt|--left-ctrl|--right-ctrl ‘on’|‘off’]… [no-led] keystroke Insert des touches dans le tampon clavier en bootant. certains OS ou chain-loader nécessitent que des touches particulières soient pressées pour entrer en mode safe. Jusqu'à 16 touches peuvent être fournis. Les noms des touches peuvent être:

Name   Key
escape            Escape
exclam            !
at            @
numbersign            #
dollar            $
percent            %
caret            ^
ampersand            &
asterisk            *
parenleft            (
parenright            )
minus            -
underscore            _
equal            =
plus            +
backspace            Backspace
tab            Tab
bracketleft            [
braceleft            {
bracketright            ]
braceright            }
enter            Enter
control            press and release Control
semicolon            ;
colon            :
quote            ’
doublequote            "
backquote            ‘
tilde            ~
shift            press and release left Shift
backslash            \
bar            |
comma            ,
less            ‹
period            .
greater            ›
slash            /
question            ?
rshift            press and release right Shift
alt            press and release Alt
space            space bar
capslock            Caps Lock
F1            F1
F2            F2
F3            F3
F4            F4
F5            F5
F6            F6
F7            F7
F8            F8
F9            F9
F10            F10
F11            F11
F12            F12
num1            1 (numeric keypad)
num2            2 (numeric keypad)
num3            3 (numeric keypad)
num4            4 (numeric keypad)
num5            5 (numeric keypad)
num6            6 (numeric keypad)
num7            7 (numeric keypad)
num8            8 (numeric keypad)
num9            9 (numeric keypad)
num0            0 (numeric keypad)
numperiod            . (numeric keypad)
numend            End (numeric keypad)
numdown            Down (numeric keypad)
numpgdown            Page Down (numeric keypad)
numleft            Left (numeric keypad)
numcenter            5 with Num Lock inactive (numeric keypad)
numright            Right (numeric keypad)
numhome            Home (numeric keypad)
numup            Up (numeric keypad)
numpgup            Page Up (numeric keypad)
numinsert            Insert (numeric keypad)
numdelete            Delete (numeric keypad)
numasterisk            * (numeric keypad)
numminus            - (numeric keypad)
numplus            + (numeric keypad)
numslash            / (numeric keypad)
numenter            Enter (numeric keypad)
delete            Delete
insert            Insert
home            Home
end            End
pgdown            Page Down
pgup            Page Up
down            Down
up            Up
left            Left
right            Right

set [envvar=value] Définis la variable envvar à la valeur spécifiée. Sans argument, affiche les variables d'environnement
sha1sum Alias de hashsum --hash sha1 arg …
sha256sum Alias de hashsum --hash sha256 arg …
sha512sum Alias de hashsum --hash sha512 arg …
sleep [--verbose] [--interruptible] count Attend count seconde. --interruptible permet à ESC d'intérompre. --verbose affiche un décompte.
source file Lit le fichier comme fichier de configuration, et son conteneu est incorporé directement dans le fichier source. À la différence de configfile, exécute le contenu du fichier sans changer le contexte.
test expression Évalue l'expression et retourne un code de sortie. Similaire à la commande test de bash.
true Ne fait rien, retourne true.
trust [--skip-sig] pubkey_file Lit la clé publique et l'ajoute au jeu de clé de GRUB.
unset envvar Indéfinis la variable d'environnement donnée
uppermem Cette commande n'est pas encore implémentée
verify_detached [--skip-sig] file signature_file [pubkey_file] Vérifie une signature détaché style GPG du fichier donné.
videoinfo [[WxH]xD] Liste les modes vidéo disponibles.
net_add_addr interface card address Ajoute une adresse réseau
net_add_dns server Ajoute un serveur DNS
net_add_route shortname ip[/prefix] [interface | ‘gw’ gateway] Ajoute une route
net_bootp [card] Effectue une autoconfiguration bootp
net_del_addr interface Supprime une adresse IP de l'interface
net_del_dns address Supprime un serveur DNS
net_del_route shortname Supprime une route
net_get_dhcp_option var interface number type Récupère les options DHCP
net_ipv6_autoconf [card] Effectue une autoconfiguration IPv6
net_ls_addr Liste les interfaces
net_ls_cards Liste les cartes réseaux
net_ls_dns Liste les serveurs DNS
net_ls_routes Liste les routes
net_nslookup name [server] Effectue des recherches DNS

Jeux de caractères

   GRUB utilise UTF-8 en interne. Tous les fichiers texte, incluant les configuration, sont supposés être encodés en UTF-8.

  GRUB supporte la traduction. Pour cela il faut avoir des fichiers *.mo dans $prefix/locale, charger le module gettext et définir la variable lang.

Authentification et autorisation

   Par défaut, l'interface est accessible à tout le monde avec un accès physique à la console: tout le monde peut sélectionner et éditer une entrée du menu, et tout le monde a un accès directe à un prompt shell. Pour la plupart des systèmes, c'est raisonnable vu qu'avec un accès physique il existe d'autres manière d'avoir un accès complet.

   Cependant, dans certains environnements, tels que les kiosques, il peut être approprié de bloquer le boot loader pour exiger une authentification avant d'effectuer certaines opérations.

   Les commandes password et password_pbkdf2 peuvent être utilisées pour définir les utilisateurs, chacun ayant un mot de passe associé. password définis le mot de passe en clair, ce qui exige que grub.cfg soit sécurisé; password_pbkdf2 définis le password hashé en utilisant la rfc2898, qui nécessite l'utilisation de grub-mkpasswd-pbkdf2 pour générer les hashs.

   Pour activer l'authentification, la variable superusers doit être définis à la liste des nom d'utilisateurs séparés par des espaces, ',', ';' ou '|'. Les superusers sont autorisés à utiliser la ligne de commande, éditer les entrées du menu, et exécuter une entrée du menu.

Les autres utilisateur peuvent avoir accès aux entrée de menu spécifique en donnant une liste d'utilisateurs en utilisant l'option --users de la commande menuentry. Si l'option --unrestricted est utilisée pour une entrée de menu, cette entrée n'est pas restreinte. Si l'option --users n'est pas utilisée pour une entrée de menu, seul les superusers y ont accès. Exemple:
set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.biglongstring
password user1 insecure
    
menuentry "May be run by any user" --unrestricted {
    set root=(hd0,1)
    linux /vmlinuz
}
    
menuentry "Superusers only" --users "" {
    set root=(hd0,1)
    linux /vmlinuz single
}
    
menuentry "May be run by user1 or a superuser" --users user1 {
    set root=(hd0,2)
    chainloader +1
}

   Le programme grub-mkconfig n'a pas encore le support pour générer des fichiers de configuration avec l'authentification. Vous pouvez utiliser /etc/grub.d/40_custom pour ajouter une simple authentification superusers, en ajoutant set superusers= et password ou password_pbkdf2.

Utiliser des signatures numériques dans GRUB

   core.img peut optionnellement fournir la vérification de tous les fichiers lus. Ce document ne couvre pas commen s'assurer que le firmware de la plateform (ex: coreboot) valide core.img.

   Si la variable check_signatures est à 'enforce', toute tentative de core.img de charger un autre fichier implique d'invoquer verify_detached foo foo.sig. foo.sig doit contenir une signature valide pour le fichier foo.

GRUB utilise les signatures détachée type GPG, et supporte actuellement DSA et RSA. Une clé de signature peut être générée en utilisant
gpg --gen-key
Un fichier peut être signé avec
gpg --detach-sign /path/to/file

Pour une validation complète de tous les sous-composants et le kernel chargé, ils doivent tous être chargés. Cela peut être fait pas grub-mkconfig:
# Edit /dev/shm/passphrase.txt to contain your signing key's passphrase
for i in `find /boot -name "*.cfg" -or -name "*.lst" -or \
    -name "*.mod" -or -name "vmlinuz*" -or -name "initrd*" -or \
    -name "grubenv"`;
do
    gpg --batch --detach-sign --passphrase-fd 0 $i ‹ /dev/shm/passphrase.txt
done
shred /dev/shm/passphrase.txt

^
31 mars 2016

htmlpdflatexmanmd




hostnamectl

hostnamectl

Contrôle le nom d'hôte système

   Cet outil distingue 3 types de noms d'hôtes: le nom "haut niveau", qui peut inclure des caractères spéciaux (ex : Lennart’s Laptop), le nom d’hôte statique, qui est utilisé pour initialiser le nom d’hôte kernel (ex : Lennarts-laptop), et le nom d’hôte transitoire qui peut être assigné temporairement dût à la configuration réseau

OPTIONS

--no-asp-password Ne demande pas d’authentification pour les opérations privilégiées
--static (/etc/hostname)
--transient (/proc/sys/kernel/hostname)
--pretty (/etc/machine-info)
-H, --hostname exécute l’opération a distance. Utilise SSH pour dialoguer.
-M, --machine= Exécute l'opération dans un conteneur local.

Commandes

status Affiche les informations de nom d'hôte système actuel.
set-hostname [NAME] Définis le nom d’hôte
set-icon-name [NAME] Définis l’icône système, utilisé par certaines applications graphique.
set-chassis [TYPE] Définis le type de chassis, utilisé par certaines applications graphique (desktop,laptop, server, tablet, handset, watch, embedded, vm et container)
set-deployment ENVIRONMENT Définis la description d'environnement de déploiement. suggéré: development, integration, staging, production.
set-location LOCATION Définis l'emplacement pour le système. peut être "Berlin, Germany", ou "Left Rack, 2nd Shelf"
^
31 mars 2016

htmlpdflatexmanmd




journal-remote.conf

journal-remote.conf, journal-remote.conf.d

Fichiers de configuration du service de journalisation distant

   La configuration par défaut est définie durant la compilation, donc un fichier de configuration dans /etc/systemd/ contient les entrées commentées montrant les défaut. Quand un package doit personnaliser la configuration, il peut installer des configurations dans /usr/lib/systemd/*.conf.d/. Le fichier de configuration principal est lu avant tous les autres, et a la précédence la plus faible. Les fichiers dans un sous-répertoire sont triés alphabétiquement, sans regarder dans quel sous-répertoire il réside. Pour désactiver un fichier de configuration fournis par un vendeur, la manière recommandée est de placer un lien vers /dev/null dans le répertoire /etc avec le même nom de fichier que le fichier de configuration du vendeur.

OPTIONS

SplitMode host ou none
ServerKeyFile= Clé SSL au format PEM
ServerCertificateFile= Certificat CA au format PEM
TrustedCertificateFile= Certificat CA
^
31 mars 2016

htmlpdflatexmanmd




journalctl

journalctl

Gestion du journal systemd

   Permet de requêter le contenu du journal systemd qui est écrit par systemd-journald.service. Sans paramètre, affiche tout le journal, en commençant par les entrées les plus anciennes

   Si un ou plusieurs arguments de match sont passés, la sortie est filtrée en accord. Un match est dans le format "FIELD=VALUE" (ex: _SYSTEMD_UNIT=httpd.service), réferant aux composant d'une entrée de journal structuré. Voir systemd.journal-fields pour une liste de champs. Si plusieurs match sont spécifiés et matchant différents champs, les entrées de logs sont filtrés par les 2 (les entrées affichées matchent tous les champs). Si 2 matchs s'appliquent sur le même champs, les entrées affichées matchent une des valeurs du champs. Le caractère final '+' peut apparaître comme séparateur de mot entre les autres termes (OU logique)

  

OPTIONS

--no-full, --full, -l Réduit la taille des champs s'ils ne rentrent pas dans la largeur de colonne.
-a, --all Affiche tous les champs, même s'ils contiennent des cararctères non-imprimables ou sont très long
-f, --follow Affiche seulement les entrées de journal récent, et affiche les entrées en continue
-e, --pager-end Va immédiatement à la fin du journal dans le pager. Ne fonctionne qu'avec less
-n, --lines= Nombre de lignes à afficher (défaut: 10)
--no-tail Affiche toutes les lignes, même avec -f
-r, --reverse Les nouvelles entrées s'affiche en premier
-o, --output= Contrôle le formatage des entrées du journal. Prend une des options suivantes:

        short Est le défaut et génère une sortie la plus identique au formattage classique des fichiers syslogs, une entrée par ligne.
        short-iso Similaire, mais affiche les timestamp au format ISO 8601
        short-precise Similaire, mais affiche les timestamp avec une précision au microseconde.
        short-monotonic Similaire, mais affiche les timestamp monotonique
        verbose Affiche les entrée structurées avec tous les champs.
        export Sérialise le journal dans un flux binaire pour les sauvegardes et les transferts réseaux
        json Formate les entrées en structures de données JSON, une par ligne.
        json-pretty Similaire mais les formate sur plusieurs lignes
        json-sse Similaire, mais les format pour être utilisable pour Server-Sent Events
        cat Génère une sortie sans métadonnées, ni timestamp.

--utc Exprime de temps en UTC
-x, --catalog Ajoute les lignes de log avec les textes explicatifs du catalog de message. Cela va ajouter des textes d'aide aux messages de log dans la sortie si disponible.
-q, --quiet Supprime tous les message d'information (ex: --Logs begin at ...", "--Reboot --"), et tout messages de journaux système inaccessible quand lancé comme utilisateur normal.
-m, --merge Affiche les entrées de tous les journaux disponible, inclant ceux distants
-b [ID][±offset], --boot=[ID][±offset] Affiche les message d'un boot spécifique. Cela ajoute un match pour "_BOOT_ID=". L'argument peut être vide, dans ce cas, ajoute un match pour le boot courant.
--list-boots Affiche une liste de nombre de boots, leurs ID et le timestamp du premier et dernier message.
-k, --dmesg Affiche seulement les messages kernel. Implique -b et ajoute le match "_TRANSPORT=kernel"
-t, --identifier=SYSLOG_IDENTIFIER Affiche les messages pour l'identifiant syslog spécifié
-u, --unit=UNIT|PATTERN Affiche les messages pour l'unité spécifiée ou correspondant au motif. Peut être spécifié plusieurs fois
--user-unit= Affiche les messages pour l'unité de session utilisateur spécifié. Peut être spécifié plusieurs fois
-p, --priority= Filtre les messages par priorité ou plage de priorité. ( "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7))
-c, --cursor= Affiche le entrées depuis l'emplacement dans le journal spécifié par le curseur spécifié
--after-cursor= Affiche les entrées après l'emplacement spécifié par le curseur.
--show-cursor= Affiche le curseur après la dernière entrée
-S, --since=, -U, --until= Affiche les entrée depuis ou jusqu'à la date spécifiée. Le format devrait être au format "2012-10-30 18:17:16", voir systemd.time pour la spécification complète des dates.
-F, --field= Affiche toutes les valeurs possible que le champ spécifié peut prendre dans toutes les entrées du journal.
--system, --user Affiche les message des services système et kernel, ou de l'utilisateur courant. Non spécifié, affiche tous les messages que l'utilisateur peut voir.
-M, --machine= Affiche les messages d'un conteneur local.
-D DIR, --directory=DIR Répertoire où rechercher les journaux
--file=GLOB Opère sur les fichiers journaux spécifiés par le GLOB au lieu des chemins de journaux par défaut. Peut être spécifié plusieurs fois.
--root=ROOT Opère sur les catalogues sous le répertoire spécifié
--new-id128 Au lieu d'afficher le contenu du journal, génère un nouvel ID 128bits pour identifier les messages. C'est prévu pour les développeurs qui ont besoin d'un nouvel identifiant pour un nouveau message.
--header Affiche seulement les informations d'en-tête dus champs de journal accédés.
--disk-usage Affiche l'utilisation disque des fichiers journaux
--vacuum-size=, --vacuum-time=, --vaccum-files= Supprime les fichiers journaux archivés jusqu'à ce que l'espace disque qu'ils utilisent soit inférieur à la taille ou le nombre de journaux, ou postérieur à la date spécifié.
--list-catalog [128-bits ID...] Liste le contenu du catalogue de message.
--dump-catalog [128-bit-ID...] Affiche le contenu du catalogue de message
--update-catalog Met à jours les indexs de catalogue
--setup-keys Au lieu d'afficher le contenu des journaux, génère une nouvelle paire de clé pour FSS. Cela génère une clé de scellement et une clé de vérification. La clé de scellement est stockée dans le répertoire des journaux et devrait rester dans l'hôte. La clé de vérification devrait être stocké ailleurs.
--force Quand --setup-keys est passé et que FSS (Forward Secure Sealing) a déjà été configuré, recréé les clés FSS.
--interval= Spécifie l'interval de changement pour la clé en générant une paire de clé FSS avec --setup-keys. Un interval plus court augmente la consommation CPU mais raccourcis la plage de temps des altération de journaux indétectable. Défaut: 15min
--verify Vérifie le fichier journal pour sa consistance interne. Si le fichier a été généré avec FSS activé et la clé a été spécifiée dans --verify-key, l'authenticité du journal est vérifié.
--verify-key= Spécifie la clé de vérification FSS à utiliser pour l'opération --verify
--sync Demande au service de journalisation d'écrire toutes les données non-écrite dans les fichiers journaux
--flush Demande au service de journalisation de vider les logs stockés dans /run/log/journal dans /var/log/journal, si le stockage persistant est activé.
--rotate Demande au service de journalisation de tourner les fichiers journaux.
--no-pager N'utilise pas de pager.

Variables d'environnement

SYSTEMD_PAGER Pager à utiliser. Vide, ou 'cat' est équivalent à --no-pager
SYSTEMD_LESS Remplace les options par défaut de less ('FRSXMK')

Exemples

Collecter tous les logs
journalctl
Ajouter un match
journalctl _SYSTEMD_UNIT=avahi-daemon.service
Si 2 champs sont matchés, seules les entrées matchant les 2 expressions sont affichées
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097
Si 2 matchs réfèrent au même champ, toutes les entrées matchant une des expression sont affichés
journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
Avec '+', 2 expression peuvent être combinées
journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097 + _SYSTEMD_UNIT=dbus.service
Affiche tous les logs générés par DBus
journalctl /usr/bin/dbus-daemon
Affiche tous les logs kernel du boot précédent
journalctl -k -b -1
Affiche un log du service système apache.service
journalctl -f -u apache
^
31 mars 2016

htmlpdflatexmanmd




journald.conf

journald.conf, journald.conf.d

Fichiers de configuration du service de journalisation

   La configuration par défaut est définie durant la compilation, donc un fichier de configuration dans /etc/systemd/ contient les entrées commentées montrant les défaut. Quand un package doit personnaliser la configuration, il peut installer des configurations dans /usr/lib/systemd/*.conf.d/. Le fichier de configuration principal est lu avant tous les autres, et a la précédence la plus faible. Les fichiers dans un sous-répertoire sont triés alphabétiquement, sans regarder dans quel sous-répertoire il réside. Pour désactiver un fichier de configuration fournis par un vendeur, la manière recommandée est de placer un lien vers /dev/null dans le répertoire /etc avec le même nom de fichier que le fichier de configuration du vendeur.

OPTIONS

Storage= Contrôle œu stocker les données. volatile stocke les donnée uniquement en mémoire, sous /run/log/journal, persistent stocke les données sur disque sous /var/log/journal et /run/log/journal au boot si le disque n'est pas accessible. auto est similaire mais ne créé pas /var/log/journal, "none" désactive le stockage et toutes les données sont supprimées. Défaut: auto.
Compress= (Bool). Si activé (défaut), les objets qui sont stockées dans le journal et qui sont plus grandes qu'un certain seuil, sont compressés avant d'être écrites.
Seal= (Bool). Si activé (défaut), et une clé sealing est disponible, FSS pour tous les fichiers journaux persistent est activé.
SplitMode= Contrôle si les fichiers journaux sont séparés par utilisateurs. uid génère un journal pour chaque utilisateur. login, les utilisateurs loggés ont un journal, mais les utilisateurs non-loggés et les utilisateurs système vont dans le journal système. none stocke tout dans le journal système. Défaut: uid
RateLimitInterval=
RateLimitBurst= Configure la limite appliquées à tous les messages générés dans le système. Si, dans l'interval de temps définis par RateLimitInterval, plus de message que RateLimitBurst sont loggés par un service, tous les autres messages dans l'interval sont supprimés. La limite est appliquée par service. Défaut 1000 messages en 30secondes. À 0, désactive les limites.
SystemMaxUse=
SystemKeepFree=
SystemMaxFileSize=
SystemMaxFiles=
RuntimeMaxUse=
RuntimeKeepFree=
RuntimeMaxFileSize=
RuntimeMaxFiles= Force les limites de taille dans les fichiers journaux. Les options préfixées par System s'appliquent aux fichiers stockés dans un système de fichier persistant, plus spécifiquement /var/log/journal. Les options préfixés pas Runtime s'appliquent aux fichiers stockés en mémoire volatile, plus spécifiquement /run/log/journal. MaxUser contrôle l'espace disque utilisable par le journal. KeepFree contrôle l'espace disque à laisser libre pour d'autres utilisations. Journald respecte les 2 limites et utilise la valeur la plus petite des 2 (défaut: 10% et 15%). MaxFileSize contrôle la taille de chaque fichier avant rotation, et MaxFiles contrôle combien de fichiers individuels conserver (Défaut: 100).
MaxFileSec= Temps maximum pour stocker les entrées dans un fichier journal avant la prochaine rotation.
MaxRetentionSec= Temps maximum pour stocker les entrées du journal. Contrôle si les fichiers journaux contenant des entrées plus anciennes que la date spécifiée sont supprimées.
SyncIntervalSec= Timeout avant synchronisation des fichiers sur disque. Une fois synchronisés, les fichiers sont placés OFFLINE. La synchro est toujours faite après un message de priorité CRIT, ALERT, ou EMERG. Défaut: 5min
ForwardToSyslog=
ForwardToKMsg=
ForwardToConsole=
ForwardToWall= Contrôle si les messages de log reçues par journald devraient être forwardés à syslog, au buffer de log kernel (kmsg), à la console système, ou comme message wall. Défaut: activé seulement pour Wall.
MaxLevelStore=
MaxLevelSyslog=
MaxLevelKMsg=
MaxLevelConsole=
MaxLevelWall= Contrôle le niveau de log max des messages à stocker sur disque, forwardés à syslog, kmsg, la console ou wall. (emerg, alert, crit, err, warning, notice, info, debug, ou une valeur entière de 0-7). Défaut: debug, debug, notice, info, emerg, respectivement.
TTYPath= Change la console TTY à utiliser si ForwardToConsole=yes est utilisé. Défaut: /dev/console.

Forward vers syslog

   Les événements journaux peuvent être transférés vers un service le log différent de 2 manières différentes. Avec la première méthode, les messages sont immédiatement transférés à un socket (/run/system/journal/syslog), où le service syslog traditionnel peut être lu. Cette méthode est contrôlée par l'option "ForwardToSyslog=". Avec la seconde méthode, un service syslog devient un client de journal normal, et lit les messages depuis les fichiers journaux, similairement à journalctl. Les messages n'ont pas à être lus immédiatement, ce qui permet à un service de log qui n'est pas lancé tout de suite au boot d'accéder aux mesages depuis le démarrage du système. De plus, les méta-données sont disponible. Cette méthode est disponible seulement si les messages sont stockés dans un fichier journal. Elle ne fonctionne pas avec Storage=none.
^
06 mai 2017

htmlpdflatexmanmd




/etc/locale.conf

/etc/locale.conf

Fichier de configuration pour les paramètres de locales

   Ce fichier configure les paramètres de locales système. Il est lu par systemd. Le format consiste d'une liste séparée par une nouvelle ligne d'assignement de variables compatible avec le shell.

   Les options de ligne de commande kernel locale.LANG=, locale.LANGUAGE=, locale.LC_CTYPE=, locale.LC_NUMERIC=, locale.LC_TIME=, locale.LC_COLLATE=, locale.LC_MONETARY=, locale.LC_MESSAGES=, locale.LC_PAPER=, locale.LC_NAME=, locale.LC_ADDRESS=, locale.LC_TELEPHONE=, locale.LC_MEASUREMENT=, locale.LC_IDENTIFICATION= peuvent être utilisées au boot pour définir les locales. les paramètres suivants peuvent être définis:

LANG=
LANGUAGE=
LC_CTYPE=
LC_NUMERIC=
LC_TIME=
LC_COLLATE=
LC_MONETARY=
LC_MESSAGES=
LC_PAPER=
LC_NAME=
LC_ADDRESS=
LC_TELEPHONE=
LC_MEASUREMENT=
LC_IDENTIFICATION=

   Note: LC_ALL ne peut pas être configuré dans ce fichier.

^
06 mai 2017

htmlpdflatexmanmd




localectl

localectl

Contrôle la locale système et les paramètres clavier

   localectl peut être utilisé pour afficher ou changer la locale sysème et les paramètres de couche clavier. Il communique avec systemd-localed pour modifier les fichiers tels que /etc/locale.conf et /etc/vconsole.conf Noter que les changements effectués avec cet utilitaire peut nécessiter de reconstruire initramfs. Noter que systemd-firstboot(1) peut être utilisé pour initialiser la locale système pour les images système montés (mais non chargés)

OPTIONS

--no-ask-password Ne demande pas l'authentification utilisateur pour les opérations privilégiées
--no-convert si set-keymap ou set-x11-keymap est invoqué avec cette option, le keymap ne sera pas convertis de la console vers X11, ou X11 vers la console, respectivement
-H, --host= Exécute l'opération à distance
--no-pager Ne pipe pas dans un pager

Commandes

status Affiche le status courant
set-locale LOCALE... Définis la local système. Prend un ou plusieurs assignement tel que "LANG=deDE.utf8", etc.
list-locales Liste les locales disponibles
set-keymap MAP [TOGGLEMAP] Définis le mappage clavier pour la console et X11.
list-keymaps Liste les mappages clavier disponibles pour la console
set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]] Définis le mappage clavier pour X11 et les claviers virtuels. voir kbd(4)
list-x11-keymaps
list-x11-keymap-layouts
list-x11-keymap-variants [LAYOUT]
list-x11-keymap-options Liste les modèles, couche, variantes et options de clavier X11.

Variables d'environnement

SYSTEMD_PAGER Pager à utiliser. Vide, ou 'cat' est équivalent à --no-pager
SYSTEMD_LESS Remplace les options par défaut de less ('FRSXMK')
^
31 mars 2016

htmlpdflatexmanmd




systemd processus de démarrage

systemd processus de démarrage

Processus de démarrage du système

   Plusieurs composants sont impliqués dans le démarrage du système. Immédiatement après la mise sous tension, le BIOS fait une initialisation hardware minimale, et donne la main au chargeur de boot stocké dans un périphérique de stockage. Ce chargeur va ainsi invoquer un Kernel. Dans le cas de Linux, ce kernel extrait (optionnellement) et exécute une image disque initiale en RAM (initrd), tel que généré par dracut(8), qui recherche le système de fichier racine (possiblement en utilisant systemd). Une fois trouvé et monté, l'initrd donne le contrôle au gestionnaire du système (tel que systemd), qui est ensuite responsable pour gérer tout le harware restant, en montant tous les système de fihier nécessaires et en lancant tous les services configurés.

   Lors de l'arrêt, le gestionnaire stop tous les services, démonte tous les systèmes de fichiers, et optionnellement saute dans le code initrd qui démonte le système racine. Enfin, le système est arrêté.

Gestionnaire système au démarrage

   Au démarrage, le gestionnaire système dans l'image OS est responsable d'initialiser les systèmes de fichier, services et pilotes requis, qui sont nécessaires pour le système. Dans les systèmes systemd, ce processus est splitté en divers étapes qui sont exposés en tant qu'unités cible. Le processus de boot est hautement parallélisé pour que l'ordre dans lequel les unités cible soient atteints ne soit pas déterministe, mais adhère à une structure ordonnée limitée.

   Quand systemd démarre le système, il active toutes les unités qui sont des dépendances de default.target. Généralement, default.target est simplement un alias de graphical.target, ou multi-user.target, en fonction de la configuration du système. Pour forcer un ordre minimal entre les unités, un nombre d'unité cible sont disponibles.

   Le tableau suivant est une vue structurelle des unités et leur position dans le boot. Les unité en haut sont démarrées avant les unité plus bas.

schéma du démarrage du système
   Les unités cible qui sont communément utilisées comme cible de boot sont en italique. Ces unités sont un bon choix comme cible principal, par exemple en passant au kernel l'option systemd.unit=. en en lien default.target.

   timers.target est poussé par basic.targe de manière asynchrone. Cela permet aux unités timer de dépendre de services qui deviennent disponible plus tard.

Démarrage dans l'initrd

   L'implémentation du Ram disk initial peut être définis en utilisant systemd. Dans ce cas, le démarrage dans l'initrd suit la structure suivante.

   La cible par défaut dans l'initrd est initrd.target. Le processus de boot commence de la mème manière que le démarrage du gestionnaire système jusqu'à ce qu'il atteigne basic.target. De là, systemd approche la cible spéciale initrd.target. Si le périphérique root peut être monté dans /sysroot, l'unité sysroot.mount devient active et initrd-root-fs.target est atteinte. Le service initrd-parse-etc.service scanne /sysroot/etc/fstab pour un point de montage possible de /usr et les entrées additionnelles marquées avec l'option x-initrd.mount. Toutes les entrées trouvées sont montées sous sysroot, et initrd-fs.target est atteind. Le service initrd-cleanup.service isole vers initrd-switch-root.target, où les services de nettoyage peuvent être lancés. En dernier, initrd-switch-root.service est activé, causant le système à switch sont root.

schéma du initrd

Arrêt du système

   L'extinction du système avec systemd consiste également de divers unités cible avec une structure minimale:

arrêt du système
^
31 mars 2016

htmlpdflatexmanmd




systemd-journal-gatewayd

systemd-journal-gatewayd, systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket

serveur http pour les événements journaux

   systemd-journal-gatewayd dessert les événements journaux sur le réseaux. Les clients doivent se connecter en utilisant HTTP, sur le port 19531 par défaut. Le programme est démarré par systemd et attend de reçevoir un simple socket. utiliser systemctl start systemd-journal-gatewayd.socket pour démarrer le service, et systemctl enable systemd-journal-gatewayd.socket

OPTIONS

--cert= Spécifie le chemin vers un fichier contenant un certificat serveur au format PEM.
--key= Spécifie le chemin vers un fichier contenant un clé serveur au format PEM.

URL supportées

/browse Naviguer interactivement
/entries[?option1&option2=value...] Récupérer les événements dans divers format. La partie Accept: de l'en-tête http détermine le format. La partie Range: de l'en-tête http détermine la plage d'événements retournés. Les paramètres GET peuvent être utilisés pour modifier les événements à retourner.
/machine Retourne une structure JSON décrivant la machine

Exemple:
{ "machine_id" : "8cf7ed9d451ea194b77a9f118f3dc446",
"boot_id" : "3d3c9efaf556496a9b04259ee35df7f7",
"hostname" : "fedora",
"os_pretty_name" : "Fedora 19 (Rawhide)",
"virtualization" : "kvm",
...}

/fields/FIELD_NAME Retourne une liste de valeurs de ce champs présent dans les logs

En-tête Accept

Accept: format Reconnaît les formats suivants:

        text/plain (défaut). sortie texte style syslog (comme journalctl --output short)
        application/json Entrées formattées en structures de données JSON (comme journalctl --output json)
        application/event-stream Entrées sérialisées en un flux binaire pour les sauvegardes et les transferts réseaux (comme journalctl --output export)

En-tête Range

Range: entries=cursor[[:num_skip]:num_entries] où cursor est une chaîne curseur, num_skip est un entier, num_entries est un entier non-signé.

Paramètres GET

follow Attend les nouveaux événements (comme journalctl --follow, excepté que le nombre d'evénements retourné n'est pas limité)
discrete Teste si le curseur spécifié réfère à une entrée dans le journal. Retourne simplement l'entrée
boot Limite les événements au boot courant du système (comme journalctl --this--boot)
KEY=match Matche les champs du journal.

Exemples

Récupère les événements du boot courant depuis le journal courant au format export
curl --silent -H'Accept: application/vnd.fdo.journal' 'http://localhost:19531/entries?boot'
Écoute pour les coredumps
curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'
^
31 mars 2016

htmlpdflatexmanmd




systemd-journal-remote

systemd-journal-remote

journaux sur le réseaux

   systemd-journal-remote est une commande pour recevoir les événements journaux et les stocker dans le journal. Les flux d'entrées sont au format export. Pour le transport sur le réseau, ce flux sérialisé est généralement transporté sur HTTPS.

Sources

   Les sources peuvent être soit actives ( systemd-journal-remote demande et pousse les données), ou passives (systemd-remote-journal attend une connexion puis reçoit les événements).

   systemd-journal-remote peut lire plus d'un flux à la fois. Il seront entrelacés dans le fichier de sortie. Dans le cas de connexions actives, chaque source est un flux, et dans le cas de connexions passives, chaque connexion peut résulter en un flux séparé. Les sockets peuvent être configurés en mode "accept" (seulement une connexion), ou "listen" ( plusieurs connexions).

   Quand il n'y a plus de connexions, et plus aucune ne peut être créée, systemd-journal-remote se termine.

   Les sources actives peuvent être spécifiées de la manière suivante:

- quand - est donné comme argument positionnel, les événements sont lus depuis d'entrée standard. Les autres arguments seront traités comme noms de fichier.
--url=ADDRESS Les événements sont récupérés en utilisant HTTP depuis ADDRESS. Cet url dervrait référer à la racine d'une instance systemd-journal-gatewayd.

   Les sources passives peuvent être spécifiées de la manière suivante:

--listen-raw=ADDRESS ADDRESS doit être une adresse utilisable pour ListenStream=.
--listen-http=ADDRESS, --listen-https=ADDRESS ADDRESS doit être soit un entier négatif, auquel cas il est interprété comme le numéro de descripteur de fichier, ou une adresse utilisable par ListenStream=. Dans le premier cas, le fd doit être hérité via $LISTEN_FDS/$LISTEN_PID. Dans le second cas, un serveur HTTP ou HTTPS sera lancé sur ce port.
$LISTEN_FDS systemd-journal-remote supporte le protocole $LISTEN_FDS/$LISTEN_PID. Les sockets ouverts hérités via l'activation socket se comportent comme ceux ouverts avec --listen-raw= décris plus haut, sauf s'il sont spécifiés pour lancer un serveur http(s).

Sinks

   L'emplacement du journal de sortie peut être spécifié avec -o out --output=. Pour les sources actives, cette options est requise.

--output=FILE Fichier journal à écrire. Le nom du fichier doit se terminer par .journal. Il sera créé s'il n'existe pas.
--output=DIR Créé les fichiers journaux sous le répertoire spécifié. Le répertoire doit exister.

   Si --output n'est pas utilisé, utilise /var/log/journal/remote. Dans le cas où le fichier de sortie n'est pas spécifié, les fichiers journaux seront créés dans le répertoire séléctionné. Les fichiers seront appelés remote-‹hostname›.journal. Dans le cas de sources active, le fichier de sortie doit toujours être donné explicitement.

OPTIONS

--split-mode (none ou host). Au départ, seul un fichier journal est utilisé. Pour la suite, un fichier séparé est utilisé, basé sur le nom d'hôte. Dans le cas de sources actives, le fichier de sortie doit toujours être donné explicitement et seul none est permis.
--compress, --no-compress Compresse les données dans le journal avec xz
--seal, --no-seal Signe périodiquement les données dans le journal en utilisant FSS
--getter=PROG --option1 --option2 Programme à invoquer pour récupérer les données. Le flux d'événements doit être généré sur la sortie standard (ex: --getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/', ex: --getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/' )

Exemples

Copier les événements journaux locaux dans un répertoire différent
journalctl -o export | systemd-journal-remote -o /tmp/dir -
Récupérer les événements depuis systemd-journal-gatewayd et les stocker dans /var/log/journal/some.host/remote-some-host.journal
systemd-journal-remote --url http://some.host:19531/
^
31 mars 2016

htmlpdflatexmanmd




systemd-journald

systemd-journald, systemd-journald.service, systemd-journald.socket, systemd-journald-dev-log.socket, systemd-journald-audit.socket

Service de journalisation

   systemd-journald est un service système qui collecte et stocke des données de log. Il créé et maintient des journaux indexés basés sur les informations de logging qui sont reçus depuis une variété de sources:

- Logs du kernel, via kmsg
- Logs système simple, via syslog(3)
- Logs système structurés via l'api native sd_journal_print(4)
- Sortie est erreur standard des services système
- Enregistrements d'audit, via le sous-système d'audit

   Le service collecte implicitement de nombreux champs de métadonnées pour chaque messages de log de manière sécurisé et inaltérable. Les données de log collectées sont principalement du texte, mais peuvent également inclure des données binaire. Tous les objets stockés dans le journal peuvent avoir une taille allant jusqu'à 2^64-1 octets

   Par défaut, le journal stocke les données de logs dans /run/log/journal/. Vu que /run est volatile, les données de log sont perdue au redémarrage. Pour que les données soient persistantes, il suffit de créer /var/log/journal/, où systemd-journal va stocker les données:


mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal

Signaux

SIGUSR1 Demande au journal de vider /run dans /var. journalctl --flush utilise ce signal.
SIGUSR2 Demande une rotation immédiate des fichiers journaux. journalctl --rotate utilise ce signal.
SIGRTMIN+1 Demande que toutes les données de log non-écrite le soient sur disque. journalctl --sync utilise ce signal.

Kernel Command Line

   Quelques paramètre de configuration de journald.conf peuvent être passés sur la ligne de commande du kernel:

systemd.journald.forward_to_syslog=
systemd.journald.forward_to_kmsg=
systemd.journald.forward_to_console=
systemd.journald.forward_to_wall= Active/désactive la collecte des messages dans syslog, kmsg, la console système, ou wall

Contrôle d'accès

   Les fichiers journaux sont par défaut possédés et lisible par le groupe systemd-journal mais ne sont pas accessible en écriture. Ajouter un utilisateur à ce groupe lui permet de lire ces fichiers journaux.

   Par défaut, chaque utilisateur loggé a sont propre jeu de fichiers journaux dans /var/log/journal. Ces fichiers ne sont pas possédés par l'utilisateur, cependant, pour éviter que l'utilisateur puisse y écrire directement. Au lieu de ça, les ACL sont utilisées pour s'assurer que l'utilisateur a les accès en lecture seule.

Des utilisateurs et groupes additionnels peuvent obtenir l'accès aux fichiers journaux via les ACL. Par exemple, pour donner l'accès aux membres de wheel et adm:
setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/

   Noter que cette commande va mettre à jours les ACL pour les fichiers journaux existants et pour les futures fichiers journaux créés dans /var/log/journal/

Fichiers

/etc/systemd/journald.conf Configure le comportement de systemd-journald
/run/log/journal/machine-id/*.journal
/run/log/journal/machine-id/*.journal~
/var/log/journal/machine-id/*.journal
/var/log/journal/machine-id/*.journal~ systemd-journald écrit les entrées dans les fichiers avec le suffix .journal. Si le service n'est pas stoppé proprement, ou si des fichiers sont corrompus, il sonts renommés en utilisant le suffix .journal~, et systemd-journald écrit un nouveau fichier.
/dev/kmsg
/dev/log
/run/systemd/journal/dev-log
/run/systemd/journal/socket
/run/systemd/journal/stdout Sockets et autres chemins que systemd-journald écoute qui sont visible dans le système de fichier. De plus, journald peut écouter les évènements d'audit en utilisant netlink.
^
31 mars 2016

htmlpdflatexmanmd




systemd.journal-fields

systemd.journal-fields

Champs de journaux spéciaux

Champs utilisateurs

   Les champs utilisateur sont des champs qui sont directement passés par les clients et stockés dans le journal

MESSAGE= Message de l'entrée.
MESSAGE_ID= Identifiant 128bits pour reconnaître certains types de message.
PRIORITY= Une valeur de priorité entre 0 "emerg" et 7 "debug" formatté en chaîne.
CODE_FILE=
CODE_LINE=
CODE_FUNC= Code de l'emplacement qui a généré cette entrée, si connu. Contient le fichier source, le numéro de ligne et le nom de la fonction.
ERRNO= Numéro d'erreur Unix qui a causé cette entrée, s'il y a un. Contient la valeur numérique de errno(3) formattée en chaîne.
SYSLOG_FACILITY=
SYSLOG_IDENTIFIER=
SYSLOG_PID= Champs de compatibilité syslog contenant la facilité, l'identifiant et le PID du client

Champs de confiance

   Les champs préfixés par un '_' sont des champs de confiance, et sont ajoutés implicitement pas le journal et ne peuvent pas être altérés par le code client

_PID=
_UID=
_GID= Process, user et group ID du processus ayant généré l'entrée.
_COMM=
_EXE=
_CMDLINE= Nom, chemin de l'exécutable, et ligne de commande du processus ayant généré l'entrée
_CAP_EFFECTIVE= Les capacités effectives du processus ayant généré l'entrée
_AUDIT_SESSION=
_AUDIT_LOGINUID= Le session et login UID du processus ayant généré l'entrée, comme maintenu par le sous-système d'audit du kernel
_SYSTEMD_CGROUP=
_SYSTEMD_SESSION=
_SYSTEMD_UNIT=
_SYSTEMD_USER_UNIT=
_SYSTEMD_OWNER_UID=
_SYSTEMD_SLICE= Le chemin du cgroup dans la hiérarchie systemd, l'ID de session systemd, le nom de l'unité, le nom de l'unité de session utilisateur, l'UID propriétaire de la session systemd et l'unité slice systemd du processus ayant généré l'entrée
_SELINUX_CONTEXT= Le contexte de sécurité SELinux du processus ayant généré l'entrée
_SOURCE_REALTIME_TIMESTAMP= La date du message, s'il est connu, qui est différent de la date de réception par le journal, en microsecondes depuis epoch
_BOOT_ID= Le kernel boot ID
_MACHINE_ID= L'ID de machine de l'hôte, comme affiché dans machine-id(5)
_HOSTNAME= Le nom de l'hôte
_TRANSPORT= Décris comment l'entrée a été reçue

        audit Lus depuis le sous-système d'audit du kernel
        driver Pour les messages générés en interne
        syslog Reçus via le socket syslog local avec le protocole syslog
        journal Reçus via le protocole journal natif
        stdout Lu depuis la sortie standard ou l'erreur standard d'un service
        kernel Lus depuis le kernel

Champs du kernel

   Ces champs sont utilisés par les messages provenant du kernel

_KERNEL_DEVICE= Nom du périphérique kernel.
_KERNEL_SUBSYSTEM= Nom du sous-système du kernel
_UDEV_SYSNAME= Nom du périphérique kernel tel qu’affiché dans /sys
_UDEV_DEVNODE= Node du périphérique dans /dev
_UDEV_DEVLINK= Nom du lien pointant vers le node dans /dev

Champs à la demande d'un autre programme

   Les champs dans cette section sont utilisé par les programmes pour spécifier qu'ils sont loggés à la demande d'un autre programme ou unité.

COREDUMP_UNIT=
COREDUMP_USER_UNIT= Champs utilisés par systemd-coredump. Utilisé pour annoter les messages contenant les coredumps des unités system et session.
OBJECT_PID=PID PID du programme concerné par ce message
OBJECT_UID=
OBJECT_GID=
OBJECT_COMM=
OBJECT_EXE=
OBJECT_CMDLINE=
OBJECT_AUDIT_SESSION=
OBJECT_AUDIT_LOGINUID=
OBJECT_SYSTEMD_CGROUP=
OBJECT_SYSTEMD_SESSION=
OBJECT_SYSTEMD_OWNER_UID=
OBJECT_SYSTEMD_UNIT=
OBJECT_SYSTEMD_USER_UNIT= Champs additionnels ajoutés automatiquement par systemd-journald. Leur signification est similaire à leur homologue sans 'OBJECT', excepté que c'est le PID dans PID qui est décris, au lieu du processus qui a loggés le message

Champs adresse

   Durant la sérialisation dans les formats externe, tel que le format export ou JSON, les adresses des entrées du journal sont sérialisés dans des champs préfixés avec un double '__'.

__CURSOR= Le curseur pour l'entrée. Un curseur est un chaîne opaque qui décrit de manière unique la position d'une entrée dans le journal et est portable entre les machines, plateformes et fichiers journaux.
__REALTIME_TIMESTAMP= le wallclock time (CLOCK_REALTIME) où l’entrée a été reçue
__MONOTONIC_TIMESTAMP= Le temps monotonic (CLOCK_MONOTONIC) où l’entrée a été reçue
^
06 mai 2017

htmlpdflatexmanmd




timedatectl

timedatectl

Contrôle le temps système et la date

   timedatectl permet d'afficher et changer l'horloge système et ses paramètres

OPTIONS

--no-ask-password Ne demande pas l'authentification utilisateur pour les opérations privilégiées
--adjust-system-clock Si set-local-rtc est invoqué avec cette option, l'horloge système est synchronisée avec RTC, sinon RTC est synchronisé depuis l'horloge système
-H, --host= Exécute l'opération à distance
--no-pager Ne pipe pas dans un pager
-M, --machine= Exécute l'opération dans le conteneur spécifié

Commandes

status Affiche le status courant
set-time [TIME] Définis l'horloge système au format "2012-10-30 18:17:16"
set-timezone [TIMEZONE] Définis le timezone
list-timezones Liste les timezones disponibles
set-local-rtc [BOOL] à 0, le système est configuré pour maintenir RTC en temps universelle. À 1, le système maintient RTC en temps local.
set-ntp [BOOL] Contrôle si ntp est actif. Celà démarre systemd-timesyncd.service.

Variables d'environnement

SYSTEMD_PAGER Pager à utiliser. Vide, ou 'cat' est équivalent à --no-pager
SYSTEMD_LESS Remplace les options par défaut de less ('FRSXMK')