It is possibile to automatically customize the GRML environment at boot, so it become possibile to:
The process is composed of the following steps:
Download the ISO image from the GRML Download Page. As the root user copy the file into an empty USB stick (in the following example the kernel assigned the name /dev/sdc
to it):
dd bs=4M status=progress conv=fdatasync if=grml64-full_2022.11.iso of=/dev/sdc
Boot your PC using the newly crate GRML USB stick. The image supports the UEFI boot.
I had to use the fdisk tool to create a new partition into the GRML USB stick, because the parted
program was unable to properly detect the partitions schema:
fdisk --wipe never /dev/sdc
The option --wipe never is required because the device contains an iso9660 signature that otherwise will be removed by the write command.
Using the n key to add a new partition it is possible to create the /dev/sdc3
partition, which I decided to size at 5 Gb. Select p (print the partition table) and w (write table to disk and exit) to finalize the partitioning, using the following schema as a reference:
Device Boot Start End Sectors Size Id Type /dev/sdc1 * 0 1751039 1751040 855M 0 Empty /dev/sdc2 596 8787 8192 4M ef EFI (FAT-12/16/32) /dev/sdc3 1751040 12236799 10485760 5G 83 Linux
Now format the new partition using an ext4 filesytem:
mkfs.ext4 -F -F -L GRMLCFG /dev/sdc3
The double option -F is required because the system thinks that the whole device is in use and cannot be formatted. The special label GRMLCFG is required because GRML at boot searches for a device with that label and load the configuration from it.
Now it is time to customize your environment; check the grml-autoconfig man page about the options to automatically install Debs, Configuration and Scripts into a freshly booted GRML environment.
You can for example:
$HOME/.ssh/
.$HOME/.config/mc/
.$HOME/config/
directory and place what you want in it. You will find that directory again at the next boot.At the end of the customization, run the GRML command:
save-config -all
A file named config.tbz will be saved into the current directory. The file is a grml configuration archive, which may contains several components: hidden files from the $HOME
directory, modified files from the /etc/
directory, etc.
Mount the custom partition and copy the file into its root directory:
mkdir /mnt/grmlcfg mount /dev/sdc3 /mnt/grmlcfg cp -p config.tbz /mnt/grmlcfg
If you want to modify the config.tbz archive without re-creating it via the save-config
command, you can extract the archive and then re-create it:
mkdir config cd config tar jxvf ../config.tbz # Do whatever you need to the extracted files... mv ../config.tbz ../config.bak.tbz tar jcvf ../config.tbz *
If you want to have some scripts run at bootstrap by GRML, create a script/ directory into the root of the custom USB partition, and place the scripts into it. During the execution of the script the partition will be mounted under /mnt/grmlcfg/.
You can place also files into the partition, so e.g. you can install additional deb packages on-the-fly.
WARNING: The following notes were taken in 2018 and may be out of date.
Vedere Boot via PXE.
La partizione VFAT quando il sistema live è avviato, risulta accessibile sotto /lib/live/mount/medium/
.
La via più comoda di avere una GRML personalizzata è passare il parametro netconfig=server/archivio.tar.bz2
al boot prompt. L'archivio viene scompattato subito dopo l'avvio a partire dalla directory radice, ovviamente è necessario che la macchina abbia accesso alla rete.
In alternativa è possibile creare una partizione opportuna sulla chiavetta USB oppure sul disco fisso, impostare su di essa la label GRMLCFG
e metterci dentro l'archivio config.tbz
.
Altri parametri di boot utili:
lang=it
netconfig=10.0.1.253/grml/gca-$ARCH.tar.bz2
ssh=maidiremai
debs=*.deb
Per impostare dei parametri boot prompt permanenti sulla chiavetta USB è sufficiente seguire le istruzioni Permanently adjust boot parameters. In pratica è sufficiente creare una directory bootparams nella directory radice della chiavetta e creare un file con nome a piacere che contenga i boot parameters desiderati, su una sola riga separati da spazi.
Con il tool grml2usb
(omonimo pacchetto Debian) è possibile copiare una .ISO GRML su chiavetta USB. A differenza di unetbootin
in questo caso è possibile specificare una serie di parametri per personalizzare il boot. Ecco un esempio:
grml2usb --bootoptions="lang=it ssh=mysecret" /home/niccolo/Downloads/grml_2011.05.iso /dev/sdb1
La partizione VFAT (sdb1 nell'esempio) deve essere montata.
I parametri sono documentati in http://grml.org/cheatcodes/. Durante la creazione della chiavetta USB vengono scritti in numerosi file di configurazione nella directory /boot/
.
Gran parte dei pacchetti aggiuntivi possono essere installati direttamente dal repository Debian. Quello usato dalla versione 2013.02 ad esempio è:
http://snapshot.debian.org/archive/debian/20130226/testing/main
Per installare automaticamente un pacchetto al bootstrap, basta creare una directory debs/
nella radice della partizione VFAT e copiarci i file .deb. Quindi si aggiunge il parametro di boot (eventualmente anche sulla riga di comando di grlm2usb
, vedi sopra):
debs=*.deb