Manjaro Difference between revisions of "ManjaroISO"

Difference between revisions of "ManjaroISO"

From Manjaro
imported>Aaditya
(Marked this version for translation)
 
(29 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=What is ManjaroISO?=
<languages/>
__TOC__


<translate>
<!--T:1-->
{{warning|As of March 2015 manjaroiso is deprecated, [[Manjaro-tools]] is the way! }}
=What is ManjaroISO?= <!--T:2-->
<!--T:3-->
ManjaroISO is a small set of bash scripts that is capable of building fully
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
functional Manjaro Linux based live medias. It is a very generic tool, so it
Line 7: Line 16:
else. Simply put, if it involves Manjaro on a shiny coaster, it can do it.
else. Simply put, if it involves Manjaro on a shiny coaster, it can do it.


=How to get started?=


==Create a work directory==
=How to get started?= <!--T:4-->
 
==Create a work directory== <!--T:5-->


<!--T:6-->
The first thing you should probably do is create a directory to work
The first thing you should probably do is create a directory to work
in, and cd to it. This'll help keep things organized.  
in, and cd to it. This'll help keep things organized.  


   mkdir -p ~/work/manjaroiso
   <!--T:7-->
mkdir -p ~/work/manjaroiso


==Update your system==
==Update your system== <!--T:8-->


<!--T:9-->
To update your system
To update your system


   sudo pacman -Syu
   <!--T:10-->
sudo pacman -Syu


==Install ManjaroISO==
==Install ManjaroISO== <!--T:11-->


Next, install manjaroiso and its profiles.
<!--T:12-->
Next, install manjaroiso and its profiles. If you do not need the community profiles, do not install their package.


   sudo pacman -S manjaroiso manjaroiso-profiles
   <!--T:13-->
sudo pacman -S manjaroiso manjaroiso-profiles manjaroiso-community-profiles


<!--T:14-->
Copy ManjaroISOs profiles to your work directory:
Copy ManjaroISOs profiles to your work directory:


   cp -a /usr/share/manjaroiso/configs ~/work/manjaroiso
   <!--T:15-->
cp -a /usr/share/manjaroiso/configs/ ~/work/manjaroiso/configs/
 
<!--T:16-->
There is an [[Alternative way to install ManjaroISO]] available using <code>git clone</code> to download the latest ManjaroISO packages from Github.


==Understanding ManjaroISO Profiles==
==Understanding ManjaroISO Profiles== <!--T:17-->


Depending on your ManjaroISO version you find followed directories:
<!--T:18-->
Depending on your ManjaroISO version you find followed directories in ~/work/manjaroiso:


   build  cinnamon  e17  kde  lxde  mate  net  openbox  shared  sysmenu  xfce
   <!--T:19-->
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:
<!--T:20-->
In this example we work with the '''e17''' folder. This folder is not available anymore and got replaced by the '''enlightenment''' folder, but it serves well for demonstration purposes. All profile folders look very similar. Change to it and take a look at the files and folders in it:


  Packages      isolinux        overlay          pacman-x86_64.conf
  <!--T:21-->
Packages      isolinux        overlay          pacman-x86_64.conf
  Packages-E17  isomounts        overlay-livecd    syslinux
  Packages-E17  isomounts        overlay-livecd    syslinux
  Packages-Xorg  mkinitcpio.conf  pacman-gfx.conf
  Packages-Xorg  mkinitcpio.conf  pacman-gfx.conf   efiboot
  e17-overlay    options.conf    pacman-i686.conf
  e17-overlay    options.conf    pacman-i686.conf


<!--T:22-->
* Packages includes the common packages of all editions.
* Packages includes the common packages of all editions.
* Packages-E17 includes all packages especially for the E17 Edition
* Packages-E17 includes all packages especially for the E17 Edition
Line 50: Line 76:
* e17-overlay includes files and folders modified to get E17 Edition working
* e17-overlay includes files and folders modified to get E17 Edition working
* isolinux includes isolinux.cfg file to start syslinux bootloader
* isolinux includes isolinux.cfg file to start syslinux bootloader
* isomounts holds the information of all overlay-images and their bootorder
* isomounts holds the information of all overlay-images and their bootorder: It tells the kernel in which order (from top to bottom) to load all overlay images
* mkinitcpio.conf holds the information of all needed modules need to be added to the live-media kernel
* 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
* options.conf defines basic settings for the live-media
Line 59: Line 85:
* pacman-x86_64.conf includes the common pacman.conf for all 64bit Manjaro Editions
* pacman-x86_64.conf includes the common pacman.conf for all 64bit Manjaro Editions
* syslinux includes the bootloader for all Manjaro Editions
* syslinux includes the bootloader for all Manjaro Editions
* efiboot includes UEFI bootloader stuff for all Manjaro Editions


==Modifying E17 Profile==
==Modifying a ManjaroISO Profile== <!--T:23-->


Following files and folders are important for the E17 Profile
<!--T:24-->
In this example we work with the '''e17''' folder. Following files and folders are most important for the E17 Profile:


<!--T:25-->
* Packages-E17
* Packages-E17
* e17-overlay
* e17-overlay
* overlay-livecd
* isomounts


<!--T:26-->
Current Packages-E17 file looks like this:
Current Packages-E17 file looks like this:


  ### Manjaro Packages
  <!--T:27-->
### Manjaro Packages
   
   
  ## E17 Main Packages
  ## E17 Main Packages
Line 103: Line 133:
  pacman-gui
  pacman-gui


You can add any missing package like '''connman''', the E17 network manager, to this file and save it.
<!--T:28-->
You can add any missing package like ''connman'', the E17 network manager, to this file and save it. You do not need to worry about dependencies.
 
<!--T:29-->
Please keep in mind that you can only add packages from the manjaro repositories and '''not''' from the '''AUR'''. Read this wiki page, if you want to add packages from the AUR: [[How to install AUR packages in ManjaroISO]]
 


<!--T:30-->
The '''e17-overlay''' folder looks like this atm:
The '''e17-overlay''' folder looks like this atm:


  e17-overlay
  <!--T:31-->
e17-overlay
  |-etc
  |-etc
  |---skel
  |---skel
Line 124: Line 161:
  |-------default
  |-------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.
<!--T:32-->
It includes configuration files like <code>etc/systemd/system/display-manager.service</code> 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.
 


<!--T:33-->
The '''overlay-livecd''' folder looks like this atm:
The '''overlay-livecd''' folder looks like this atm:


  overlay-livecd
  <!--T:34-->
overlay-livecd
  |-etc
  |-etc
  |---gdm
  |---gdm
Line 157: Line 198:
  |-----icons
  |-----icons


Any file added to this folder gets only added to the live-session.
<!--T:35-->
Any file added to this folder gets '''only''' added to the '''live-session'''. In some cases, this can be important.
 
== Building 32 bit and 64 bit install-medias == <!--T:36-->
 
<!--T:37-->
The '''options.conf''' file found in the ''shared'' subfolder (in our example: <code>~/work/manjaroiso/configs/shared/</code> ) or the subfolder of the desktop environment you are trying to build (in our example: <code>~/work/manjaroiso/configs/e17/</code> ) contains the following code:
 
<!--T:38-->
arch=`uname -m`
#arch=i686
 
<!--T:39-->
This will build a 32bit install-media, if you are on a 32bit Manjaro system and a 64bit install-media, if you are on a 64bit Manjaro system.
 
<!--T:40-->
If you are on a 64bit Manjaro system and want to build a 32bit install-media, please change the code to this:
 
<!--T:41-->
#arch=`uname -m`
arch=i686
 
=Building an install-media= <!--T:42-->
 
<!--T:43-->
Please change into the profile folder you want to build, if you have not already done this. In our example this is:
 
<!--T:44-->
cd ~/work/manjaroiso/configs/e17/
 
<!--T:45-->
Now, use buildiso to build your install-media:
 
  <!--T:46-->
sudo buildiso
 
<!--T:47-->
buildiso will create a new folder <code>work-x86_64</code> or <code>work-i686</code> depending on the architecture of the install-media you want to build. buildiso will work in that folder exclusively. When buildiso is finished, the .iso file with your install-media will appear in your profile folder (in our example: <code>~/work/manjaroiso/configs/e17/</code> ).
 
== Troubleshooting == <!--T:48-->
 
<!--T:49-->
In case anything goes wrong buildiso will display an error. Try to fix this error and restart buildiso.
If there is a severe error in buildiso or if you want to build a completely new install-media, it might be necessary to delete buildiso's work folder. In our example this is (for a 64bit architecture installation-media):
 
<!--T:50-->
sudo rm -rfv ~/work/manjaroiso/configs/e17/work-x86_64
 
<!--T:51-->
'''Attention:''' The <code>work-x86_64</code> folder will '''not''' be completely deleted, because parts of it are mounted.  


'''isomounts''' for E17 profile looks like this atm:
<!--T:52-->
In severe cases, please reboot your system before and after you try to remove the <code>work-x86_64</code> folder.


# manjaroiso isomounts file
= Links = <!--T:53-->
# 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.
<!--T:54-->
* [https://www.youtube.com/watch?v=89TsITpY3h0 Basic Video Tutorial]
* [http://vimeo.com/63063954 Video tutorial]


=Building an install-media=
<!--T:55-->
* [https://forum.manjaro.org/index.php?topic=4295.0 ManjaroISO Tutorial]


After you have modified your profile you can build your install-media with buildiso:
<!--T:56-->
* [https://forum.manjaro.org/index.php?board=27.0 Manjaro subforum dedicated to ManjaroISO]


  sudo buildiso


== Building 32 bit media on 64 bit systems ==
= Further reading= <!--T:57-->


Edit the '''options.conf''' file found in the ''shared'' subfolder or the subfolder of the desktop environment you are trying to build, and change:
<!--T:58-->
* [[Alternative way to install ManjaroISO]]
* [[How to install AUR packages in ManjaroISO]]


arch=`uname -m`
= See also = <!--T:59-->
#arch=i686


to
<!--T:60-->
* [[manjaro-tools]]


#arch=`uname -m`
</translate>
arch=i686
[[Category:Contents Page{{#translation:}}]]

Latest revision as of 18:01, 7 September 2021

Other languages:
English • ‎Türkçe • ‎русский


Warning
As of March 2015 manjaroiso is deprecated, Manjaro-tools is the way!


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. If you do not need the community profiles, do not install their package.

 sudo pacman -S manjaroiso manjaroiso-profiles manjaroiso-community-profiles

Copy ManjaroISOs profiles to your work directory:

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

There is an Alternative way to install ManjaroISO available using git clone to download the latest ManjaroISO packages from Github.

Understanding ManjaroISO Profiles

Depending on your ManjaroISO version you find followed directories in ~/work/manjaroiso:

 build  cinnamon  e17  kde  lxde  mate  net  openbox  shared  sysmenu  xfce

In this example we work with the e17 folder. This folder is not available anymore and got replaced by the enlightenment folder, but it serves well for demonstration purposes. All profile folders look very similar. 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   efiboot
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: It tells the kernel in which order (from top to bottom) to load all overlay images
  • 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
  • efiboot includes UEFI bootloader stuff for all Manjaro Editions

Modifying a ManjaroISO Profile

In this example we work with the e17 folder. Following files and folders are most important for the E17 Profile:

  • Packages-E17
  • e17-overlay


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. You do not need to worry about dependencies.

Please keep in mind that you can only add packages from the manjaro repositories and not from the AUR. Read this wiki page, if you want to add packages from the AUR: How to install AUR packages in ManjaroISO


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. In some cases, this can be important.

Building 32 bit and 64 bit install-medias

The options.conf file found in the shared subfolder (in our example: ~/work/manjaroiso/configs/shared/ ) or the subfolder of the desktop environment you are trying to build (in our example: ~/work/manjaroiso/configs/e17/ ) contains the following code:

arch=`uname -m`
#arch=i686

This will build a 32bit install-media, if you are on a 32bit Manjaro system and a 64bit install-media, if you are on a 64bit Manjaro system.

If you are on a 64bit Manjaro system and want to build a 32bit install-media, please change the code to this:

#arch=`uname -m`
arch=i686

Building an install-media

Please change into the profile folder you want to build, if you have not already done this. In our example this is:

cd ~/work/manjaroiso/configs/e17/

Now, use buildiso to build your install-media:

 sudo buildiso

buildiso will create a new folder work-x86_64 or work-i686 depending on the architecture of the install-media you want to build. buildiso will work in that folder exclusively. When buildiso is finished, the .iso file with your install-media will appear in your profile folder (in our example: ~/work/manjaroiso/configs/e17/ ).

Troubleshooting

In case anything goes wrong buildiso will display an error. Try to fix this error and restart buildiso. If there is a severe error in buildiso or if you want to build a completely new install-media, it might be necessary to delete buildiso's work folder. In our example this is (for a 64bit architecture installation-media):

sudo rm -rfv ~/work/manjaroiso/configs/e17/work-x86_64

Attention: The work-x86_64 folder will not be completely deleted, because parts of it are mounted.

In severe cases, please reboot your system before and after you try to remove the work-x86_64 folder.

Links


Further reading

See also

Cookies help us deliver our services. By using our services, you agree to our use of cookies.