Friday, 14 February 2014

Build your own Porteus ISO and run it with persistence using Easy2Booot

Porteus is a linux distro that is quick to boot and you can be running a browser within 30 seconds from selecting the menu entry in the E2B menu. Porteus is a complete linux operating system that is optimized to run from a USB flash drive. It's small (under 300MB) and fast which allows you to start up and get online while most other operating systems are left spitting dust.

You can also configure and build your own ISO online in just a few seconds too!

To download the ISO of your choice, click on the Download button on the top of the page at This will take you to a page that walks you through selecting and downloading your ISO. Users with 64-bit hardware can use either version, but users with 32-bit hardware can only use the 32-bit (i486) version so I suggest you stick with the 32-bit version.

You can make a Desktop Edition or a Kiosk Edition. The Kiosk Edition has been restricted to only allow public users access the web browser. It is ideal to boot to if you just want to quickly boot to a browser from another system. Furthermore, the browser has been locked down to prevent users from tampering with system settings. The kiosk edition will run on both 32-bit (i486 or greater) and 64-bit (x86_64) systems and is extremely lightweight in terms of size and used resources. Default kiosk image size is under 50 MB while your custom kiosk ISO size will depend on your choice of adding extra components like flash, java, additional fonts, end even what home page you want, etc. When the kiosk boots it automatically opens firefox to the home page. When firefox is restarted all caches are cleared and browser reopens automatically with a clean session. By adding Flash and Java, I could play YouTube videos with sound on my Asus EeePC with no problem.

For your first ISO, I suggest you start with the Desktop 32-bit - GUI - KDE4 version. Just select your options from, choose a browser (choice of Firefox, Chrome or Opera), a Word Processor (AbiWord or LibreOffice), Skype and Development tools (binutils, gcc, make, etc.), video card drivers (nVidia, Radeon, Linux OpenSource) and Printer Support (as desired) and click on the large BUILD button. Within a few seconds your ISO will be ready to download and copy to your E2B drive!

The Kiosk version is worth checking out also, just to see what configuration options you have in the Kiosk build wizard!

MBR-boot Porteus with persistence on E2B from ISO

To run Porteus from Easy2Boot with persistence, use the correct Porteus-xxx-persistent.mnu file or Porteus_generic_persistence.mnu  (in the \_ISO\docs\Sample mnu files folder of E2B). Instructions are inside the .mnu file.

1. Add generic .mnu file to \_ISO\LINUX\MNU folder
2. Add ISO to \_ISO\LINUX\MNU folder
3. Create \porteus persistence file on USB drive (see .mnu file for instructions)
4. Run \Make_this_file_contiguous.cmd

See also here for more details or you can follow the instructions in Tutorial 73.

UEFI-booting with persistence

Using agFM (legacy and UEFI64)

Create a .cfg file using the text below.
Then follow the instructions on the commented lines. The same /porteus  persistence file can be used for both E2B and agFM if you wish.

# agFM .cfg file for Porteus 4 x64 iso boot with persistence
# For UEFI and legacy
# Place this .cfg file in \_ISO\LINUX folder, place ISO file in \_ISO\LINUX\MNU folder
# Use Make_Ext.exe to create persistence file \porteus  with volume name of porteus in root of USB drive
# make all files contiguous
# NO SPACES in filenames or paths
# If you get a 'spawning too fast' error, just reboot. It is a known issue (maybe to do with NTFS filesystem and dirty shutdown?)

# Only show menu if 64-bit CPU:
if [ "$CPU" = "64" ] ; then
menuentry "Porteus 4 64-bit with persistence" --unrestricted --class ubuntu {
# WARNING: partnew will write a new partition entry
   set "grubfm_per=(${grubfm_device})/porteus"
   set "grubfm_path=/_ISO/LINUX/MNU/Porteus-CINNAMON-v4.0-x86_64.iso"
    set "grubfm_file=(${grubfm_device})${grubfm_path}"
if [ ! -e "${grubfm_per}" ] ; then 
echo ERROR ${grubfm_per} does not exist on (${grubfm_device}) ; read ; fi
if [ ! -e "${grubfm_file}" ] ; then 
echo ERROR ${grubfm_file} does not exist on (${grubfm_device}) ; read ; fi
if [ ! -e "(${grubfm_device})${grubfm_path}" ] ; then 
echo ERROR (${grubfm_device})${grubfm_path} does not exist on (${grubfm_device}) ; read ; fi
# check files are contiguous
set x=0
set NC=0
stat -c -q -s x "${grubfm_per}"
if [ ! "${x}" = "1" ] ; then 
echo ERROR: ${grubfm_per} is not contiguous or does not exist!
sleep 5
set NC=2

   if test -d (${grubfm_disk},4) ; then echo ERROR: Partition 4 in use ; sleep 5 ; set NC=5; fi

if [ "${NC}" = "0" ] ; then 
   if ! test -d (${grubfm_disk},4) ; then partnew --type=0x00 --file="${grubfm_per}"  (${grubfm_disk}) 4 ; fi
   loopback loop "${grubfm_file}"
   set root=(loop)
   set gfxpayload=keep
   linux /boot/syslinux/vmlinuz from=${grubfm_path}  changes=LABEL:porteus/
   initrd /boot/syslinux/initrd.xz


menuentry "Back" {
grubfm "${grubfm_current_path}"

Using .imgPTN

Porteus uses rEFInd for UEFI-booting. I used Porteus-XFCE-v3.2rc5-x86_64.iso.

1. Convert the ISO file to a FAT32 .imgPTN file. Increase the suggested size to allow for a persistence file (e.g.  add 300 MB extra).

2. Switch to the .imgPTN file

3. Edit the \EFI\BOOT\refind.conf file as below:

menuentry "Porteus GUI mode" {
volume KERNELS
icon EFI/BOOT/icons/os_porteus.png
loader boot/syslinux/vmlinuz
initrd boot/syslinux/initrd.xz
options ""
submenuentry "Save changes" {
add_options "changes=/porteus/porteussave.dat"

4. Edit the \boot\syslinux\porteus.cfg file as below for MBR booting:

MENU LABEL Graphics mode
KERNEL vmlinuz
APPEND initrd=initrd.xz changes=/porteus/porteussave.dat
    Run Porteus the best way we can.
    Try to autoconfigure graphics
    card and use the maximum
    allowed resolution

5. Boot to Porteus and use the Systems - Porteus Save File Manager   (password=toor) to create a \porteus\porteussave.dat file on the E2B USB drive. Set the size so that it uses all the free space available.

You may get some error messages on first boot but these can be ignored.

Tip: Use CTRL-S to pause the boot messages and CTRL-Q to resume, so you can see if the persistence file was accepted as valid or not.

Login using  root (pwd-toor) and type startx to start the Desktop GUI if any problems.

Now you should be able to UEFI (press F2 in rEFInd menu and choose 'Save changes' menu entry - see below) or MBR boot with persistence.

Porteus 3.2

The latest builds of Porteus come as straight ISO files (the Porteus Build Wizard has been discontinued).

If you make a FAT32 .imgPTN file from the ISO (I used Porteus-MATE-v3.2.2-x86_64.iso), then you can also download any of the .xzm modules (e.g. palemoon-27.2.1-x86_64-1.xzm) and copy them into the \porteus\modules empty folder which is already present.

When you next boot to Porteus from the .imgPTN file, the modules will be automatically added (e.g. Applications - Internet - PaleMoon).

Tip: Create the persistence file as detailed above only after you have added all the modules that you want. If you add modules afterwards, it may prevent Porteus from running startx and booting to the Desktop GUI.

Note: To boot with persistence via UEFI - press Insert or F2 in the rEFInd menu and choose the 'Save changes' boot option.

Thanks to Ed.P for the info about adding modules.

No comments:

Post a Comment