I am running QNX 6.3.2 on a Boxer computer type AEC-6920. The boot device is a 4 Gbyte partition on an 8 Gbyte CF flash card. I have created a backup on a 4 Gbyte USB stick, and I try to make it bootable. The USB stick popped up as /fs/hd10-dos-1 and as /dev/hd10t12. After umounting those, I did:
I found a zero length .boot file in the root of the stick so I tried
dinit -f /x86/boot/sys/ipl-diskpc2 /dev/hd10t79
but found that dinit reported /x86/boot/sys/ipl-diskpc2-flop for the loader.
I swapped boot priority in the BIOS but no success in booting. Swapping back again, I did boot fron the CF card but after some time I could select to mount either the CF or the USB stick as root. I mounted the USB stick as root and the system continued to boot and works fine, but slower.
Now I compared the sizes of the .boot files in the root of both devices, the
stick .boot was 472 bytes and the CF .boot (that worked) was 1214560 bytes!
I copied the CF .boot (and the .altboot) to the stick and tried again. It
stopped at the BIOS message “Hit Esc for .altboot”, which was partially
overwritten by characters and then nothing happened.
Where can I find a suitable .boot file? The stick is reported as vendor
0x090c (SMI Corporation), product 0x1000, (Mem-drive easyII) by the usb
utility.
The .boot file from the CF card likely is only starting the devb-eide driver (an IDE driver, not a USB driver) used for the CF card. You need an ifs file that is starting the usb driver in order to mount the usb stick at boot time.
You’ll probably also need to copy all the system files to the usb drive as well unless you put every file you need in the boot image.
Here is a sample build file that I used for USB stick, you will have to have the required system files or other script files in the USB stick since the .boot file can’t be more then X MB big. I forget exactly how big X is, maybe about 2Mb
[virtual=x86,bios +compress] boot = {
startup-bios
# PATH is the safe path for executables (confstr(_CS_PATH…))
# LD_LIBRARY_PATH is the safe path for libraries (confstr(_CS_LIBPATH))
# i.e. This is the path searched for libs in setuid/setgid executables.
PATH=/proc/boot:/q/bin:/bin:/usr/bin:/sbin LD_LIBRARY_PATH=/proc/boot:/q/bin/lib:/lib:/usr/lib:/lib/dll procnto
}