Page 2 of 5

Re: Multiple versions of Porteus - How not to do

Posted: 07 Sep 2015, 15:36
by rara
Rava wrote:TL;DR: Off Topic issues with gmail
What specific problem are you having with Gmail. Sorry I couldn't comprehend what issue are you having for so long. If I could understand I could possibly help.
Rava wrote:
rara wrote:Senior members, please point out if there are any technical errors in this post.
Everything is fine in your post...

For your tutorial / howto you currently are working on, I am thrilled to see that. Feel free to PM me a template or parts of it when you have questions prior posting the whole thing.

I am especially curious how you will handle the issue by itself, since the Porteus cheatcodes by themselves offer more than one way to have several different Porteus versions on one physical partition...
Thanks Rava. I'll email you the outline before posting. May be in a day or two.

Bogomips wrote:
rara wrote: Problems related to Kernel loading "modules" belonging to other versions. Even after resolving all dependencies I figured kernel was loading all modules from all versions. I couldn't find a way to prevent that even after renaming module files differently and altering their sequence.
Can you go into this in more detail, and give us a for example?
I couldn't capture any screenshots as the OS won't be at a stage where I could take screenshot. But I will try to recreate the problem and note down the word for word message. Another option is to use a camera to take photos, but I find that quite clumsy. I'll be back with more on this.

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 16:19
by rara
Here is my file system attempting to boot Porteus 3.1.

http://en.zimagez.com/zimage/porteus31structure1.php
Image

Here is the menu entry

Code: Select all

LABEL p31b
MENU LABEL Porteus 3.1 KDE
KERNEL /Porteus3.1/vmlinuz
APPEND from=/Porteus3.1/ initrd=/Porteus3.1/initrd.xz
Here is the error it fails with.


Loading /Porteus3.1/vmlinuz .......................... ok
Loading /Porteus3.1/initrd.xz .......................... ok

<Screen clears in a second or two>

Searching for porteus-v3.1-i486.sgn file
from= cheatcode is incorrect, press enter to search through all devices

<Hit return key... the follwing text appears in magenta>

Porteus data not found.
You are may be using an unsupported boot device ... ... ... ...
... ... ... ...
... ... ... ...
... ... ... ...

Press space/return to unmount all devices and reboot or any other key to drop to the debug shell.


Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 16:36
by rara
After sorting that out I ran into the problem I mentioned. Here is my directory listing of base folder.

000-kernel.xzm* 0090-xfce.xzm* 21002-xorg.xzm* 317000-firefox.xzm*
001-core.xzm* 0091-xfce-apps.xzm* 21003-xfce.xzm* 31701-core.xzm*
002-xorg.xzm* 21000-kernel.xzm* 21004-firefox.xzm* 31702-xorg.xzm*
008-firefox.xzm* 21001-core.xzm* 31700-kernel.xzm* 31703-xfce.xzm*

If you notice I renamed the module files in a certain naming convention. 000* are version 1.2 files. 210* are version 2.1 files and 317* files are 3.1 files.

I figured all modules were being loaded ignoring the cheacodes I provided

Code: Select all

LABEL p31b
MENU LABEL Porteus 3.1 KDE
KERNEL /Porteus3.1/vmlinuz
APPEND from=/Porteus3.1/ initrd=/Porteus3.1/initrd.xz copy2ram rammod=001;002;003;firefox noswap nomagic norootcopy volume=100%
I also tried other configurations such as

Code: Select all

APPEND from=/Porteus3.1/ initrd=/Porteus3.1/initrd.xz copy2ram rammod=317
None of them helped. It seemed to ignore the rammod cheatcode and load all modules in the base folder.

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 16:44
by rara
Basically I tried a lot of things, mostly trying to utilize cheatcodes to point Porteus to right folders/files. But cheatcodes don't seem to work (as expected) in all circumstances.

Also, I figured, cheatcodes are inconsistent across various Porteus versions. For example, I could only get from_dir cheatcode to work in Porteus 1.2. For 2.1 and 3.1 it didn't work. 'from' and 'from_dir' had my head spinning. Several iterations just to figure which cheatcode is valid for which version. Documentation mentions 'from_iso' cheatcode in 2.1 but I could never get it to work.

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 17:15
by Rava
Rara, here some examples from my porteus.cfg that I used to boot several ISO images, inlcuding one Porteus Image:

Code: Select all

LABEL Fatdog64 7.00 via memdisk
KERNEL memdisk
INITRD boot/Fatdog64-700.iso
APPEND iso
TEXT HELP
    Run fatdog from ISO file
    via memdisk (part of
    syslinux)
ENDTEXT

LABEL april64-7.0.3.is via memdisk
KERNEL memdisk
INITRD boot/april64-7.0.3.iso
APPEND iso
TEXT HELP
    Run april64 from ISO file
    via memdisk (part of
    syslinux)
ENDTEXT



LABEL xfceRava.ISO
MENU LABEL Text mode XFCe, RavaStyle
KERNEL vmlinuz
APPEND from=/boot/Porteus-3.1.1_XFCe.iso initrd=initrd.xz sgnfile=porteus-v3.1-x86_64.sgn ramsize=45% zram=20% timezone=Europe/Berlin volume=75% kmap=de
TEXT HELP
    Run Porteus the Rava way:
    from local ISO file
ENDTEXT

LABEL Slax.ISO
MENU LABEL Slax, RavaStyle
KERNEL /slax/boot/vmlinuz
APPEND from=/boot/slax-German-7.0.8-x86_64.iso vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 slax.flags=perch,xmode timezone=Europe/Berlin
TEXT HELP
    Run FatDog the Rava way:
    from local ISO file
ENDTEXT
HTH! :D

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 19:43
by francois
Hello rara. I think that you should put initrd= first in the APPEND line. I imagine that /boot and /porteus folders and their contents are in /Porteus3.1 at the root partition.

So try:

Code: Select all

APPEND initrd=/initrd.xz from=/Porteus3.1/ etc

Code: Select all

LABEL p31b
MENU LABEL Porteus 3.1 KDE
KERNEL /Porteus3.1/vmlinuz
APPEND initrd=/initrd.xz from=/Porteus3.1/ copy2ram rammod=001;002;003;firefox noswap nomagic norootcopy volume=100%

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 19:48
by rara
TFS Rava. Though I have got all 3 versions of Porteus up and running already I will be testing more. It never harms more to learn if you have the time. :D

I will specifically test the Memory disk method with some other lightweight distros such as TCL, DSL and such.

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 19:54
by rara
francois wrote:Hello rara. I think that you should put initrd= first in the APPEND line. I imagine that porteus folder and its contents is in /Porteus3.1 at the root partition.
Thanks francois, I have already got everything working. I will be sharing what worked for me soon.

Oh btw, I had tried various order of cheatcodes including what you have suggested. Made no difference. And my current cheatcode that is working also has from cheatcode from ahead of initrd, so this is a non-issue.

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 20:56
by Ed_P
rara wrote:Oh btw, I had tried various order of cheatcodes including what you have suggested. Made no difference. And my current cheatcode that is working also has from cheatcode from ahead of initrd, so this is a non-issue.
It's not a question of cheatcode sequence its a question of INITRD being on the APPEND line rather than on a line by itself as was shown previously..

Like so:

Code: Select all

LABEL razor
MENU LABEL Graphics mode (Razor)
KERNEL vmlinuz
APPEND initrd=initrd.xz changes=EXIT:UUID:F789-E55C/porteussave.dat extramod=UUID:F789-E55C/Modules
TEXT HELP
    Run Porteus the best way we can.
    Try to autoconfigure graphics
    card and use the maximum
    allowed resolution. Changes are saved.
ENDTEXT

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 22:25
by rara
Ed_P wrote:
rara wrote:Oh btw, I had tried various order of cheatcodes including what you have suggested. Made no difference. And my current cheatcode that is working also has from cheatcode from ahead of initrd, so this is a non-issue.
It's not a question of cheatcode sequence its a question of INITRD being on the APPEND line rather than on a line by itself as was shown previously..
Thanks, Ed_P, for coming out to help.

What you say makes sense. Is that how it is 'supposed' to work? Is there any documentation regarding this that I can read to enhance my knowledge?

As I mentioned before, I had already tried playing with the order of the cheatcodes and it had made no difference during my testing. But encouraged by this new idea of having INITRD on a separate line of its own, I created some test cases and executed them. Here are my test cases and the test results.

Code: Select all

LABEL p12a
MENU LABEL Porteus 1.2 XFCE
KERNEL /Porteus1.2/vmlinuz
INITRD /Porteus1.2/initrd.xz 
APPEND from_dir=/Porteus1.2/ changes=/Porteus1.2/ copy2ram nocd noswap nomagic norootcopy volume=100%

LABEL p12b
MENU LABEL Porteus 1.2 XFCE
KERNEL /Porteus1.2/vmlinuz
APPEND initrd=/Porteus1.2/initrd.xz from_dir=/Porteus1.2/ changes=/Porteus1.2/ copy2ram nocd noswap nomagic norootcopy volume=100%

LABEL p12c
MENU LABEL Porteus 1.2 XFCE
KERNEL /Porteus1.2/vmlinuz
APPEND from_dir=/Porteus1.2/ initrd=/Porteus1.2/initrd.xz changes=/Porteus1.2/ copy2ram nocd noswap nomagic norootcopy volume=100%

LABEL p21a
MENU LABEL Porteus 2.1 XFCE
KERNEL /Porteus2.1/boot/vmlinuz
APPEND initrd=/Porteus2.1/boot/initrd.xz from=/Porteus2.1/ changes=/Porteus2.1/ copy2ram nocd noswap nomagic norootcopy volume=100%

LABEL p21b
MENU LABEL Porteus 2.1 XFCE
KERNEL /Porteus2.1/boot/vmlinuz
APPEND from=/Porteus2.1/ initrd=/Porteus2.1/boot/initrd.xz changes=/Porteus2.1/ copy2ram nocd noswap nomagic norootcopy volume=100%

LABEL p31
MENU LABEL Porteus 3.1 KDE
KERNEL /Porteus3.1/boot/vmlinuz
APPEND from=/Porteus3.1/ initrd=/Porteus3.1/boot/initrd.xz changes=/Porteus3.1/ copy2ram nocd noswap nomagic norootcopy volume=100%

LABEL p31b
MENU LABEL Porteus 3.1 KDE
KERNEL /Porteus3.1/vmlinuz
APPEND initrd=/Porteus3.1/initrd.xz from=/Porteus3.1/

LABEL p31c
MENU LABEL Porteus 3.1 KDE
KERNEL /Porteus3.1/vmlinuz
INITRD /Porteus3.1/initrd.xz
APPEND from=/Porteus3.1/
In the above test cases, I have tried booting Porteus 1.2, 2.1 and 3.1 with various order of cheatcodes. Version 1.2 and 2.1 booted successfully with all 5 test cases. Version 3.1 didn't boot with any of three test case (for the testing purpose I have undone my fix on 3.1 installation temporarily).

So, I tried booting all the above one by one, examining the actual boot parameter that bootloader will pass to the OS before booting (by hitting <TAB>), and actual parameter received by the OS (by examining the contents of /proc/cmdline).

Here are my test results:

(1) Order of the cheatcodes matters.
(2) Bootloader passes them in the same order they exist in the menu configuration line. (It may be worth noting here that I used Syslinus for all my testing. If it works differently for another bootloader it could be a different story).
(3) If INITRD is passed on a line of its own, it is passed as the last cheatcode item.
(4) Post boot, the OS reports BOOT_IMAGE as the last boot parameter, and INITRD as the second last; regardless of the order they were passed by the bootloader.
(5) Order of the cheatcodes *actually* doesn't matter beyond cosmetics. The OS doesn't seem to use them in the same sequence they are passed.


Can someone please replicate this on their machine and validate my findings running the test cases?

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 23:09
by Bogomips
rara wrote:What you say makes sense. Is that how it is 'supposed' to work? Is there any documentation regarding this that I can read to enhance my knowledge?

As I mentioned before, I had already tried playing with the order of the cheatcodes and it had made no difference during my testing. But encouraged by this new idea of having INITRD on a separate line of its own,
Don't know about Syslinux, but all I know as far as Grub Legacy is concerned, is that kernel and initrd are menu entry commands. And that somewhere along the way (Grub 2?) append has been added, as a continuation of the kernel command line, i.e. continuing the list of kernel boot parameters. If you like you may also refer to the tutorial [HOWTO] Grub 1 Porteus (3.1)

Re: Multiple versions of Porteus

Posted: 07 Sep 2015, 23:31
by Ed_P
FWIW Rava I boot multiple systems using a functional and maintained boot loader called Grub4DOS. It is very functional. This is my menu.lst which you may, or may not, find useful.

Code: Select all

# http://sourceforge.net/projects/grub4dos/
# Grub4DOS 0.4.5c 2013-03-03   http://code.google.com/p/grub4dos-chenall/downloads/list

# global options
#
# Use StartLinux to test screen displays under Windows.
# Use GRUB4DOS/SplashImages to create new splash images.
# http://diddy.boot-land.net/grub4dos/files/splash.htm
graphicsmode=0x115
#
#splashimage=/grub/splash/porteus.xpm.gz 
# ****ground rrggbb   000000=black  ffffff=white  8-f = bright
#foreground ffffff
#background 000099

#splashimage=/grub/splash/porteus.png
splashimage=/grub/splash/porteus.bmp
#splashimage=/grub/splash/porteus30.bmp
#splashimage=/grub/splash/porteus31.bmp 
color white/blue black/light-gray white/blue yellow/blue

# If NO splashimage use these commands
# color <foreground/background> [hilite-fg/hilite-bg [help text [heading]]]
# colors:                black       blue       green       cyan       red       magenta   brown    light-gray
#   foreground only: dark-gray light-blue light-green light-cyan light-red light-magenta   yellow   white
# color white/blue black/light-gray white/blue yellow/blue
# color blue/light-grey  white/light-gray yellow
# color white/green white/blue

# http://www.rmprepusb.com/tutorials/grub4dos#TOC-Single-Stepping
# To step thru msgs prior to menu quickly press the Insert key when booting

timeout 300
default 1
fallback 6

map --unhook

set ISO31=Porteus-LXQT-v3.1-x86_64-nu.iso
set ISO31=UP.Porteus-LXQT-v3.1-x86_64.iso
set ISO30i=Porteus-RazorQT-v3.0.1-i486-nu.iso
set ISO30=Porteus-RazorQT-v3.0.1-x86_64-nu.iso
set ISO21=Porteus-RazorQT-v2.1-x86_64.iso

# menu entries

title Porteus 3.0.1 changes=EXIT  \n213MB\n %ISO30% 
find --set-root                       /ISOs/%ISO30%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO30% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO30% changes=EXIT:/porteus3.0/changes/porteussave.dat extramod=/porteus3.0/Modules volume=40 reboot=cold ramsize=80%
#initrd (hd0,4)/porteus3.0/testing/initrdx.xz
initrd /boot/syslinux/initrd.xz

title Porteus 3.0.1 extramod=     \n213MB\n %ISO30% 
find --set-root                       /ISOs/%ISO30%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO30% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO30% extramod=/porteus3.0/Modules;/porteus3.0/modsavedat volume=33 reboot=cold
initrd /boot/syslinux/initrd.xz

title Porteus 3.0.1 extramod= MATE\n213MB\n %ISO30% 
find --set-root                       /ISOs/%ISO30%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO30% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO30% extramod=/porteus3.0/Optional;/porteus3.0/Modules;/porteus3.0/modsavedat volume=33 noload=kde;lxde;razor;xfce load=mate
initrd /boot/syslinux/initrd.xz

title Porteus 3.0.1 extramod= XFCE\n213MB\n %ISO30% 
find --set-root                       /ISOs/%ISO30%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO30% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO30% extramod=/porteus3.0/Optional;/porteus3.0/Modules;/porteus3.0/modsavedat volume=33 noload=kde;lxde;razor;mate load=xfce
initrd /boot/syslinux/initrd.xz

title Porteus 3.0.1 Always Fresh +\n213MB\n %ISO30% with networks\n Use to debug and to check space usage of porteus.dat file.
find --set-root                       /ISOs/%ISO30%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO30% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO30% extramod=/porteus3.0/modnetwork
initrd /boot/syslinux/initrd.xz

title   \n
root ()

title Porteus 3.0.1 Menu          \n\n Porteus Boot menu options
# jaclaz http://www.911cd.net/forums//index.php?s=&showtopic=24927&view=findpost&p=171635
find --set-root /ISOs/Porteus-RazorQT-v3.0.lst
configfile      /ISOs/Porteus-RazorQT-v3.0.lst

title   \n
root ()

title Porteus 3.0.1 AF + i486     \n219MB\n %ISO30i% with networks\n Use to debug and to check space usage of porteus.dat file.
find --set-root                       /ISOs/%ISO30i%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO30i% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO30i% extramod=/porteus/modnetwork
initrd /boot/syslinux/initrd.xz

title   \n
root ()

title Porteus 3.1   changes=EXIT  \n186MB\n %ISO31%  
find --set-root                       /ISOs/%ISO31%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO31% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO31% changes=EXIT:/porteus3.1/changes/porteussave.dat extramod=/porteus3.1/Modules volume=40 ramsize=80%  
initrd /boot/syslinux/initrd.xz

title Porteus 3.1   changes=      \n186MB\n %ISO31%  
find --set-root                       /ISOs/%ISO31%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO31% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO31% changes=/porteus3.1/changes/porteussave.dat extramod=/porteus3.1/Modules volume=40 ramsize=80%  
initrd /boot/syslinux/initrd.xz

title Porteus 3.1   Always Fresh  \n186MB\n %ISO31% 
find --set-root                       /ISOs/%ISO31%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO31% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO31% volume=40  
initrd /boot/syslinux/initrd.xz

title Porteus 3.1   Always Fresh +\n186MB\n %ISO31% with networks 
find --set-root                       /ISOs/%ISO31%
map --heads=0 --sectors-per-track=0   /ISOs/%ISO31% (0xff) 
map --hook
root (0xff)
kernel /boot/syslinux/vmlinuz    from=/ISOs/%ISO31% extramod=/porteus3.1/modnetwork volume=40  
initrd /boot/syslinux/initrd.xz

title   \n
root ()

title Porteus 3.1   Menu          \n\n Porteus Boot menu options
# jaclaz http://www.911cd.net/forums//index.php?s=&showtopic=24927&view=findpost&p=171635
find --set-root /ISOs/Porteus-LXQt-v3.1.lst
configfile      /ISOs/Porteus-LXQt-v3.1.lst

title   \n
root ()

title   \n
root ()

title Windows Repair & BartPE menu\n\n Windows 7 System Repair & BartPE
find --set-root /WinRepair.lst
#graphicsmode 0x12
configfile /WinRepair.lst

title   \n
root ()

title Reboot
reboot

title   \n
root ()

title Test \n grub4dos test menu
find --set-root /test.lst
configfile /test.lst
Personally for booting multiple systems I think booting ISOs is the way to go.

Re: Multiple versions of Porteus

Posted: 08 Sep 2015, 04:43
by rara
Bogomips wrote:Don't know about Syslinux, but all I know as far as Grub Legacy is concerned, is that kernel and initrd are menu entry commands. And that somewhere along the way (Grub 2?) append has been added, as a continuation of the kernel command line, i.e. continuing the list of kernel boot parameters. If you like you may also refer to the tutorial [HOWTO] Grub 1 Porteus (3.1)
I do remember using Grub. Its a fully featured bootloader. Somehow these days I always use Syslinux. Thanks for the link, Bogomips.

Ed_P wrote:FWIW Rava I boot multiple systems using a functional and maintained boot loader called Grub4DOS. It is very functional.
Ed, thanks for the Grub config code. I will try to pick what I can to learn about more ways to accomplish this. So far I have only used Syslinux (and I did find a way to make it work). May be it's time to give Grub a chance.

BTW, what I don't understand is - Porteus 1.2 works without fuss. Drop the Porteus files anywhere, point to them using full path and they work. Everything works. Screen brightness is reset to 100% on every boot, except that all changes are persistent. Why not Porteus 2.1 and 3.1? Is the code in the Init script change somewhere after 1.2? Why the different behavior?

Pardon me if the questions are not interconnected. I am just trying to learn.

Re: Multiple versions of Porteus

Posted: 08 Sep 2015, 20:46
by Rava
Ed_P wrote:set ISO31=Porteus-LXQT-v3.1-x86_64-nu.iso
set ISO31=UP.Porteus-LXQT-v3.1-x86_64.iso
Does that make sense? Isn't the 2nd line erasing the contents of the 1st?

Re: Multiple versions of Porteus

Posted: 08 Sep 2015, 21:27
by Ed_P
Rava wrote:Isn't the 2nd line erasing the contents of the 1st?
:D Yup. Doing it this way saved me from putting a # character in front of the 1st line. If I wanted to switch back to the 1st ISO I would need to put a # character in front of the 2nd line. Or, switch the 2 lines. And at some point I could simply delete one of the lines. :)