I know there are many DOS/BIOS experts here. Everyone, let's work together and see what is going on.
The new version of GRUB has brought many new features. For example, it can emulate a floppy or hard disk image of any size; it can not only read from the emulated disk, but also write to the emulated disk; in addition, it can enable the "in-place emulation" function, so that emulation can be used right at GRUB's command line state.
However, a strange thing has appeared, described in detail below:
First case, I use
map (hd1,0)/dos98.img (fd0)
chainloader (hd0)+1
boot
This boots win98 from the C: drive. After booting this way, the contents of the emulated floppy can be accessed normally inside win98.
Second case, using
map (hd1,0)/dos98.img (fd0)
map --hook
(the above command enables the in-place emulation function)
chainloader (hd0)+1
boot
As a result, after entering win98, I found the floppy could not be accessed. The first sector of the floppy had been rewritten; the other sectors all seem still to be there and were not damaged.
Third case, using
map (hd1,0)/dos98.img (fd0)
map --hook
map --unhook
(the above command disables the in-place emulation function)
chainloader (hd0)+1
boot
This also does not work; the first sector of the floppy image is still destroyed.
Fourth case, using
map --read-only (hd1,0)/dos98.img (fd0)
(the above command forbids writing to the floppy image with int13/AH=03h or int13/AH=43h)
map --hook
chainloader (hd0)+1
boot
Booting win98 this way, the floppy is no longer destroyed.
Based on the above situation, we can preliminarily determine that some very hidden int13/AH=03h or int13/AH=43h wrote to the floppy.
First, win98 is in vmware, and I did not install any extra software, so it cannot have a virus; second, even if win98 were infected with a virus, think about why it does not destroy the floppy in the first case? So it should not be caused by operating systems like win98.
Then the problem is concentrated on GRUB's code. However, GRUB has very few disk-writing operations, and especially I cannot find any operation that writes to a floppy. GRUB writes to disk only in very rare cases, such as installing GRUB to the MBR, etc. We could not possibly be involved with these operations at all, so how could an action like writing to a floppy suddenly appear?
I am really completely baffled!!
The new version of GRUB has brought many new features. For example, it can emulate a floppy or hard disk image of any size; it can not only read from the emulated disk, but also write to the emulated disk; in addition, it can enable the "in-place emulation" function, so that emulation can be used right at GRUB's command line state.
However, a strange thing has appeared, described in detail below:
First case, I use
map (hd1,0)/dos98.img (fd0)
chainloader (hd0)+1
boot
This boots win98 from the C: drive. After booting this way, the contents of the emulated floppy can be accessed normally inside win98.
Second case, using
map (hd1,0)/dos98.img (fd0)
map --hook
(the above command enables the in-place emulation function)
chainloader (hd0)+1
boot
As a result, after entering win98, I found the floppy could not be accessed. The first sector of the floppy had been rewritten; the other sectors all seem still to be there and were not damaged.
Third case, using
map (hd1,0)/dos98.img (fd0)
map --hook
map --unhook
(the above command disables the in-place emulation function)
chainloader (hd0)+1
boot
This also does not work; the first sector of the floppy image is still destroyed.
Fourth case, using
map --read-only (hd1,0)/dos98.img (fd0)
(the above command forbids writing to the floppy image with int13/AH=03h or int13/AH=43h)
map --hook
chainloader (hd0)+1
boot
Booting win98 this way, the floppy is no longer destroyed.
Based on the above situation, we can preliminarily determine that some very hidden int13/AH=03h or int13/AH=43h wrote to the floppy.
First, win98 is in vmware, and I did not install any extra software, so it cannot have a virus; second, even if win98 were infected with a virus, think about why it does not destroy the floppy in the first case? So it should not be caused by operating systems like win98.
Then the problem is concentrated on GRUB's code. However, GRUB has very few disk-writing operations, and especially I cannot find any operation that writes to a floppy. GRUB writes to disk only in very rare cases, such as installing GRUB to the MBR, etc. We could not possibly be involved with these operations at all, so how could an action like writing to a floppy suddenly appear?
I am really completely baffled!!
因为我们亲手创建,这个世界更加美丽。

DigestI
