Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 2750 → Rev 2687

/iso/README.md
1,30 → 1,26
Mageiar ISO builder
"Mageia + ALCASAR" ISO builder
===================
 
Goal
----
 
The goal here is to create a minimalist ISO image to install both Mageia and Alcasar with all its dependencies, wth only one command.
The goal is to create a minimalist bootable ISO image of Mageia-Linux embedding the ALCASAR archive and all its RPM dependencies. The name of this ISO image is "mageiar".
 
How it works
------------
 
The script uses an official Mageia docker image to retrieve a recursive list of dependecies that are downloaded and packaged in the installation ISO. Alcasar dependencies list, as well as its kernel version, are retrieved from the Alcasar tar archive.
The script uses an official Mageia docker image to retrieve a recursive list of dependencies that are downloaded and packaged in the installation ISO. ALCASAR dependencies list, as well as its kernel version, are retrieved from the ALCASAR tarball archive.
 
Once the ISO is done, one can boot on it and install the OS normally. The dependencies are installed along the basesystem packages, which means that the Alcasar installer will only download updates.
Once the ISO is done, write it on a bootable device (CDROM, DVDROM, USB Key). Boot on it and install the OS normally. The dependencies are installed along the base system packages, which means that the ALCASAR installer will only download updates.
 
What it needs
-------------
 
The script can be provided with both the Alcasar tar archive as well as the Mageia ISO image.
The Alcasar archive can be given in argument using the `-a` option. Otherwise it will be downloaded automatically in its latest version.
 
The script can be provided with both the ALCASAR tarball archive as well as the Mageia ISO image.
The ALCASAR archive can be given in argument using the `-a` option. Otherwise it will be downloaded automatically in its latest version.
The Mageia ISO image is to be placed in the `ressources` directory.
If Mageia image has been provided, it will be downloaded in the docker.
This is because the version has to match the one in the docker
The script only dependency is the docker service and iptables ("urpmi iptables,docker"). All other dependencies, such as the RPM and ISO tools, will be installed within the docker.
 
The script's only dependency is the docker service. All other dependencies, such as the RPM and ISO tools, will be installed within the docker.
 
How to use
----------
 
33,8 → 29,7
What can be done
----------------
 
The ISO image seems to be already as light as it can be. With all the necessary packages, it weighs around 800Mo.
The ISO image seems to be already as light as it can be (about 800 Mo).
 
Here is a list of interesting functionnalities:
- Use DrakX to install and configure Alcasar graphically
- Propose an automatic partition table suitable for Alcasar
Here is a list of interesting functionalities:
- Use DrakX to install and configure ALCASAR graphically (see folder "drakx")
/iso/buildMageiar.sh
1,3 → 1,6
# Mageia (Mageia + ALCASAR) ISO builder
# By Aurélien DUBOIS
 
#!/bin/bash
 
#######################
/iso/scripts/build-image.sh
26,7 → 26,6
 
# Drake installer
INSTALLER_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/alcasar"
EFI_GRUB_CFG="${MAGEIA_NEW_DIR}/EFI/BOOT/grub.cfg"
AUTO_INSTALL_CFG="/var/iso/auto_inst.cfg.pl"
ADVERT_DIR="${MAGEIA_NEW_DIR}/${ARCH}/install/extra/advertising"
 
40,7 → 39,7
 
# RPMs
RPM_DIR="/root/rpms"
BASE_RPM_LIST="acpi acpid alsa-utils aoss arp-scan basesystem bash-completion coreutils-doc cpupower curl dhcp-client dmraid dnf dnf-plugins-core dosfstools dracut drakx-net-text gpm grub2 grub2-efi grub2-mageia-theme harddrake hdparm hexedit info iwlwifi-agn-ucode kernel-desktop-latest kernel-firmware kernel-firmware-nonfree ldetect lftp lib64alsa-plugins lib64glib-networking-gnutls locales-en locales-fr lsof lvm2 mageia-theme-Default man-db mandi-ifw man-pages microcode microcode_ctl mtools ntfs-3g numlock os-prober p11-kit perl-Hal-Cdroms plymouth procmail python3 python3-dbus radeon-firmware ralink-firmware rtlwifi-firmware sharutils shorewall-ipv6 strace sysfsutils tmpwatch tree vim-minimal vnstat xdg-user-dirs-gtk"
BASE_RPM_LIST="acpi acpid alsa-utils aoss arp-scan basesystem bash-completion coreutils-doc cpupower curl dhcp-client dmraid dnf dnf-plugins-core dosfstools dracut drakx-net-text gpm grub2 grub2-mageia-theme harddrake hdparm hexedit info iwlwifi-agn-ucode kernel-desktop-latest kernel-firmware kernel-firmware-nonfree ldetect lftp lib64alsa-plugins lib64glib-networking-gnutls locales-en locales-fr lsof lvm2 mageia-theme-Default man-db mandi-ifw man-pages microcode microcode_ctl mtools ntfs-3g numlock os-prober p11-kit perl-Hal-Cdroms plymouth procmail python3 python3-dbus radeon-firmware ralink-firmware rtlwifi-firmware sharutils shorewall-ipv6 strace sysfsutils tmpwatch tree vim-minimal vnstat xdg-user-dirs-gtk"
 
#######################
###### Functions ######
99,10 → 98,9
 
# Installing tools to create the iso
printBold "Installing necessary tools"
dnf install 'dnf-command(download)' -y || errorExit "could not install necessary packages"
#dnf install 'dnf-command(config-manager)' -y || errorExit "could not install necessary packages"
dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree || errorExit "could not install necessary packages"
dnf install -y lftp wget cdrkit-genisoimage xorriso rpmtools syslinux || errorExit "could not install necessary packages"
dnf install 'dnf-command(download)' -y >/dev/null || errorExit "could not install necessary packages"
dnf config-manager --set-enabled mageia-x86_64-nonfree updates-x86_64-nonfree >/dev/null || errorExit "could not install necessary packages"
dnf install -y lftp wget cdrkit-genisoimage rpmtools >/dev/null || errorExit "could not install necessary packages"
 
 
# Directories initialization
124,7 → 122,7
# Mounting the image
printBold "Mounting the image"
[[ ! -d "$MAGEIA_OFFICIAL_DIR" ]] && mkdir -p "$MAGEIA_OFFICIAL_DIR"
mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || (sleep 5 ; mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || errorExit "failed mounting $ISO_IN. Running the script again might solve the issue.")
mount -o ro,loop "$ISO_IN" "$MAGEIA_OFFICIAL_DIR" || errorExit "failed mounting $ISO_IN"
 
# Checking ARCHitecture
[[ -d ${MAGEIA_OFFICIAL_DIR}/x86_64 ]] && ARCH=x86_64 || ARCH=i586
216,7 → 214,6
 
# Specify install configuration
sed -i -e 's*rdz*rdz kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g' ${MAGEIA_NEW_DIR}/isolinux/isolinux.cfg
sed -i -e 's*noiswmd*noiswmd kickstart=/tmp/media/x86_64/install/alcasar/auto_inst.cfg.pl*g' $EFI_GRUB_CFG
 
# Generating distr
echo "Generating mirror tree..."
226,15 → 223,7
echo "Creating the isofile..."
alcasarVersion=$(echo $ALCASAR_TAR | cut -d '-' -f2 | rev | cut -d '.' -f 3- | rev )
newIsoName=Mageia-$MAGEIA_VERSION-${ARCH}-Alcasar${alcasarVersion}.iso
#cd ${MAGEIA_NEW_DIR} && genisoimage -quiet -o ${CURRENT_DIR}/${newIsoName} \
# -b isolinux/isolinux.bin \
# -c boot.catalog \
# -no-emul-boot -boot-load-size 4 \
# -boot-info-table -J -R -V "Mageia-$MAGEIA_VERSION Alcasar ${ARCH}" .
 
cd ${MAGEIA_NEW_DIR} && xorriso -as mkisofs -quiet -o ${CURRENT_DIR}/${newIsoName} \
-isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
-isohybrid-gpt-basdat \
cd ${MAGEIA_NEW_DIR} && genisoimage -quiet -o ${CURRENT_DIR}/${newIsoName} \
-b isolinux/isolinux.bin \
-c boot.catalog \
-no-emul-boot -boot-load-size 4 \