Jump to content











Photo
* * * * * 5 votes

Easy2Boot Development Discussion

grub4dos multiboot multipass usb boot iso

  • Please log in to reply
1383 replies to this topic

#776 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 23 July 2014 - 11:36 AM

The CHS values in the MBR partition table are totally screwed! The LBA values are OK.

Probably best to start again?



#777 adric

adric

    Frequent Member

  • Advanced user
  • 168 posts

Posted 23 July 2014 - 12:00 PM

Okay, I reformatted and left the partition type as is. BTW, I only changed it to 0c with bootice after it would not boot so I don't think that is the problem. I installed Grub to the mbr with rmprep and allowed it to copy grldr. I rebooted and grub boots okay and there is no hanging. I then only copied the files from E2B v1.52 to the flash and rebooted. No blinking cursor, but also no menu. I get the folowing messages:

Booting Easy2Boot - please wait ....
Using strings from /_ISO/E2B/grub/Eng/strings.txt file
BIOS Date=12/14/11
Last sector of last partition of (hd0) is 15794172 
Checking last sector is accessible ... 

After that, nothing happens.



#778 adric

adric

    Frequent Member

  • Advanced user
  • 168 posts

Posted 23 July 2014 - 12:09 PM

The CHS values in the MBR partition table are totally screwed! The LBA values are OK.

Probably best to start again?

Does that mean I lose the other two linux partitions?



#779 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 23 July 2014 - 12:56 PM

The problem is that grub4dos sometimes takes a long time to access sectors that are at the very end of the drive due to a bug/feature of grub4dos.

 

If you just delete \_ISO\e2b\grub\checkaccess.g4b  it might then work.



#780 adric

adric

    Frequent Member

  • Advanced user
  • 168 posts

Posted 23 July 2014 - 02:27 PM

Now that's weird. On the other flash I have I don't see the access problem. I removed the file you mentioned and now the menu appears. Something still doesn't seem right with the flash. I don't recall removing this file previously.



#781 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 23 July 2014 - 02:37 PM

It may depend on the BIOS. My Asus EeePC has a bug and cannot access sectors past 137GB on a USB drive.

 

Also, grub4dos has a bug and cannot access the last few sectors at the very end of the drive on some filesystems - e.g. NTFS and possibly ext2/3/4.

 

checkaccess.g4b looks at the partition table to find the last sector of the last partition and then tries to access it, to check that the BIOS can access all files on the USB drive (because previously people have blamed E2B or grub4dos when the problem was that the ISO file they were trying to access was past the 137GB point!).

 

Your MBR shows that the last partition is an ext partition which extends right to the very physical end of the drive - this might be the problem or it might be a 137GB problem but as your drive is only 8GB it is unlikely.



#782 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 23 July 2014 - 04:46 PM

 

Your MBR shows that the last partition is an ext partition which extends right to the very physical end of the drive - this might be the problem or it might be a 137GB problem but as your drive is only 8GB it is unlikely.

... but the problem is easily solvable if adric can shrink (using gparted or similar) a little bit this last partition, @adric see:

http://reboot.pro/to...ility/?p=182590

 

:duff:

Wonko



#783 adric

adric

    Frequent Member

  • Advanced user
  • 168 posts

Posted 23 July 2014 - 04:58 PM

I seem to be back in business. This time I created the e2b partition first. Then I restored each linux partition (FAT32 and EXT4). I left a tiny bit of free space after the ext4 partition. I no longer need to delete CheckAccess.g4b. and my menus appear pretty much straight away. When I run testdisk I see the following errors, but they don't seem to affect anything. Not sure what the error means though.

Attached Files



#784 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 23 July 2014 - 05:24 PM

RMPrepUSB shows the reported physical size as 'Reported size 8,086,618,112 bytes (7.5312GiB)  Last LBA 15,794,175'

 

I think this is a case where your BIOS is returning the size of the drive as if it had a full cylinder - OR testdisk is assuming that the partition will be comprised of whole cylinders:

CHS 983 255 63 = 15791895

But the partition values are

FAT32                    0   1  1   983  36 12   15794112 [EASY2BOOT]

FAT32, blocksize=4096, 8086 MB / 7711 MiB
file_pread(6,1,buffer,15794176(983/36/14)) ReadFile The semaphore timeout period has expired.

It is trying to read 15794176 which is past the last sector (15794175)!

The last sector of the partition is 15794112,  so it looks like testdisk is accessing sectors outside of the partition area (i.e. it is testing as if the partition ended on a whole cylinder boundary?).



#785 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 23 July 2014 - 05:48 PM

You have that stick *somehow* "Mb aligned" (as opposed to Cylinder/Head aligned), and possibly testdisk (or the settings you chose in it) expect a Cylinder aligned partitioning.

This is what however does not seem "right" (at first sight).

 

Analyse Disk /dev/sdc - 8086 MB / 7712 MiB - CHS 983 255 63
Geometry from i386 MBR: head=8 sector=32
BAD_RS LBA=2048 128520
FAT32 at 0/32/33

 

The device is seen as having a 255/63 geometry alright in first line) whilst the "Geometry from i386 MBR" says it is 8/32 :w00t:

 

Also, you have NOT (as you should have) wiped the device, and TESTDISK finds traces of the old partitioning (and this may as well cause the error report, at least in parts).

CURRENT partition:

 

Current partition structure:
1 P FAT32 0 32 33 522 107 33 8390656 [EASY2BOOT]

 

 

PREVIOUS partition found:

FAT32 at 0/1/1
FAT32 0 1 1 983 36 12 15794112 [EASY2BOOT]

 

 

You should:

1) Wipe the disk

2) re-prepare it

3) make sure that in TESTDISK you have set to "allow partial cylinder": http://www.cgsecurit...ki/Menu_Options

 

:duff:

Wonko



#786 adric

adric

    Frequent Member

  • Advanced user
  • 168 posts

Posted 23 July 2014 - 11:55 PM

What's the best way to wipe the drive?

 

Also, this is all I see in testdisk:

 Expert mode : No
 Align partition: Yes
 Dump : No


#787 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 24 July 2014 - 09:00 AM

Cannot say if "the best". :dubbio:

 

Personally I would use the DSFOK toolkit and mksparse:

1) read the whole USB thingy sending data to the NUL device, i.e. dsfo \\.\Physicaldriven 0 0 NUL (and jolt down the exact size nnnnnn in bytes)

2) create (on a NTFS filesystem) a sparse file the exact size, i.e. mksparse myzeroes.img nnnnnn (or use fsutil)

3) copy the empty file to the device, i.e. dsfi \\.\Physicaldriven 0 0 myzeroes.img

4) delete the sparse file

DSFOK:

http://members.ozema...eezip/freeware/

MKSPARSE:

http://reboot.pro/to...-alpha/?p=70583

or makesprasefile:

http://reboot.pro/to...r-xp-behaviour/

http://jerome.hode.free.fr/opensource/

 

It is entirely possible that within RMPREPUSB there is a provision for writing zeroes to a USB stick, though., :unsure:

 

 

About the Testdisk, the menu has changed form the docs, try changing "Align partition" to NO".

 

:duff:

Wonko



#788 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 24 July 2014 - 09:06 AM

I don't see that wiping it is needed - just reformat with RMPrep and set the size of the partition to whatever you want the first ptn to be.

 

If you are going to wipe a whole flash drive, fill it with FF's not 00's. If it contains 0's then the controller will have to do a read/erase/write cycle on every sector that the filesystem subsequently writes to it.

 

...and yes, Disk Doctor in RMPrepUSB (Ctrl+D) can fill the drive with 0's. Set the pattern in the Fill Buff box to FFFFFFFF and click on Write Using Buffer. Make SURE you have the right drive selected!!!



#789 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 26 July 2014 - 10:50 AM

If you make an uninitialised VHD file using Windows Disk Management console, it creates a file containing all 00's. You could then use RMPrepUSB - File->Drive to write that file to the USB drive and thus fill it with 00's. fsutil file createnew also creates a file of 00's.

 

For Interest:

Cold Boot Attack! - you might find this tutorial interesting.



#790 tinybit

tinybit

    Gold Member

  • Developer
  • 1173 posts
  •  
    China

Posted 27 July 2014 - 01:13 PM

Here is the disassembled code of the FAT32 boot sector:

7C00 EB 58          jmp          7C5A
7C02 90             nop          
7C03 53             push         bx
7C04 59             pop          cx
7C05 53             push         bx
7C06 4C             dec          sp
7C07 49             dec          cx
7C08 4E             dec          si
7C09 55             push         bp
7C0A 58             pop          ax
7C0B 00 02          add          [bp+si],al
7C0D 08 20          or           [bx+si],ah
7C0F 00 02          add          [bp+si],al
7C11 00 00          add          [bx+si],al
7C13 00 00          add          [bx+si],al
7C15 F8             clc          
7C16 00 00          add          [bx+si],al
7C18 20 00          and          [bx+si],al
7C1A 40             inc          ax
7C1B 00 00          add          [bx+si],al
7C1D 00 00          add          [bx+si],al
7C1F 00 00          add          [bx+si],al
7C21 00 40 00       add          [bx+si+00],al
7C24 F8             clc          
7C25 0F 00 00       sldt         [bx+si]
7C28 00 00          add          [bx+si],al
7C2A 00 00          add          [bx+si],al
7C2C 02 00          add          al,[bx+si]
7C2E 00 00          add          [bx+si],al
7C30 01 00          add          [bx+si],ax
7C32 06             push         es
7C33 00 00          add          [bx+si],al
7C35 00 00          add          [bx+si],al
7C37 00 00          add          [bx+si],al
7C39 00 00          add          [bx+si],al
7C3B 00 00          add          [bx+si],al
7C3D 00 00          add          [bx+si],al
7C3F 00 00          add          [bx+si],al
7C41 00 29          add          [bx+di],ch
7C43 C4 7A 84       les          di,[bp+si-7C]
7C46 0E             push         cs
7C47 44             inc          sp
7C48 45             inc          bp
7C49 53             push         bx
7C4A 49             dec          cx
7C4B 4E             dec          si
7C4C 46             inc          si
7C4D 45             inc          bp
7C4E 43             inc          bx
7C4F 54             push         sp
7C50 32 30          xor          dh,[bx+si]
7C52 46             inc          si
7C53 41             inc          cx
7C54 54             push         sp
7C55 33 32          xor          si,[bp+si]
7C57 20 20          and          [bx+si],ah
7C59 20

//// code starts here

7C5A FA             cli          
7C5B FC             cld          
7C5C 31 C9          xor          cx,cx
7C5E 8E D1          mov          ss,cx
7C60 BC 76 7B       mov          sp,7B76
7C63 52             push         dx
7C64 06             push         es
7C65 57             push         di
7C66 1E             push         ds
7C67 56             push         si
7C68 8E C1          mov          es,cx
7C6A B1 26          mov          cl,26
7C6C BF 78 7B       mov          di,7B78
7C6F F3 A5          repz movsw   
7C71 8E D9          mov          ds,cx
7C73 BB 78 00       mov          bx,0078
7C76 0F B4 37       lfs          si,[bx]
7C79 0F A0          push         fs
7C7B 56             push         si
7C7C 20 D2          and          dl,dl
7C7E 78 1B          js           7C9B
7C80 31 C0          xor          ax,ax
7C82 B1 06          mov          cl,06
7C84 89 3F          mov          [bx],di
7C86 89 47 02       mov          [bx+02],ax
7C89 F3 64 A5       fs:repz movsw   
7C8C 8A 0E 18 7C    mov          cl,[7C18]
7C90 88 4D F8       mov          [di-08],cl
7C93 50             push         ax
7C94 50             push         ax
7C95 50             push         ax
7C96 50             push         ax
7C97 CD 13          int          13
7C99 EB 62          jmp          7CFD
7C9B 8B 55 AA       mov          dx,[di-56]
7C9E 8B 75 A8       mov          si,[di-58]
7CA1 C1 EE 04       shr          si,04
7CA4 01 F2          add          dx,si
7CA6 83 FA 4F       cmp          dx,004F
7CA9 76 31          jbe          7CDC
7CAB 81 FA B2 07    cmp          dx,07B2
7CAF 73 2B          jnb          7CDC
7CB1 F6 45 B4 7F    test         byte [di-4C],7F
7CB5 75 25          jnz          7CDC
7CB7 38 4D B8       cmp          [di-48],cl
7CBA 74 20          jz           7CDC
7CBC 66 3D 21 47 50 cmp          eax,54504721
          54 
7CC2 75 10          jnz          7CD4
7CC4 80 7D B8 ED    cmp          byte [di-48],ED
7CC8 75 0A          jnz          7CD4
7CCA 66 FF 75 EC    push         dword [di-14]
7CCE 66 FF 75 E8    push         dword [di-18]
7CD2 EB 0F          jmp          7CE3
7CD4 51             push         cx
7CD5 51             push         cx
7CD6 66 FF 75 BC    push         dword [di-44]
7CDA EB 07          jmp          7CE3
7CDC 51             push         cx
7CDD 51             push         cx
7CDE 66 FF 36 1C 7C push         dword [7C1C]
7CE3 B4 08          mov          ah,08
7CE5 E8 E9 00       call         7DD1
7CE8 72 13          jb           7CFD
7CEA 20 E4          and          ah,ah
7CEC 75 0F          jnz          7CFD
7CEE C1 EA 08       shr          dx,08
7CF1 42             inc          dx
7CF2 89 16 1A 7C    mov          [7C1A],dx
7CF6 83 E1 3F       and          cx,003F
7CF9 89 0E 18 7C    mov          [7C18],cx
7CFD FB             sti          
7CFE BB AA 55       mov          bx,55AA
7D01 B4 41          mov          ah,41
7D03 E8 CB 00       call         7DD1
7D06 72 10          jb           7D18
7D08 81 FB 55 AA    cmp          bx,AA55
7D0C 75 0A          jnz          7D18
7D0E F6 C1 01       test         cl,01
7D11 74 05          jz           7D18
7D13 C6 06 46 7D 00 mov          byte [7D46],00
7D18 66 B8 F8 DD 19 mov          eax,0019DDF8
          00 
7D1E 66 BA 00 00 00 mov          edx,00000000
          00 
7D24 BB 00 7E       mov          bx,7E00
7D27 E8 0E 00       call         7D38
7D2A 66 81 3E 1C 7E cmp          dword [7E1C],7361AEDE
          DE AE 61 73 
7D33 75 74          jnz          7DA9
7D35 E9 F8 00       jmp          7E30
7D38 66 03 06 60 7B add          eax,[7B60]
7D3D 66 13 16 64 7B adc          edx,[7B64]
7D42 B9 10 00       mov          cx,0010
7D45 EB 2B          jmp          7D72
7D47 66 52          push         edx
7D49 66 50          push         eax
7D4B 06             push         es
7D4C 53             push         bx
7D4D 6A 01          push         0001
7D4F 6A 10          push         0010
7D51 89 E6          mov          si,sp
7D53 66 60          pushad       
7D55 B4 42          mov          ah,42
7D57 E8 77 00       call         7DD1
7D5A 66 61          popad        
7D5C 8D 64 10       lea          sp,[si+10]
7D5F 72 01          jb           7D62
7D61 C3             ret          
7D62 66 60          pushad       
7D64 31 C0          xor          ax,ax
7D66 E8 68 00       call         7DD1
7D69 66 61          popad        
7D6B E2 DA          loopw        7D47
7D6D C6 06 46 7D 2B mov          byte [7D46],2B
7D72 66 60          pushad       
7D74 66 0F B7 36 18 movzx        esi,word [7C18]
          7C 
7D7A 66 0F B7 3E 1A movzx        edi,word [7C1A]
          7C 
7D80 66 F7 F6       div          esi
7D83 31 C9          xor          cx,cx
7D85 87 CA          xchg         cx,dx
7D87 66 F7 F7       div          edi
7D8A 66 3D FF 03 00 cmp          eax,000003FF
          00 
7D90 77 17          ja           7DA9
7D92 C0 E4 06       shl          ah,06
7D95 41             inc          cx
7D96 08 E1          or           cl,ah
7D98 88 C5          mov          ch,al
7D9A 88 D6          mov          dh,dl
7D9C B8 01 02       mov          ax,0201
7D9F E8 2F 00       call         7DD1
7DA2 66 61          popad        
7DA4 72 01          jb           7DA7
7DA6 C3             ret          
7DA7 E2 C9          loopw        7D72
7DA9 31 F6          xor          si,si
7DAB 8E D6          mov          ss,si
7DAD BC 68 7B       mov          sp,7B68
7DB0 8E DE          mov          ds,si
7DB2 66 8F 06 78 00 pop          dword [0078]
7DB7 BE DA 7D       mov          si,7DDA
7DBA AC             lodsb        
7DBB 20 C0          and          al,al
7DBD 74 09          jz           7DC8
7DBF B4 0E          mov          ah,0E
7DC1 BB 07 00       mov          bx,0007
7DC4 CD 10          int          10
7DC6 EB F2          jmp          7DBA
7DC8 31 C0          xor          ax,ax
7DCA CD 16          int          16
7DCC CD 19          int          19
7DCE F4             hlt          
7DCF EB FD          jmp          7DCE
7DD1 8A 16 74 7B    mov          dl,[7B74]
7DD5 06             push         es
7DD6 CD 13          int          13
7DD8 07             pop          es
7DD9 C3             ret          
7DDA 42             inc          dx
7DDB 6F             outsw        
7DDC 6F             outsw        
7DDD 74 20          jz           7DFF
7DDF 65 72 72       gs:jb        7E53
7DE2 6F             outsw        
7DE3 72 0D          jb           7DF2
7DE5 0A 00          or           al,[bx+si]
7DE7 00 00          add          [bx+si],al
7DE9 00 00          add          [bx+si],al
7DEB 00 00          add          [bx+si],al
7DED 00 00          add          [bx+si],al
7DEF 00 00          add          [bx+si],al
7DF1 00 00          add          [bx+si],al
7DF3 00 00          add          [bx+si],al
7DF5 00 00          add          [bx+si],al
7DF7 00 FE          add          dh,bh
7DF9 02 B2 3E 18    add          dh,[bp+si+183E]
7DFD 37             aaa          
7DFE 55             push         bp
7DFF AA             stosb        

You see, when it starts to run, it will copy something from DS:SI to ES:DI.

 

So we can conclude that it is not independent by design. And that means, if we chainload it(as usual as an independent boot sector), we could fail.



#791 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 27 July 2014 - 03:17 PM

@tinybit

WHICH FAT32 bootsector? :unsure:

 

Just for the record, these are the FAT32 bootsector disassembled for 2000/XP (think as bootsect.exe /nt52):

http://thestarman.pc...r/ntFAT32BR.htm

and the DOS 9x/Me one:

http://thestarman.pc...mbr/MSWIN41.htm

 

:duff:

Wonko



#792 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 27 July 2014 - 04:19 PM

It is the  code from grub_mbr.h stage1 grub4dos PBR code. So it is chainloadable.



#793 tinybit

tinybit

    Gold Member

  • Developer
  • 1173 posts
  •  
    China

Posted 27 July 2014 - 10:41 PM

No. It is the asm code for adric's attachment in post #736

 

 

@tinybit Sectors are in post #736  - 2nd one looks like a normal FAT32 sector...

 

 

It is the very sector with hidden_sectors=0, and after corrected with the right value, the "chainloader (hd0,1)+1" still failed, but "chainloader (hd0,1)+2" succeeded inexplicably, as you good guys have described / reported.



#794 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 28 July 2014 - 07:32 AM

No. It is the asm code for adric's attachment in post #736

Which *seems* like being a "SYSLINUX" bootsector. :unsure:

Possible that all these years noone happened to directly chainload a SYSLINUX FAT32 bootsector?

Or it is a bootsector in a specific version of SYSLINUX only?

Or is it "peculiar" to the "specific" Linux distro?

 

Queer. :dubbio:

 

:duff:

Wonko



#795 tinybit

tinybit

    Gold Member

  • Developer
  • 1173 posts
  •  
    China

Posted 28 July 2014 - 10:43 AM

Which *seems* like being a "SYSLINUX" bootsector. :unsure:

Possible that all these years noone happened to directly chainload a SYSLINUX FAT32 bootsector?

Or it is a bootsector in a specific version of SYSLINUX only?

Or is it "peculiar" to the "specific" Linux distro?

 

Queer. :dubbio:

 

:duff:

Wonko

 

Maybe, perhaps, probably, users of grub4dos happened to have no chance to chainload a syslinux FAT32 bootsector. Or users of syslinux happened to have no chance to use grub4dos.

 

Notice that the sector has hidden_sectors=0, and it has broken the de facto standards built by MS. I wonder which utility created this sector, and why? Is that a bug or by mistake? Can it be fixed?



#796 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 28 July 2014 - 11:04 AM

Well, I see it as two separate and different issues (and consequently causes).

 

One is the "Sectors Before=0" which is part of the "dynamic data" in the bootsector and that could have been set (wrongly) to 0 by *almost* any formatting/installing/whatever tool (and that is anyway easily fixed, as seen). <- though it shouldn't happen, I find it "not surprising".

 

The second is IMHO - though as seen solvable by loading some more bytes - more "strange" as that is part of the "static code" of the bootsector and thus is definitely originated by one version or the other of Syslinux (unless the specific distro uses a "fork" or something like that), and - though of course possible - it seems really improbable to me that noone ever used grub4dos to chainload first sector of a FAT32 volume with the Syslinux bootsector. :unsure:

 

Sure it is possible that all grub4dos users used the direct chainloading feature to bypass the bootsector and load the OS loader or system files directly, but still someone, even by mistake/unintentionally must have tried that.

Maybe this happened, and since it failed they resolved to turn into direct chainloading of the OS loader/system files to solve the issue that was never reported as a "bug" AFAICR.

 

Maybe it's Steve6375's fault :w00t: :ph34r:

http://www.rmprepusb...inload-syslinux

 

;)  :lol:

 

:duff:

Wonko



#797 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 28 July 2014 - 11:41 AM

I just redid by E2B flash and I've been hit with the blinking cursor problem. Both PBR and MBR have grub in it. I ran it under QEMU and the E2B Menu appears there. When I boot natively, I get no menu. I'm have no idea what I did wrong. I compared the flash with another flash and the files are virtually the same with the exception of one iso. The same flash worked previously. Any ideas?

 

When I redid the flash, I did a quick format, changed the partition back id to 0c  and installed grub from rmprep. I could not do the format with rmprep because I need the other 2 partitions on the flash.

don't understand this talk about syslinux???

I have already told you that the code in the PBR is from grubinst.exe in post #792.

Adric is making an Easy2Boot USB drive which uses grub4dos. He said that he installed grub4dos to both MBR and PBR (post #769).

A clue here is that the PBR has 'GRLDR5.0' at the start, whereas my grubinst.exe from RMPrepUSB installs  'GRLDR5.1'. So whatever installed the grub4dos code to the PBR was not RMPrepUSB's grubinst (or possibly it had been later modified by BootIce???). The MBR code is RMPrepUSB's grubinst code however.

Maybe the culprit here is that Adric partitioned the USB drive using some unspecified method (post #769) which mangled the CHS entries in the MBR- AND/OR - maybe it is  a problem using BootIce to modify the partition ID (or otherwise fiddle with the boot sectors) because the RMPrepUSB grub4dos MBR code is incompatible with BootIce (my versions starts with 0x33 0xC0 for better compatibility with some BIOSes that look at the first bytes in the MBR, so all the special parameter bytes (for timeout, etc.) from byte 02 to 08 in the MBR are shifted along by 2 in the RMPrepUSB MBR code).???

 

@Adric - how exactly did you prepare the USB drive?



#798 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 28 July 2014 - 03:47 PM

Well, tinybit posted a set of bytes (in the form of a disassembly).

 

He later - upon my request - specified how it was the disassembly of what adric posted on post #736.

 

I would presume that tinybit knows what he disassembled :).

 

However, the first bytes of the posted disassembly (after the "standard" EB5890 "jump three bytes") are "53 59 53 4C 49 4E 55 58" which means "SYSLINUX", which corresponds to the .html adric posted on post #736.

 

It was my guess (that I would anyway define "educated") that a boot sector sporting "SYSLINUX" in it's "OEM" field was *somehow* belonging to Syslinux or however connected with it.

 

:duff:

Wonko



#799 steve6375

steve6375

    Platinum Member

  • Developer
  • 7264 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars, www.easy2boot.com
  •  
    United Kingdom

Posted 28 July 2014 - 03:59 PM

ahh, sorry, I was assuming it was from the #769 post! mea culpa!



#800 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 15275 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 28 July 2014 - 05:05 PM

No prob. :)

Back to the issue it is entirely possible that memoarfaa here:

http://reboot.pro/to...-30#entry185781

while being "wrong" :w00t: :ph34r:, was "right" :unsure: in the sense that chainloading instead of isolinux.bin, "syslinux.bin" like here:

http://www.rmprepusb...ux#TOC-Method-2

the thingy would boot. (but I found improbably that a syslinux.bin actually exists on adric's volume)

 

I wouldn't be surprised if  syslinux bootsector itself can boot even ignoring some values in the BPB (or recreating them "on-the-fly"), it is even possible that the difference lies in the use (or not) of the -s option when installing the bootsector:

http://www.syslinux....ex.php/SYSLINUX

 

-s Safe, slow, stupid: uses simpler code that boots better.
This version may work on some very buggy BIOSes on which SYSLINUX would otherwise fail.
If you find a machine on which the -s option is required to make it boot reliably,
please send as much info about your machine as you can, and include the failure mode.

 

 

Cannot really say :blush:, it's a lot of time I don't do experiments with syslinux,cannot remember old ones (which results may however be made invalid by new releases and changed code), and possibly I never experimented with syslinux on a FAT32 volume.

 

What we miss is a test if, while leaving the "sectors before=0" the thingy would boot if we use chainloader (hdm,n)0+2 :dubbio: (or if more sectors are needed in the case of "sectors before=0").

 

On a side note, I don't think there would be particular issue with all other kinds of bootsectors if we "generalize" the use of  chainloader (hdm,n)0+2 on them also.

 

:duff:

Wonko 







Also tagged with one or more of these keywords: grub4dos, multiboot, multipass, usb boot, iso

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users