OS2 World Community Forum
OS/2, eCS & ArcaOS - Technical => Setup & Installation => Topic started by: karotlopj on May 29, 2016, 11:01:07 pm
-
I have finally managed to get PXE boot working to load QSINIT, not sure how, a lot of trial and a great deal of error, but I am now at a point where I get something like this on the screen... (See attached image). I don't get any of the options shown at the bottom, such as boot, shell or apps...
Except mine includes the menu in OS2LDR.INI
[kernel]
; os2ldr.ibm (os2ldr from IBM) and launch it
os2ldr.old = IBM OS2LDR ,Restart
os2krnl = 104b_SMP
os2krnl.dbg = 104a_SMP dbg
os4krnl = CurrentD ,LOGSIZE=128,PRELOAD,LOADSYM
os4krnl = use config.os4,LOGSIZE=128,PRELOAD,CFGEXT=os4
os4krnl = CurrentD 2048 ,LOGSIZE=128,PRELOAD,LOADSYM,VALIMIT=2048
os4krnlr = CurrentR ,LOGSIZE=128,PRELOAD
k3925 = 3925 ,LOGSIZE=128,PRELOAD
k2247 = 2247 ,LOGSIZE=128,PRELOAD
os4krnl = Show driver names,ALTF2
But nothing works!
How do I get to boot from QSINIT.LDI?
-
Did you read ramdisk\paedisk.txt in QSINIT archive?
You need to create ram disk if you using PXEOS4, the way to do it - described in this file.
-
Did you read ramdisk\paedisk.txt in QSINIT archive?
You need to create ram disk if you using PXEOS4, the way to do it - described in this file.
I have just read it and don't understand what to do....
8. The same process can be used for PXE boot (with PXEOS4).
Just put QSSETUP.CMD and FATOS2.ZIP to TFTP dir for this PC.
But where do I find QSSETUP.CMD?
6. Create QSSETUP.CMD (example contents) in this root:
rem create FAT ramdisk with max 1900Mb and guaranteed 100Mb size
rem and Q: LVM drive letter
RAMDISK Q: min=100 max=1900
rem ramdisk mounted to first available QSINIT drive letter, this will
rem be C:, so unzip ZIP to drive C:
echo unzipping...
unzip /q /boot FATOS2.ZIP c:\
rem launch OS2KRNL from the root of RAM disk
bootos2 os2krnl source=c
Am I supposed to find a \BOOT directory or do I need to create one within qsinit.ldi
I'm very confused by all this...
-
/boot - is a key, not directory. It means loading from boot device via OS/2 micro-FSD mechanism. This is tftp in PXE case.
Try unzip /? in QSINIT shell.
QSSETUP.CMD - is something like AUTOEXEC.BAT and it is optional. Just create a new one.
-
/boot - is a key, not directory. It means loading from boot device via OS/2 micro-FSD mechanism. This is tftp in PXE case.
Try unzip /? in QSINIT shell.
QSSETUP.CMD - is something like AUTOEXEC.BAT and it is optional. Just create a new one.
I am still not clear what you mean....
In TFTPROOT I have a directory of pxeos4.cfg which contains a file corresponding to the MAC address of the NIC which contains:-
# sample config for pxeos4
#tftp-packet-size=1410 # TFTP data packet size
device-id=128 # first HDD
device-part=2 # 0 - non partitioned, 1-4 - primary, 5+ - extended
drive=C # boot drive letter
# TFTP dir for files requested by os4ldr. Also file names in this config are
# relative to this dir if these names are not started from /
system-root=os4
# initial files to be loaded by microFSD
os4ldr=OS2LDR.OS4
os4boot=hpfsmini.fsd
In TFTPROOT I have:-
\os4\OS2LDR.OS4
\os4\QSSETUP.CMD
\os4\OS2LDR.INI
\os4\hpfsmini.fsd
\os4\QSINIT.LDI
I have no idea what to put in QSSETUP.CMD, so I have just put this in:-
echo hello
dir
pause
When I booting I just get as as far as the screen in Post 1.
I don't know what the QSINIT shell is... I don't see any prompt where I can enter any commands
-
I am still not clear what you mean....
I think you are expecting something after you boot OS/2. QSINIT does it's work in place of OS2LDR. When you see the menu (as posted a few posts back), that has the option to drop to the QSINIT shell (F3 will drop you to the QSINIT command line - it is an OS in itself). QSINIT can use some files from the root of the boot drive, as documented. I suggest that you start with a less complicated setup, and get that working, then add whatever else you want.
-
I am still not clear what you mean....
I think you are expecting something after you boot OS/2. QSINIT does it's work in place of OS2LDR. When you see the menu (as posted a few posts back), that has the option to drop to the QSINIT shell (F3 will drop you to the QSINIT command line - it is an OS in itself). QSINIT can use some files from the root of the boot drive, as documented. I suggest that you start with a less complicated setup, and get that working, then add whatever else you want.
I don't get any options such as shell or apps, just a menu displayed in my first message. I have no idea what should loadd QSSETUP or what should go in it. I don't see how I can get a less complicated setup. I know some part of QSINIT is working because I see the menu, but have no idea how to create a ramdisk to boot from. I have read the docs many times but it is unclear what I'm missing. To install QSINIT, only these three steps are required.
* rename original IBM OS2LDR to OS2LDR.OLD (for example). You can add it into
loader menu as one of options (with RESTART key).
* put OS2LDR and QSINIT.LDI to the root of boot drive.
* create OS2LDR.INI text file, for example:
That sounds pretty straightforward and even simple enough for me to follow, but there must be something else....
-
If you look to the bottom of menu screen - you can see the hint line about available keys, where "[F3] - shell" is present ;) I.e. F3 in menu goes to shell. "Exit" in shell will return you to menu.
And about qssetup.cmd. Is your tftp server hosted on unix? Just try to lower case file name (i.e. qssetup.cmd, not QSSETUP.CMD).
-
If you look to the bottom of menu screen - you can see the hint line about available keys, where "[F3] - shell" is present ;) I.e. F3 in menu goes to shell. "Exit" in shell will return you to menu.
And about qssetup.cmd. Is your tftp server hosted on unix? Just try to lower case file name (i.e. qssetup.cmd, not QSSETUP.CMD).
As i said in my original msg - I don't get any of the options shown at the bottom, such as boot, shell or apps... so there is no [F3]...
My tftp server is on FreeNAS and I did notice that case seemed to be significant when loading OS2LDR.OS4 which would only load when the filename was in uppercase. But I think there is some vital step missing as far as QSSETUP goes...
-
Oops, you are using OS/4 loader instead of QSINIT. Menu looks the same, except bottom part :)
I.e. you put wrong OS2LDR file - from OS/4 distribution.
-
Many thanks for pointing this out, I do get the options now, and it's nice to be able bypass Boot Manager if I have lost access to a disk....
Now I'll start finding out what can be done with QSINIT, but I haven't worked out if I can fully boot up OS/2 from a ramdisk.
Does QSINIT use these parameters from PXEOS4's default.cfg?
#device-id=128 # first HDD
#device-part=2 # 0 - non partitioned, 1-4 - primary, 5+ - extended
drive=P # boot drive letter
-
No, this is PXEOS4's own ability to simulate boot from hard disk.
It provides OS/2 loader and kernel from tftp and then changes boot type to HPFS from selected partition.
Initially, it was developed for easy kernel swapping during tests, but suitable for using PXE as source in other custom ways.
-
What I can't work out is whether QSINIT can load OS2KRNL and boot OS/2 from a ramdisk....
Can you give me an example of a QSSETUP.CMD which does something, anything at all...
I have created one containg the following:-
echo hello
dir
pause
RAMDISK Q:
and placed it in the same directory as QSINIT.LDI expecting it to run automatically but see no output. How do I get it to run?
-
What I can't work out is whether QSINIT can load OS2KRNL and boot OS/2 from a ramdisk....
Yes, it can. READ the instructions in the documentation.
You DO need to use a FAT16 RAMDISK, and your ZIPed system needs to have all 8.3 file names. QSINIT unzips the ZIPed system into the RAMDISK, then it can boot from it. FAT16 is necessary because QSINIT cannot unzip into a HPFS RAMDISK, and OS/2 cannot operate a FAT32 RAMDISK before it loads the FAT32 driver.
Can you give me an example of a QSSETUP.CMD which does something, anything at all...
Mine has this:
RAMDISK min=1536 max=2047 R:
log save c:\log.txt
It creates a RAMDISK with minimum size of 1536 meg, and a maximum size of 2047 meg, then assigns LVM drive address R:. Then, it copies the QSINIT log file to what QSINIT sees as the C: drive, which is seen by OS/2, after BASEDEV=hd4disk.add loads, as the R: drive.
and placed it in the same directory as QSINIT.LDI expecting it to run automatically but see no output. How do I get it to run?
You are still missing the concept that QSINIT is an OS (similar to DOS). It runs when you boot, and shows you the menu options. I am not sure if the menu shows before QSSETUP.CMD is run, or after, but it is all done by the time it starts to load OS2KRNL. You should be able to see it if you use F3, when the menu is showing, and drop to a command line in QSINIT. I doubt if "pause" is a good thing to do (hopefully, it does nothing). I also doubt if "echo" does anything useful. Remember that QSSETUP.CMD is an "AUTOEXEC.BAT" for the QSINIT OS, and the QSINIT OS is all done by the time OS2KRNL loads.
-
"Pause" will, actually, makes pause.
So, your cmd file should print directory, yes.
This means file in wrong place (or, still, name case troubles on linux server? I'm using OS/2 hosted tftp). May be I need to add check for QSSETUP.CMD in pxe case, not only for "qssetup.cmd" ;)
-
Just to be clear what to expect.... These are the files I have in pxeroot:-
OS2KRNL @#IBM:14.106#@_SMP IBM OS/2 Kernel
hpfsmini.fsd
OS2LDR.INI
qssetup.cmd
QSINIT.LDI
OS2LDR @#QS:0.17.0380#@ QSinit loader
OS2LDR.INI
[config]
default=1
timeout=15
[kernel]
os2krnl=Default boot
os2krnl=Show driver names, ALTF2
OS2LDR.OLD=Original boot, RESTART
qssetup.cmd
echo hello
dir
pause
RAMDISK Q:
What should I expect to see when I press [enter] - 1. Default boot to see if qssetup.cmd has done anything?
-
I changed qssetup.cmd to uppercase and it works now....
Now, how do I boot OS/2 from this environment? I have a zipped up minimal OS/2 partition.
What do I call it and where should it go?
-
I changed qssetup.cmd to uppercase and it works now....
Now, how do I boot OS/2 from this environment? I have a zipped up minimal OS/2 partition.
What do I call it and where should it go?
Read the last section of PAEDISK.TXT. It is a little more complicated than what you need, but it tells you exactly what to do.
-
Read the last section of PAEDISK.TXT.
This is a good advice, I think ;)
Actually, you need something like this:
RAMDISK Q: min=100 max=1900
echo unzipping...
unzip /q /boot FATOS2.ZIP c:\
"min" parameter should be larger, than your unzipped data size (i.e. it guarantee such disk size, even if no memory above 4Gb for it).
Unzip command here will download and unzip archive to ramdisk. Since this point you can modify disk data in QSINIT (for ex., edit config.sys in QSINIT`s text editor).
additional line into OS2LDR.INI
[config]
source=c
and additional line into CONFIG.SYS in zip, it must be ABOVE all storage drivers (danis, ahci, scsi) - to get priority in drive letter assignment (in case of conflicts).
BASEDEV=HD4DISK.ADD
Put your FATOS2.ZIP to tftp and try.
-
Will the RAM disk work with less then 4GBs of ram installed?
-
Yes, "min" parameter is, practically, memory size, which cut off from memory below 4Gb - to create disk with guaranteed size.
And "max" - will cut usage memory above 4gb (to stay in FAT 2Gb limit).
Ramdisk can be compounded from both memory types, actually - if you ask min=1000 on 4Gb PC, where only 700mb is mapped above 4Gb limit.
-
Read the last section of PAEDISK.TXT.
This is a good advice, I think ;)
Actually, you need something like this:
RAMDISK Q: min=100 max=1900
echo unzipping...
unzip /q /boot FATOS2.ZIP c:\
"min" parameter should be larger, than your unzipped data size (i.e. it guarantee such disk size, even if no memory above 4Gb for it).
Unzip command here will download and unzip archive to ramdisk. Since this point you can modify disk data in QSINIT (for ex., edit config.sys in QSINIT`s text editor).
additional line into OS2LDR.INI
[config]
source=c
and additional line into CONFIG.SYS in zip, it must be ABOVE all storage drivers (danis, ahci, scsi) - to get priority in drive letter assignment (in case of conflicts).
BASEDEV=HD4DISK.ADD
Put your FATOS2.ZIP to tftp and try.
Thanks. I have it working now. At least it boots up to a command prompt.
It's amazing to see it working.
I'll have to see if I can perform an installation using this method.
-
Thanks. I have it working now. At least it boots up to a command prompt.
It's amazing to see it working.
I'll have to see if I can perform an installation using this method.
Could you list the steps, I would like to put together an article on my site ?
Greggory
-
Thanks. I have it working now. At least it boots up to a command prompt.
It's amazing to see it working.
I'll have to see if I can perform an installation using this method.
Could you list the steps, I would like to put together an article on my site ?
Greggory
To be quite honest, the hardest part is getting the DHCP/PXE server environment setup especially when you don't really know how it all works and what to do when it doesn't work. A great deal of trial and even more error was involved before I got it working.
As for the capabilities of PXE booting Qsinit and installing OS/2 from scratch, that is something I will be exploring in the coming days and weeks. I've only just got it working and am finding my way around. I wouldn't have been able to do it without help from the good folks on this forum.
-
I've been booting using PXE/QSINIT for about a week now and find it to be a really useful way of access the local hard disk without booting from it. I do have occasional problems though...
Is a local hard disk necessary to be able to boot? I thought that the ramdisk created would be sufficient.
Also what are the requirements for the local hard disk? If it is a brand new disk, unpartitioned and unformatted will QSINIT boot?
Just now, I've found that booting has stopped with...
Invaild primary partition type 00h
Fatal error: failed to read boot block
Press any keyto finish NBP
I am able to boot from the local hard disk so am somewhat confused by this message.
-
This is PXEOS4 own handling, just comment it out with #, this should force it to ignore hard disk:
#device-id=128 # first HDD
#device-part=0 # 0 - non partitioned, 1-4 - primary, 5+ - extended
#drive=K # boot drive letter
And make sure you are using the latest PXEOS4 version (08.2013, probably) - in earlier versions disk was demanded in any way.
-
This is PXEOS4 own handling, just comment it out with #, this should force it to ignore hard disk:
#device-id=128 # first HDD
#device-part=0 # 0 - non partitioned, 1-4 - primary, 5+ - extended
#drive=K # boot drive letter
And make sure you are using the latest PXEOS4 version (08.2013, probably) - in earlier versions disk was demanded in any way.
What should I have in QSSETUP.CMD and OS2LDR.INI if I have no disk mounted?
Incidentally my PXE bootfile is gpxelinux.0 from SYSLINUX. That gives me the option of creating a nice boot menu where I can include numerous other progams such SystemRescue, PMagic, Clonezilla or boot a live Linux system among many other things.
-
Nothing special - QSINIT does not depend on disk presence.
At least itself, it requires a source to boot OS/2, of course - ramdisk or real disk.
-
Just to let anyone know who is interested, I have now developed a minimal FATOS2.ZIP containing:-
\chkdsk.sys
\config.sys
\country.sys
\delivery.sys
\DLL
\dos.sys
\hd4disk.add
\isapnp.snp
\kbdbase.sys
\KEYBOARD.DCP
\mouse.sys
\OS2
\pmdd.sys
\pnp.sys
\pointdd.sys
\reserve.sys
\resource.sys
\testcfg.sys
\viotbl.dcp
\DLL\ansicall.dll
\DLL\bkscalls.dll
\DLL\bmscalls.dll
\DLL\bvhinit.dll
\DLL\bvhvga.dll
\DLL\bvscalls.dll
\DLL\chkdsk32.dll
\DLL\DOSCALL1.DLL
\DLL\kbdcalls.dll
\DLL\lvm.dll
\DLL\moucalls.dll
\DLL\msg.dll
\DLL\nampipes.dll
\DLL\nls.dll
\DLL\npxemltr.dll
\DLL\os2char.dll
\DLL\quecalls.dll
\DLL\sesmgr.dll
\DLL\uhpfs.dll
\DLL\ujfs.dll
\DLL\viocalls.dll
\OS2\BOOT
\OS2\CHKDSK.COM
\OS2\CHKDSK32.EXE
\OS2\cmd.exe
\OS2\harderr.exe
\OS2\BOOT\altf2on.$$$
\OS2\BOOT\clock01.sys
\OS2\BOOT\danis506.add
\OS2\BOOT\ibmkbd.sys
\OS2\BOOT\os2dasd.dmd
\OS2\BOOT\os2lvm.dmd
\OS2\BOOT\screen01.sys
Some of these files may well be redundant. Let me know if you think anything can be removed.
where CONFIG.SYS contains:-
BASEDEV=HD4DISK.ADD
basedev=ibmkbd.sys
basedev=danis506.add /v
basedev=os2dasd.dmd
basedev=os2lvm.dmd
buffers=32
iopl=yes
memman=noswap, protect
protshell=\os2\cmd.exe
set os2_shell=\os2\cmd.exe
protectonly=yes
libpath=.;\;\DLL;
set path=\;\os2
pauseonerror=no
COUNTRY=044,\COUNTRY.SYS
CODEPAGE=850,437
DEVINFO=KBD,UK166,\KEYBOARD.DCP
DEVINFO=SCR,VGA,\VIOTBL.DCP
set dpath=.;\OS2;\;
set keys=on
This boots up on an old Thinkpad T42 in around 9 secs. This only boots up to command prompt so isn't all that useful, but provides o good base on which to build.