booting from usermade iso ends up in "porteus data not found"

Post here if you are a new Porteus member and you're looking for some help.
seed_clapper
Black ninja
Black ninja
Posts: 44
Joined: 17 Oct 2022, 13:22
Distribution: Porteus 5 LXQT

booting from usermade iso ends up in "porteus data not found"

Post#1 by seed_clapper » 19 Oct 2022, 13:57

How do I create custom porteus iso bootable from ventoy?

Tried both ultraiso in windows (ntfs) and make_iso.sh in porteus (ext2). Booting to ventoy and navigating to porteus.iso on main hdd. Porteus boot menu appear but all three methods (graphic/fresh/copy-to-ram) lead to error message
^ searching for porteus-v5.0-x86_64.cfg file
Porteus data not found.
You are maybe using an unsupported boot device ..
Error appear even if I just unpack files from official iso and make new iso without adding new files
Here is link to that iso https://gofile.io/d/0s5IZ2

All other official porteus iso boot normally using ventoy

User avatar
Ed_P
Contributor
Contributor
Posts: 8374
Joined: 06 Feb 2013, 22:12
Distribution: Cinnamon 5.01 ISO
Location: Western NY, USA

booting from usermade iso ends up in "porteus data not found"

Post#2 by Ed_P » 19 Oct 2022, 16:22

What did you customize in the iso? I boot ISOs all the time, with grub2, and all my changes are applied via Porteus modules.

Added in 15 minutes 38 seconds:
seed_clapper wrote:
19 Oct 2022, 13:57
Error appear even if I just unpack files from official iso and make new iso without adding new files
How are you making the new ISO? Where did you get make_iso.sh?

The script I use to update my Porteus ISOs is based on the script neko shows here: Porteus Kernel Builder (Post by neko #70062) .

Added in 29 minutes 14 seconds:
I think the problem is your unpacking of the files.
Ed

seed_clapper
Black ninja
Black ninja
Posts: 44
Joined: 17 Oct 2022, 13:22
Distribution: Porteus 5 LXQT

booting from usermade iso ends up in "porteus data not found"

Post#3 by seed_clapper » 20 Oct 2022, 08:59

Turned out it is not possible to boot porteus iso from other drive using ventoy

My environment was:
- hdd with iso
- usb with installed porteus
- second usb with ventoy

Booting to ventoy and navigating to iso on hdd works. But iso loaded this way can not find its config file. All usermade iso failed to find config file. Strangely when I select official non-modded iso situated on hdd it kept booting installed porteus from other usb. After removing usb with installed porteus non-modded iso showed same error as other iso

This is the reason why I thought that porteus iso is able to boot from other locations using ventoy. But in reality it was just a booting bug

Ed_P wrote:
19 Oct 2022, 17:06
How are you making the new ISO? Where did you get make_iso.sh?
Default make_iso.sh from official distro iso
For ultraiso I untick "Recompile ISO when Saving Directly" option in Save tab in Settings and save changes directly to original iso

User avatar
Ed_P
Contributor
Contributor
Posts: 8374
Joined: 06 Feb 2013, 22:12
Distribution: Cinnamon 5.01 ISO
Location: Western NY, USA

booting from usermade iso ends up in "porteus data not found"

Post#4 by Ed_P » 20 Oct 2022, 16:36

seed_clapper wrote:
20 Oct 2022, 08:59
Default make_iso.sh from official distro iso
:o In the ISO's /porteus folder. Ok, thanks. I've never used it.

I've never used Ventoy either but the secret to an ISO finding it's cfg file usually lies in root being set to it's location when booting.

This is the grub2 menu that I use when booting my Porteus ISOs:

Code: Select all

menuentry " Porteus 5.0 ISO - AF'"  --class slackware   --class icon-porteus  {

     set bootparms="volume=33 reboot=cold extramod=$linux_folder/Modules noload=kde;jinn;lxqt;xfce;lxde;mate;open;50save;menu2" # ;mychanges"

     search -f $iso --set=root
     loopback loop $iso
     linux (loop)/boot/syslinux/vmlinuz from=$iso $bootparms
#     linux $linux_folder/BootModules/vmlinuz from=$iso $bootparms
     initrd (loop)/boot/syslinux/initrd.xz
#     initrd $linux_folder/initrd/initrd.xz  
     }
And for updating my Porteus ISOs I use this script that I've cobbled together since the official Porteus Settings Center's Porteus Updater function doesn't support booted ISOs:

Code: Select all

#!/bin/sh
# https://forum.porteus.org/viewtopic.php?p=70062#p70062
# https://forum.porteus.org/viewtopic.php?p=87391#p87391

# https://mirrors.dotsrc.org/porteus/x86_64/current/updates/core/

# Base ISO file
ISO=Porteus-CINNAMON-v5.0-x86_64.iso

newkernel=5.18.8
kernel=https://www.mediafire.com/file/o93mc6u3ii3rigw/64bit-ALL-kernel5.18.8.tar/file

ISOdir=/mnt/$DRV/ISOs
ISOupdates=/mnt/$DRV/porteus5.0/rc3ISOModules/ISOupdates

if [ `whoami` != "root" ]; then
   echo -e "Enter root's password\033[1;31m"
   su -c "sh $0 $1 $2"; exit
fi
echo -e "\033[0m"; echo -en "\033]0;Porteus ISO Update\a" 

# rerun
#set -x
[[ -d  /tmp/mediafire ]] && rm -rf /tmp/mediafire;
[[ -d  /tmp/NEW/ ]]      && rm -rf /tmp/NEW;
if [ -f /tmp/*$newkernel.tar ]; then 
   rm /tmp/*.tar
fi  

cd /tmp
echo "ls /tmp"
ls
echo 
#
BOOTDEV=`grep -A1 "Booting" /var/log/porteus-livedbg|tail -n1|sed 's^//^/^g'`
if [ "$BOOTDEV" == "/mnt/isoloop" ]; then
   BOOTDEV=`grep -A1 "ISO=" /var/log/porteus-livedbg|tail -n1|sed 's^//^/^g'`
   if [ ${BOOTDEV:9:4} == "nvme" ]; then
      bootiso=${BOOTDEV:44}
   else
      bootiso=${BOOTDEV:39}
   fi
fi
#echo ${BOOTDEV:9:4} $bootiso; read
if [ $ISO == $bootiso ]; then                          # Base ISO is booted   
  mkdir NEW
  cp -a /mnt/isoloop/*              NEW/.
  cp -a /mnt/isoloop/.[0-9A-Za-z]*  NEW/. 2>/dev/null
else
  mkdir mnt
  mount -t iso9660 -o loop $ISOdir/$ISO mnt
  mkdir NEW
  cp -a mnt/*                       NEW/.
  cp -a /mnt/.[0-9A-Za-z]*          NEW/. 2>/dev/null
  umount -f mnt
  rm -fr mnt
fi
#

echo
echo "Update the /tmp/NEW files with the $ISOupdates files."
echo 
#set -x
read -p "  Update the kernel? (n/y) " ANS
if [ "$ANS" == "y" ]; then
   read -p "  neko/Blaze kernel or fulalas kernel? (n/b, f) " ANS
   if [ ! "$ANS" == "f" ]; then
      if [ -e $ISOdir/*$newkernel.tar ]; then
         cp $ISOdir/*$newkernel.tar /tmp
      else
         wget -c --no-check-certificate $kernel 
      fi
      echo $ISO
      ls *.tar
      read
   fi
fi

echo
read -p "  Update the /porteus/base files? (n/y) " ANS
if [ "$ANS" == "y" ]; then
   if [ -f $ISOupdates/*.tar ]; then                       
      mkdir w
      cd w
      tar -xf ../*.tar
      cd ../
      cp w/vmlinuz                       NEW/boot/syslinux/
      cp w/000-kernel.xzm                NEW/porteus/base/
      rm -fr w
   else
      rm -f NEW/porteus/base/003-*.xzm
      cp $ISOupdates/initrd.xz           NEW/boot/syslinux/
      cp $ISOupdates/00*.xzm             NEW/porteus/base/
#     cp $ISOupdates/06*${newkernel}.xzm NEW/porteus/base/
   fi
   ls -oh NEW/porteus/base|cut -c 20-    
   echo "Ok?"
   read
fi
echo
#set -x
read -p "  Build new ISO? (n/y) " ANS
if [ "$ANS" == "n" ]; then
   ls /tmp
   read
   exit
fi
 
#
mkisofs -o NEW.iso -v -l -J -joliet-long  -R -D -A Porteus -V Porteus \
        -no-emul-boot -boot-info-table -boot-load-size 4 \
        -b boot/syslinux/isolinux.bin -c boot/syslinux/isolinux.boot NEW
rm -fr NEW  # w

echo
mv NEW.iso $ISO
ls *.iso
echo " "; echo "Copy from /tmp to boot directory & update grub2 config."
#
read
I update the ISO I have booted and create a new ISO. :)
Ed

Testuser
Samurai
Samurai
Posts: 137
Joined: 26 May 2021, 15:11
Distribution: Porteus-v5.0-64-LXDE

booting from usermade iso ends up in "porteus data not found"

Post#5 by Testuser » 22 Oct 2022, 17:27

Hi Seed,

I found a way to use Porteus with Ventoy.

Install latest Ventoy in pendrive

Create a folder in folder named "Ventoy" in USB drive where we put ISO.

Create a file named - ventoy_grub.cfg inside the folder

copy paste below contents in the file.

Create a folder Porteus in the same USB drive and copy contents of ISO in this folder.

This is a custom grub script by Ventoy to boot using Grub menu. (Ventoy normally boots by just copying ISO, no grub installation needed)

Here we will put the default grub cfg path of porteus menu in this grub menu.

Below grub menu is from MultibootUSB I used before Ventoy. Path of unicode needs to be changed acoordingly.

Code: Select all

# Sample ventoy_grub.cfg used to USB boot grub OS from Custom linux folders, used for Porteus persistent modules
# This file is created by MultiBootUSB.
insmod chain
insmod png
insmod part_msdos
insmod fat
insmod ntfs
insmod syslinuxcfg
insmod cpuid
insmod ext2
insmod all_video
insmod configfile
insmod normal
insmod linux
insmod echo
insmod search
insmod regexp

set timeout=30

probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"
export imgdevpath rootuuid
set isopath="/multibootusb/iso"
export isopath

insmod font
if loadfont /multibootusb/grub/unicode.pf2 ; then
#if loadfont unicode ; then
	# Use shift key to avoid loading gfxterm
	if keystatus --shift ; then true ; else
        if [ "${grub_platform}" == "efi" ]; then
            insmod efi_gop
            insmod efi_uga
        else
            insmod vbe
            insmod vga
            set gfxmode=auto
            set gfxpayload=auto
            terminal_output gfxterm 
            if terminal_output gfxterm ; then true ; else
                terminal gfxterm
            fi
        fi
        insmod gfxterm
	fi
fi

set color_normal=white/black
set color_highlight=white/light-blue
export color_normal
export color_highlight

#start Porteus-LXDE-v5.0rc3-x86_64 - MultibootUSB - Loop
     menuentry Porteus-LXDE-v5.0rc3-x86_64-Loop {configfile $vtoy_iso_part/Porteus/boot/syslinux/porteus.cfg}
#end Porteus-LXDE-v5.0rc3-x86_64

This is for BIOS boot and for EFI boot it is little complicated.

Post Reply