ManjaroISO

Revision as of 06:02, 8 June 2014 by imported>Aaditya (→‎Update system)

What is ManjaroISO?

ManjaroISO is a small set of bash scripts that is capable of building fully functional Manjaro Linux based live medias. It is a very generic tool, so it could potentially be used to generate anything from rescue systems, to install disks, to special interest live CD systems, and who knows what else. Simply put, if it involves Manjaro on a shiny coaster, it can do it.

How to get started?

Create a work directory

The first thing you should probably do is create a directory to work in, and cd to it. This'll help keep things organized.

 mkdir -p ~/work/manjaroiso

Update your system

To update your system

 sudo pacman -Syu

Install ManjaroISO

Next, install manjaroiso and its profiles.

 sudo pacman -S manjaroiso manjaroiso-profiles

Copy ManjaroISOs profiles to your work directory:

 cp -a /usr/share/manjaroiso/configs ~/work/manjaroiso

Understanding ManjaroISO Profiles

Depending on your ManjaroISO version you find followed directories:

 build  cinnamon  e17  kde  lxde  mate  net  openbox  shared  sysmenu  xfce

In this example we work with the e17 folder. Change to it and take a look at the files and folders in it:

Packages       isolinux         overlay           pacman-x86_64.conf
Packages-E17   isomounts        overlay-livecd    syslinux
Packages-Xorg  mkinitcpio.conf  pacman-gfx.conf
e17-overlay    options.conf     pacman-i686.conf
  • Packages includes the common packages of all editions.
  • Packages-E17 includes all packages especially for the E17 Edition
  • Packages-Xorg includes all common Xorg packages
  • e17-overlay includes files and folders modified to get E17 Edition working
  • isolinux includes isolinux.cfg file to start syslinux bootloader
  • isomounts holds the information of all overlay-images and their bootorder
  • mkinitcpio.conf holds the information of all needed modules need to be added to the live-media kernel
  • options.conf defines basic settings for the live-media
  • overlay includes common files and folders modified to get all edition working
  • overlay-livecd includes common files and folders modified for all editions getting the live-session working
  • pacman-gfx.conf includes the common pacman.conf file for pkgs-image overlay
  • pacman-i686.conf includes the common pacman.conf for all 32bit Manjaro Editions
  • pacman-x86_64.conf includes the common pacman.conf for all 64bit Manjaro Editions
  • syslinux includes the bootloader for all Manjaro Editions

Modifying E17 Profile

Following files and folders are important for the E17 Profile

  • Packages-E17
  • e17-overlay
  • overlay-livecd
  • isomounts

Current Packages-E17 file looks like this:

### Manjaro Packages

## E17 Main Packages
enlightenment17
faenza-green-icon-theme
gksu
libgnomeui
lxdm
network-manager-applet
system-tools
xcursor-simpleandsoft
xcursor-vanilla-dmz-aa

## Applications
blueman
epdfview
midori
mplayer
gparted
#manjaro-installer
sylpheed
xchat
xnoise

## Packages for Sound and Audio
gstreamer0.10-bad-plugins
gstreamer0.10-ffmpeg
gstreamer0.10-ugly-plugins

## Package management
pacman-gui

You can add any missing package like connman, the E17 network manager, to this file and save it.

The e17-overlay folder looks like this atm:

e17-overlay
|-etc
|---skel
|-----.config
|-------epdfview
|-------gtk-2.0
|-------midori
|-----.local
|-------share
|---------applications
|---systemd
|-----system
|-usr
|---share
|-----icons
|-------default

It includes configuration files like etc/systemd/system/display-manager.service to define the used bootloader. You can change or add any files to that folder to get included to the installed Manjaro system and also added to the live-session if not overwritten by the same file in overlay-livecd.

The overlay-livecd folder looks like this atm:

overlay-livecd
|-etc
|---gdm
|---lightdm
|---manjaro
|---pam.d
|---samba
|---skel
|-----.config
|-------autostart
|-----.kde4
|-------share
|---------config
|-----Desktop
|---sudoers.d
|---systemd
|-----system
|-------multi-user.target.wants
|-root
|---.config
|-usr
|---bin
|---lib
|-----systemd
|-------system
|---sbin
|---share
|-----icons

Any file added to this folder gets only added to the live-session.

isomounts for E17 profile looks like this atm:

# manjaroiso isomounts file
# img - location of image/directory to mount relative to addons directory
# arch - architecture of this image
# mount point - absolute location on the post-initrd root
# type - either 'bind' or 'squashfs' for now
# kernel argument (optional) - if the kernel argument is set the overlay will be loaded. Leave empty to ignore. 
# Sample kernel argument in syslinux: overlay=extra,extra2

# syntax: <img> <arch> <mount point> <type> <kernel argument>

# ORDER MATTERS! Files take top-down precedence. Be careful

#@ARCH@/pkgs-free-overlay.sqfs @ARCH@ / squashfs free
#@ARCH@/pkgs-nonfree-overlay.sqfs @ARCH@ / squashfs nonfree
@ARCH@/overlay.sqfs @ARCH@ / squashfs
#@ARCH@/lng-image.sqfs @ARCH@ / squashfs
@ARCH@/pkgs-image.sqfs @ARCH@ / squashfs
@ARCH@/e17-image.sqfs @ARCH@ / squashfs
@ARCH@/root-image.sqfs @ARCH@ / squashfs

It tells the kernel in which order it should load all overlay images. It will be done in a top-down precedence.

Building an install-media

After you have modified your profile you can build your install-media with buildiso:

 sudo buildiso