grub4dos icon indicating copy to clipboard operation
grub4dos copied to clipboard

0.4.6a does not see all files into ISO

Open At1ant opened this issue 8 years ago • 20 comments

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.

At1ant avatar Apr 07 '16 13:04 At1ant

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 <TAB>

image

Press TAB key

image

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

steve6375 avatar Apr 07 '16 13:04 steve6375

Please test

2012yaya2007 avatar Apr 09 '16 10:04 2012yaya2007

Seems OK now for me.

steve6375 avatar Apr 09 '16 13:04 steve6375

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 avatar Apr 11 '16 13:04 At1ant

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

At1ant avatar Apr 11 '16 14:04 At1ant

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

2012yaya2007 avatar Apr 12 '16 01:04 2012yaya2007

Problem finding. 2 level sub folders cannot be accessed.

2012yaya2007 avatar Apr 12 '16 01:04 2012yaya2007

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

At1ant avatar Apr 14 '16 21:04 At1ant

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

yaya2007 avatar Apr 15 '16 13:04 yaya2007

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.

At1ant avatar Apr 15 '16 15:04 At1ant

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).

2012yaya2007 avatar Apr 16 '16 10:04 2012yaya2007

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 avatar Apr 16 '16 11:04 steve6375

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 avatar Apr 16 '16 11:04 steve6375

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_

...

steve6375 avatar Apr 16 '16 12:04 steve6375

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.

At1ant avatar Apr 19 '16 10:04 At1ant

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.

steve6375 avatar Apr 19 '16 10:04 steve6375

steve6375 Ok, I understand. yaya2007 Thanks for support!

At1ant avatar Apr 20 '16 09:04 At1ant

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

2012yaya2007 avatar Apr 20 '16 13:04 2012yaya2007

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.

steve6375 avatar Apr 20 '16 13:04 steve6375

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

2012yaya2007 avatar Apr 21 '16 00:04 2012yaya2007