Page 2 of 2

Re: Persistence not working on some versions

Posted: 21 Feb 2014, 10:00
by steve6375
I thought the algorithm was

1. try /porteus on boot partition - if exists but not writeable then abort?

Re: Persistence not working on some versions

Posted: 21 Feb 2014, 17:38
by fanthom
why not change the algorithm to look on the boot partition for /porteus first and then search other partitions if not found or not writeable
because if user burn 2 porteus editions (on two separate partitions) then first writable /porteus folder found will be used for both of them.

Re: Persistence not working on some versions

Posted: 21 Feb 2014, 18:02
by steve6375
not if the 'root' device (source of boot files/squashfs) is always searched first...

Re: Persistence not working on some versions

Posted: 21 Feb 2014, 21:54
by fanthom
not if the 'root' device (source of boot files/squashfs) is always searched first...
but you are burning ISO9660 on a partition is it? so it's read only and can't be used for changes (i think i'm loosing the track).

editing porteus.cfg takes about 30 secs and you are doing it once per release. if you specify UUID then it works in every scenario and is the fastest/most reliable way of telling the system where to save the changes.

Re: Persistence not working on some versions

Posted: 21 Feb 2014, 22:17
by steve6375
I am using easy2boot which uses grub4dos to directly boot an ISO from a USB drive.
It uses the special grub4dos command partnew - this command writes a permanent entry into the MBR partition table of the USB drive. This allows 99% of all livecd ISOs to boot without needing any cheat codes.
Here is a hypothetical example:
1. create an file (/porteus) on the USB drive which is internally formatted as an ext2 volume (using RMPrepUSB - Make ext2 File button) with volume name of 'porteus'
2. add the unaltered ISO to the USB drive

boot to grub4dos from the USB drive and use this menu...

title boot linux
partnew (hd0,3) 0x0 /linux.iso - creates new partition entry, beginning of ptn is beginning of ISO, end of ptn is end of ISO - ptn type = 0
partnew (hd0,2) 0x0 /portues - creates new partition entry, beginning of ptn is beginning of file, end of ptn is end of file - ptn type = 0
map /linux.iso (0xff) - map ISO as CD device 0xff
map --hook - patch the int 13h interrupt
root (0xff) - set root to CD device
chainloader (0xff) - load bootcode from CD boot track and boot

What happens is that linux will start real mode phase from device (0xff) and then mount all partitions in the system. Thus sdb4 is mounted as a CDFS volume and sdb3 is mounted as an ext2 filesystem (linux ignores the partition type number of 0, it just looks at each partition - Windows ignores any type 0 partitions). Now linux gets squashfs file and other files from the sdb4 volume automatically. If it looks for an ext volume of name=porteus for persistence, it will find it as it is mounted as sdb3.
This boot method (excluding persistence) is generic and works for 99% of all linux ISOs and no cheat codes or ISO modification is required.
It is great that persistence works for v2 of porteus, but does not work for version 3. It would be really nice if this could also work for v3.

Re: Persistence not working on some versions

Posted: 22 Feb 2014, 09:40
by fanthom
thanks for explanation.
so far you are the only one who want's the old behavior while i had at least 3 users requesting the change implemented in 3.0
sorry but i'm not willing to change it back.

Re: Persistence not working on some versions

Posted: 22 Feb 2014, 09:55
by steve6375
OK. I was just trying to think of a way that would satisfy both parties though...