Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.4.6a does not see all files into ISO #114

Open
At1ant opened this issue Apr 7, 2016 · 20 comments
Open

0.4.6a does not see all files into ISO #114

At1ant opened this issue Apr 7, 2016 · 20 comments

Comments

@At1ant
Copy link

At1ant commented Apr 7, 2016

grub4dos-0.4.6a-2013-01-14.7z and later builds does not see all files into ISO, that's created by oscdimg (cdimage). This bug, you can see in the images with ISO9600 and Joilet extension. On ISO with UDF file system Grub4Dos 0.4.6a work fine. For example on the screen maping original image of Microsoft Windows XP Professional x32 VOL Edition with SP3 Russian.
0 4 6a
Also after "ls (0xff)/I386/" command, "up arrow" key does not working - it's show some unreadable symbol (smile like on the screen above) instead of previous entered commands. To reproduce the problem, you can take any image of the original Windows Xp/2003 or create your own by oscdimg.

During testing of this bug:

  • Images created by latest UltraISO v9.6.5.3237 - 0.4.6a see all files but have same problem with up arrow.
  • grub4dos-0.4.6a-2013-01-13.7z works fine.
  • All 0.4.5c builds don't have this bug.

Please fix it.

@steve6375
Copy link

I can confirm up arrow problem using standard English Microsoft WinXp Pro. ISO
0.4.6a 2016-03-26

also crash if

map /WinXP.iso (0xff)
map --hook
ls /i38

image

Press TAB key

image

Also command stack is cleared/corrupted (if press UP key).

@2012yaya2007
Copy link

Please test

@steve6375
Copy link

Seems OK now for me.

yaya2007 pushed a commit to yaya2007/grub4dos that referenced this issue Apr 10, 2016
yaya2007 pushed a commit to yaya2007/grub4dos that referenced this issue Apr 11, 2016
@At1ant
Copy link
Author

At1ant commented Apr 11, 2016

grldr.rar.txt and grub4dos-0.4.6a-2016-04-10.7z now they do not see all files in ISO with UDF filesystem. I tested on original Microsoft image of Windows 7 and 10:
2016-04-10
UP key work well.
2016-04-07

@At1ant
Copy link
Author

At1ant commented Apr 11, 2016

grub4dos-0.4.6a-2016-04-11.7z don't see subfolders in "sources".

@2012yaya2007
Copy link

grub4dos-0.4.6a-2016-04-11.7z
I can see subfolders in "sources". How can you not? Please screenshot.
-20160412085904

@2012yaya2007
Copy link

Problem finding. 2 level sub folders cannot be accessed.

yaya2007 pushed a commit to yaya2007/grub4dos that referenced this issue Apr 12, 2016
@At1ant
Copy link
Author

At1ant commented Apr 14, 2016

I wrote Create_lst.cmd that generate ImageName.lst for testing files in ISO, example:

map /en_winxp_pro_with_sp3_vl.iso (0xff)
map --hook
echo Begin scanning: /en_winxp_pro_with_sp3_vl.iso.
if not exist (0xff)/AUTORUN.INF echo /AUTORUN.INF
............................................................
if not exist (0xff)/WIN51IP.SP3 echo /WIN51IP.SP3
echo Scan completed.
pause
halt

Create_lst.7z.txt
And test with them various image of Windows. Vista/7/10 pass test successfully, Xp/8/.8.1 was failed:
en_winxp_pro_with_sp3_vl
en_win_xp_pro_x64_with_sp2_vl_x13-41611
ru_windows_8_x64_dvd_915419
On 0.4.5c version "Windows XP Professional with Service Pack 3 VOL English" and "Microsoft Windows XP Professional x64 VOL Edition with SP2 English" have passed ok.
en_winxp_pro_with_sp3_vl-0 4 5c
en_win_xp_pro_x64_with_sp2_vl_x13-41611-0 4 5c
Also if delete the first 4000 lines in lst, both XP will passed test:
en_winxp_pro_with_sp3_vl-4000
For 8 x64 deleting the first 1000 lines will change errors message and don't open commandline:
ru_windows_8_x64_dvd_915419-1000

@yaya2007
Copy link
Collaborator

Question how to reproduce?
Create_lst.cmd how to use?

@At1ant
Copy link
Author

At1ant commented Apr 15, 2016

Sorry I forgot to write. Put Create_lst.cmd and ISOs in root of flash drive (7z.exe + 7z.dll too, if you don't have installed 7-Zip 15.14). Start Create_lst.cmd and he will generate lst for each ISO next to him. All that remains is to add the start-up menu in menu.lst to new genereted lst or run them manually from console.

@2012yaya2007
Copy link

Still not clear.
Is in the DOS environment? GRLDR environment? Windows environment?
Create_lst.cmd automatic execution?
Please upload a test kit (remove winxp.iso).

@steve6375
Copy link

On XPProSP3, the generated .lst fails after 4000 lines as you have shown.
However, if you delete all lines before 4000, then it passes.
So the problem you are seeing is caused by the number of lines in the .lst file - it is not a problem with the iso. Other ISOs are OK because there are fewer lines in the .lst file (or perhaps fewer characters in total?).
This ISO fails after line 4000, but if I delete the lines before 4000 then it passes...
image

@steve6375
Copy link

If I add pause lines to the full XPPROSP3.lst

... beginning of file...

if not exist (0xff)/I386/NEWFEAT5.HL_ echo /I386/NEWFEAT5.HL_
if not exist (0xff)/I386/NEWMARK1.JP_ echo /I386/NEWMARK1.JP_
if not exist (0xff)/I386/NEWMARK8.JP_ echo /I386/NEWMARK8.JP_
if not exist (0xff)/I386/NEWS.PN_ echo /I386/NEWS.PN_
if not exist (0xff)/I386/NEWSTRYS.WM_ echo /I386/NEWSTRYS.WM_
if not exist (0xff)/I386/NEWTOP1.JP_ echo /I386/NEWTOP1.JP_
pause 4435
if not exist (0xff)/I386/NEWTOP8.JP_ echo /I386/NEWTOP8.JP_
if not exist (0xff)/I386/NEXTDOWN.JP_ echo /I386/NEXTDOWN.JP_
if not exist (0xff)/I386/NEXTLINK.DL_ echo /I386/NEXTLINK.DL_
if not exist (0xff)/I386/NEXTOFF.JP_ echo /I386/NEXTOFF.JP_
if not exist (0xff)/I386/NEXTOVER.JP_ echo /I386/NEXTOVER.JP_
pause 4438
if not exist (0xff)/I386/NEXTUP.JP_ echo /I386/NEXTUP.JP_
if not exist (0xff)/I386/NIPX.MI_ echo /I386/NIPX.MI_
if not exist (0xff)/I386/NLHTML.DL_ echo /I386/NLHTML.DL_
if not exist (0xff)/I386/NLS302EN.LE_ echo /I386/NLS302EN.LE_
if not exist (0xff)/I386/NLSFUNC.EX_ echo /I386/NLSFUNC.EX_
if not exist (0xff)/I386/NMAS.DL_ echo /I386/NMAS.DL_
if not exist (0xff)/I386/NMASNT.DL_ echo /I386/NMASNT.DL_
if not exist (0xff)/I386/NMCHAT.CH_ echo /I386/NMCHAT.CH_
if not exist (0xff)/I386/NMCHAT.DL_ echo /I386/NMCHAT.DL_
if not exist (0xff)/I386/NMCOM.DL_ echo /I386/NMCOM.DL_
if not exist (0xff)/I386/NMEVTMSG.DL_ echo /I386/NMEVTMSG.DL_
if not exist (0xff)/I386/NMFT.DL_ echo /I386/NMFT.DL_
if not exist (0xff)/I386/NMMKCERT.DL_ echo /I386/NMMKCERT.DL_
if not exist (0xff)/I386/NMNT.SY_ echo /I386/NMNT.SY_
if not exist (0xff)/I386/NMOLDWB.DL_ echo /I386/NMOLDWB.DL_
if not exist (0xff)/I386/NMPGMGRP.EX_ echo /I386/NMPGMGRP.EX_
if not exist (0xff)/I386/NMWB.DL_ echo /I386/NMWB.DL_
if not exist (0xff)/I386/NMWHITEB.CH_ echo /I386/NMWHITEB.CH_
if not exist (0xff)/I386/NOANSWER.HT_ echo /I386/NOANSWER.HT_
if not exist (0xff)/I386/NOCONTNT.CN_ echo /I386/NOCONTNT.CN_
if not exist (0xff)/I386/NOFTS.CH_ echo /I386/NOFTS.CH_
if not exist (0xff)/I386/NOISE.CHS echo /I386/NOISE.CHS
if not exist (0xff)/I386/NOISE.CHT echo /I386/NOISE.CHT
if not exist (0xff)/I386/NOISE.DA_ echo /I386/NOISE.DA_
if not exist (0xff)/I386/NOISE.DE_ echo /I386/NOISE.DE_
if not exist (0xff)/I386/NOISE.ENG echo /I386/NOISE.ENG
if not exist (0xff)/I386/NOISE.ENU echo /I386/NOISE.ENU
pause 4461
if not exist (0xff)/I386/NOISE.ES_ echo /I386/NOISE.ES_

Note that 'pause 4438' is not executed!!!

image

@steve6375
Copy link

If I add more characters to the file before line 4435, then it fails before 4435 - so it is the number of characters in the .lst file that counts, not the number of lines.
image

if not exist (0xff)/I386/NEWBTM1.JP_ echo /I386/NEWBTM1.JP_
if not exist (0xff)/I386/NEWBTM8.JP_ echo /I386/NEWBTM8.JP_
pause 4414
if not exist (0xff)/I386/NEWDEV.DL_ echo /I386/NEWDEV.DL_
if not exist (0xff)/I386/NEWEMAIL.WA_ echo /I386/NEWEMAIL.WA_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWEULA.HT_ echo /I386/NEWEULA.HT_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWEULA2.HT_ echo /I386/NEWEULA2.HT_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT1.CH_ echo /I386/NEWFEAT1.CH_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT1.HL_ echo /I386/NEWFEAT1.HL_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
pause 4420
if not exist (0xff)/I386/NEWFEAT2.CH_ echo /I386/NEWFEAT2.CH_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT2.HL_ echo /I386/NEWFEAT2.HL_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT3.CH_ echo /I386/NEWFEAT3.CH_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT3.HL_ echo /I386/NEWFEAT3.HL_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT4.CH_ echo /I386/NEWFEAT4.CH_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT4.HL_ echo /I386/NEWFEAT4.HL_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWFEAT5.CH_ echo /I386/NEWFEAT5.CH_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
pause 4428
if not exist (0xff)/I386/NEWFEAT5.HL_ echo /I386/NEWFEAT5.HL_SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
if not exist (0xff)/I386/NEWMARK1.JP_ echo /I386/NEWMARK1.JP_
if not exist (0xff)/I386/NEWMARK8.JP_ echo /I386/NEWMARK8.JP_
if not exist (0xff)/I386/NEWS.PN_ echo /I386/NEWS.PN_
if not exist (0xff)/I386/NEWSTRYS.WM_ echo /I386/NEWSTRYS.WM_
if not exist (0xff)/I386/NEWTOP1.JP_ echo /I386/NEWTOP1.JP_
pause 4435
if not exist (0xff)/I386/NEWTOP8.JP_ echo /I386/NEWTOP8.JP_
if not exist (0xff)/I386/NEXTDOWN.JP_ echo /I386/NEXTDOWN.JP_
if not exist (0xff)/I386/NEXTLINK.DL_ echo /I386/NEXTLINK.DL_
if not exist (0xff)/I386/NEXTOFF.JP_ echo /I386/NEXTOFF.JP_
if not exist (0xff)/I386/NEXTOVER.JP_ echo /I386/NEXTOVER.JP_
pause 4438
if not exist (0xff)/I386/NEXTUP.JP_ echo /I386/NEXTUP.JP_
if not exist (0xff)/I386/NIPX.MI_ echo /I386/NIPX.MI_

...

@At1ant
Copy link
Author

At1ant commented Apr 19, 2016

2012yaya2007 Create_lst.cmd is automatic execution script, works on Windows. It builds *.lst for all ISOs near the script. In archive files from test flash drive, original ISOs replaced by empty files.
flash_drive.7z.txt

steve6375 On grub4dos-0.4.5c-2016-01-18.7z no those errors. ISOs and *.lst was the same, so problem in grub4dos-0.4.6a-2016-04-13.7z.

@steve6375
Copy link

steve6375 commented Apr 19, 2016

steve6375 On grub4dos-0.4.5c-2016-01-18.7z no those errors. ISOs and *.lst was the same, so problem in grub4dos-0.4.6a-2016-04-13.7z.

correct, but the files in the iso are found OK. The problem is just having a very large .lst file. It is not a problem with finding files inside the ISO.

@At1ant
Copy link
Author

At1ant commented Apr 20, 2016

steve6375 Ok, I understand.
yaya2007 Thanks for support!

@2012yaya2007
Copy link

It has nothing to do with the ISO system.
The size of "en_winxp_pro_with_sp3_vl.lst" is too large.

@steve6375
Copy link

Yes, it is due to large .lst file BUT as at1ant says, grub4dos 0.4.6a 2016-01-18 works, but 2016-04-13 gives errors.

@2012yaya2007
Copy link

More than 256Kb, it may cause memory conflict. As for the conflict or not, it depends on the specific circumstances.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants