QNX4 Copy old CF to a new CF model

Thanks for the screen shots. It appears the raw copy went fine in terms of FDisk identifying the partitions and the boot partition (I have no idea if the data is correct but I suspect it is if you did a raw copy).

I notice your new drive is 1 terabyte in size. How old is your original machine? Some older machines could not handle drives that large. Perhaps that’s the problem? Do you have another newer machine to try in just in case (unless you have the motherboard specs for your old machine and can confirm it can handle drives that large)

Tim

Hi all,

@maschoen I can confirm there is no way to set the geometry. It’s a PC/104 embedded CPU with custom optimized BIOS.

@Tim the new drive is 1GB not 1TB. But I also try with a 128MB and 512MB CF.

I was thinking maybe I have to install directly QNX4 from the machine. I have a boot install floppy disk of QNX4. I tried to connect an old floppy reader and boot from it from the embedded machine. Even like this it doesn’t detect the CF… :

I don’t have more ideas. I can rework my build file but it doesn’t seem to be the root cause :frowning:

I see what the others have to say. But just because and old floppy install doesn’t work, may not mean anything if that version of QNX4 is older than the one you have on the CF.

What is curious is that it doesn’t even see an EDIE controller at all. It’s not missing the CF, it’s missing the entire controller. And this is the machine your original CF boots on? (if so, you are using a much newer version of QNX 4 on the CF than on the floppy).

What does the BIOS of that machine show (screen shot) when the CF is installed.

Tim

Hi there,

I finally found a solution to boot from the new CF (1GB) by using a VM and an image of QNX425 installation CD. The idea is to use the boot loader of this installer :

  1. Create a VM and boot from CD image of QNX4.25 Patch G/Update 2011 with USB-Stack
  2. When QNX installer starts press key to set “USB stack” to launch option then press space key
  3. At QNX installer startup page connect the USB CF adapter to the VM
  4. QNX installer doesn’t detects USB mass by default. Press F5 to add USB mass drive
  5. Create bootable QNX partition on the CF and continue installation until the end
  6. Installation of QNX is not necessary you can press F3 to finish installation. Stop the VM.
  7. Start QNX4 VM, connect USB CF adapter to the VM, mount CF partition.
  8. Copy/replace only (no .inodes and .bitmap) .boot file from old CF to the new CF.
  9. Insert new CF to the machine. It should be able to boot QNX system.

@Tim yes I think QNX on the floppy is much older than the QNX I have on CD.

Anyway thank a lot everyone for your time and your help.

Ade

I’m not sure what you do with your QNX 4 system, however I thought I’d give myself a plug. As recently as two years ago I helped a customer convert a QNX 4 system so it would run on a VM. The original system ran with a dot matrix printer which was not available. I built them a spooler with a filter program that converted the dot matrix output into PCL for their laser printer. The point being, I’m a constractor and still am willing to program with QNX 4 if needed.

In other words, I’m a dinosaur.

Hi all,

I’ve continued to go deeper concerning this issue and I found an easier solution thanks to this thread :
https://forums.openqnx.com/t/topic/25298/2

As you understand the root cause is fdisk doesn’t have or doesn’t write correctly the QNX Bootloader and the secondary loader according to the partition table. The work around is to use other loader and as described in the previous thread it’s possible to download them in the contributed software library of QNX4 under /usr/free/qnx4/os/utils/disk/quietloaders.tgz.
For those interested in these files I’ve found the following link :
https://fsck.technology/software/QNX/QNX%204/QNX4/Soft/Free/os/utils/disk/

In conclusion if you need to clone a CF from USB adapter and QNX4.25 VM :

  1. Start USB stack with : # io-usb
  2. Start filesystem with : # Fsys.umass fsys -Nusb -nusb0
  3. Load primary loader (QNX bootloader) : # fdisk -B loader1.bin /dev/usb0 loader
  4. Create a bootable QNX Partition : # fdisk /dev/usb0 add -t77 -p20 boot
  5. Enumerate partitions : # mount -p /dev/usb0
  6. Load secondary loader : # dinit -h -B loader2.bin /dev/usb0t77
  7. Mount qnx partition : # mount /dev/usb0t77 /mnt/part77
  8. Copy your bootimage file : # cp /boot/images/mybootimage.1 /mnt/part77/.boot
  9. Umount everything and plug CF to the machine to test the boot
  10. Plug again to the VM, mount partitions and copy your backup files.

By the way, I’ve noticed also it’s not working for all CF models. I’ve tried this method with another CF and it’s not working at all.

Ade