Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


pathwayus69

Windows 98 Hard drive Cloning

Recommended Posts

So I picked up a Compaq Presario 1200 laptop. It has the original os install on it, but the hard drive sounds like its on it's last leg so want to make a clone of it. I picked up a pata to usb adapter so far I have tired Easeus partition master 13.0 and Gparted in linux. Copy partitions over to the new drive then install it into the Presario and all i get is "no operation system found. The drive show up in the bios and if use the boot disk form windows 98 boot disk and run dir for both partitions it  show all the files. I have also tried "Fdisk/ MBR" to replace the Master boot record but still no luck.

Share this post


Link to post
Share on other sites

If the files can be seen by dir and you already fid a fdisk /MBR the only remaining thing is making sure that:

1) the partition is Primary and Active
2) the bootsector of the partition conatins valid code
3) the IO.SYS and other system files are actually there

 

What I would do:

1) make a dos/Windows 98 boot disk with  a copy of grub.exe (the grub4dos DOS executable) or make a grub4dos boot floppy (or USB stick/CD/whatever)
2) run grub4dos
3) attempt to boot the Windows 98 system on the disk by directly chainloading the system file

This more otr less equates (on the grub4dos command line) to find how the disk is seen in the BIOS (it will be either (hd0) or (hd1)) and which is the partition where the DOS/Win98 is (normally first partition, i.e. either (hd0,0) or (hd0,1).

So:

geometry (hd0)
geometry (hd1)

if the disk is seen as (hd0)
root (hd0,0)
ls <- this should show the contents of the partition, like DIR
chainloader /io.sys
boot

 

if the disk is seen as (hd1):

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (hd0,0)
ls <- this should show the contents of the partition, like DIR
chainloader /io.sys
boot

You can use *almost any* grub4dos version, but I would suggest a 0.4.5c version, like:

http://grub4dos.chenall.net/downloads/grub4dos-0.4.5c-2016-01-18/

http://dl.grub4dos.chenall.net/grub4dos-0.4.5c-2016-01-18.7z

or, if it doesn't work (the Presario is an old machine and not many tests have been made with newer versions on old machines), a "historical" 0.4.4, last version of it, 2009-10-16 that you can find here:

http://reboot.pro/topic/16641-grub4dos/

If you need help assistance in the usage, just post your questions/doubts.

jaclaz

 



 

Share this post


Link to post
Share on other sites

Thanks for the lead w jaclaz, Grub 4.4 works well with Presario. It even auto finds windows 98 and loads it. After that test I went back and used the command line. Found everything on (Hd0), and was able to load it off that. I went back and checked in fdsik to make sure the primary partition was set to primary and active, and it is. Thanks Deomsh, I did try SYS C: but had no luck with that. So my next question is what is the next step I need to take to get it to boot on its own with out grub. I've look throw grub with it help but havn't tried to make any changes yet.

Share this post


Link to post
Share on other sites

Please be more specific.

Using SYS C: must give a message like "System transferred".

If your bootdisk is a floppy disk, or an usb-stick of the floppy-type, the command-line will show an "A" in case of booting from the bootdisk. If you used an usb-stick of the hdd-type, your command-line will show "C". Say Windows resides on the D-drive seen from the bootdisk, then SYS-command must be SYS D:

Share this post


Link to post
Share on other sites

I've been using a boot disc and when i tried SYS C: form the A:/ I got invalid command, I will take another look tonight when I get in form work.

Share this post


Link to post
Share on other sites

If via grub4dos it boots, then the system is just fine.

Once you are in grub4dos (press "c" to get the grub4dos command prompt) there are THREE ways to boot the DOS/Win98

#1 chainloading the system file bypassing BOTH the MBR and the PBR (what is in the grub4dos "standard" menu.lst):

find --set-root /io.sys
chainloader /io.sys
boot

(the "boot" is NEEDED on command line and IMPLIED in a menu.lst entry).

#2 chainloading the PBR of the volume, bypassing the MBR :

find --set-root /io.sys
chainloader +1
boot

#3 chainloading the MBR:

rootnoverify (hd0)
chainloader +1
boot

Doing the three tests above you will be able to check which part is "defective" and we will see how to "fix" it.

 

SYS is an external command in DOS, so you need to copy it (SYS.COM) to the boot floppy if it isn't there for *whatever* reason.

Please check (and double check) that the boot floppy (and the SYS.COM) come from the exact same version of DOS/Windows9x.

jaclaz

 

 

 

 

 

Share this post


Link to post
Share on other sites

So I ran the test, Under #1 the system the system boot just like it should, #2 it flash some text across the screen then return back to the Grub command line. #3 the system locks up after running the boot command. Something else I noticed tonight is if the system try to boot form the hard drive on it also freeze up and all _ flashes on the screen. I did check the files on the floppy drive and there wasn't a sys.com on it. I went back to another 98 rig and made another start up disk but still no sys.com So after that i check on allbootdisks.com and found a copy with sys c: It said system transfer but no chance in the boot. Thanks for the help so far.

Share this post


Link to post
Share on other sites

It could be an issue with either the boot code (in the PBR) or with some data (again in the PBR, i.e. in the BPB or Bios Parameter Block).

If I recall correctly, when grub4dos chainloads directly io.sys, it recreates the BPB data "on the fly" using the data found in the partition table.

Clearly the partition table is fine (since the volume can be booted and DIR, etc, works just fine) and also most of the BPB must be "good enough" for exactly the same reasons.

Is the volume FAT16 or FAT32?

If the latter the situation is a bit more complex as the bootsector is spanned over three sectors.

I need to see:

1) the MBR, i.e. sector LBA 0
2) the PBR, i.e either sector LBA 63 or sectors LBA 63-65

Basically, you should make a copy of first 100 sectors of the hard disk, compress the file into a .zip archive and upload the archive to some free hosting site or attach it to your next post,

Now the issue is how exactly to extract these 100 sectors from DOS.

How much available space do you have available on the boot diskette?

You need 100*512=51,200 bytes ( the space for the 100 sectors) + the space for the program to dump them[1].

The 0.4.5c version of grub4dos (not the 0.4.4) does have a built-in dd command that would do (as long as you have any means to create an empty file 51.200 bytes in size on the floppy), otherwise we could actually use the (experimental) fat library for grub4dos.

Try using the recommended 0.4.5c version of grub.exe, if it works it will be the easiest way to make the dump of the needed sectors.

jaclaz

 

[1] it's a lot of time I don't deal with "pure" DOS, I have not in mind a program capable of doing this in "pure" DOS and small enough to fit in a diskette, in the good ol' times DEBUG scripts were used, but it is some of the knowlefge that has been lost over the years, I cannot remember right now any suitable "pure" DOS tool

 

Edited by jaclaz

Share this post


Link to post
Share on other sites

The drive is in fat32, I will download and try to use grub 0.4.5.c, I've been using a floppy haven't even tried a usb flash drive as old as the rig is. You would think just clone the hard drive wouldn't be as big of deal but hey legacy can sometime be a pain. It's been a long time since I have used dos so am having to relearn every thing as I go. Once again thanks for the help I will try to get the information you asked for posted up tonight.

Share this post


Link to post
Share on other sites

Good. :)

Out of the dowload of grub4dos:

http://grub4dos.chenall.net/downloads/grub4dos-0.4.5c-2016-01-18/

http://dl.grub4dos.chenall.net/grub4dos-0.4.5c-2016-01-18.7z

you need only grub.exe.

And out of the download of grubutils:

https://code.google.com/archive/p/grubutils/downloads?page=2

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/grubutils/grubutils-2011-06-27.zip

you need only the "fat" file.

General usage is here:

https://www.rmprepusb.com/tutorials/grubutils#TOC-fat

what you need to do (on grub4dos command line) is:

root <- should give (fd0) as feedback

insmod /fat

fat mkfile size=51200 (fd0)/mysectors.bin

dd if=(hd0)0+100 of=(fd0)/mysectors.bin bs=512 count=100

If you already made a new file 51200 bytes or larger on the floppy via DOS or any other means you can of course avoid the grubutils download and usage of the "fat" commands.

jaclaz

 

Share this post


Link to post
Share on other sites

Just tried Grub 0.4.5c and the system would not boot off it, so I also tried 4.4 which works but it does not recognized the "insmod"

Share this post


Link to post
Share on other sites
9 hours ago, pathwayus69 said:

Just tried Grub 0.4.5c and the system would not boot off it, so I also tried 4.4 which works but it does not recognized the "insmod"

I suspected that. :(

I checked and the 0.4.4.2009-10-16 actually has the internal dd command (in an early version, anyway working :)), but you need the "target file".

Since you have SYS.COM on the diskette, that is around 19 KB, do the following (booted to the DOS on the diskette, i.e. on the A:\> prompt):

copy /b sys.com+sys.com+sys.com mysects.bin

DIR mysects.bin

you should have a file mysects.bin that is 56901 bytes (enough)

Then:

grub.exe

on the grub4dos command prompt

root (fd0)

dd if=(hd0)0+100 of=(fd0)/mysects.bin bs=512 count=100

jaclaz

 

Edited by jaclaz

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×