"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "doc/boot_sectors.txt" between
xorriso-1.5.2.tar.gz and xorriso-1.5.4.tar.gz

About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.

boot_sectors.txt  (xorriso-1.5.2):boot_sectors.txt  (xorriso-1.5.4)
skipping to change at line 119 skipping to change at line 119
---------- | ---------- | ---------------------------------------------------- ---------- | ---------- | ----------------------------------------------------
64 - 95 | ========== | Section Header entry 64 - 95 | ========== | Section Header entry
| | begins new section, specifies an architecture | | begins new section, specifies an architecture
96 - 127 | ========== | Section Entry 96 - 127 | ========== | Section Entry
| | points to a boot image for given architecture | | points to a boot image for given architecture
... | .......... | Optional more Section Entries ... | .......... | Optional more Section Entries
... | .......... | Optional more Section Headers and their Section ... | .......... | Optional more Section Headers and their Section
| | Entries | | Entries
---------- | ---------- | ---------------------------------------------------- ---------- | ---------- | ----------------------------------------------------
An architecture is refered by a Platform Id number. An architecture is referred by a Platform Id number.
Defined by El Torito are: Defined by El Torito are:
0 = "80x86" which is used for standard PCs with Intel x86 or compatible CPU 0 = "80x86" which is used for standard PCs with Intel x86 or compatible CPU
1 = "PowerPC" (possibly for IBM machines with PowerPC CPU) 1 = "PowerPC" (possibly for IBM machines with PowerPC CPU)
2 = "Mac" (possibly for Apple computers with MC68000 or PowerPC CPU) 2 = "Mac" (possibly for Apple computers with MC68000 or PowerPC CPU)
UEFI 2.4 specifies in 12.3.2.1 "ISO-9660 and El Torito": UEFI 2.4 specifies in 12.3.2.1 "ISO-9660 and El Torito":
0xef = EFI, a competitor and successor to PC-BIOS, further in use with 0xef = EFI, a competitor and successor to PC-BIOS, further in use with
Intel ia64 Itanium and newer Apple machines. Intel ia64 Itanium and newer Apple machines.
Words and numbers are represented as little-endian. Words and numbers are represented as little-endian.
skipping to change at line 317 skipping to change at line 317
on units of 512 bytes. So MBR_LBA = ISO_LBA * 4. on units of 512 bytes. So MBR_LBA = ISO_LBA * 4.
Contemporary x86 BIOS normally supports LBA addressing directly. Contemporary x86 BIOS normally supports LBA addressing directly.
If INT 0x13 AH 0x41 returns with CX bit0 set, then INT 0x13 AH 0x42 may be used If INT 0x13 AH 0x41 returns with CX bit0 set, then INT 0x13 AH 0x42 may be used
for reading. (Sometimes even if the bit is not set to indicate the capability.) for reading. (Sometimes even if the bit is not set to indicate the capability.)
For C/H/S, the sector address is broken up into whole cylinders, remaining For C/H/S, the sector address is broken up into whole cylinders, remaining
heads, and remaining sectors + 1. The nomenclature seems to stem from antique heads, and remaining sectors + 1. The nomenclature seems to stem from antique
drum storage. drum storage.
There are two parameters, sectors_per_head and heads_per_cylinder which are not There are two parameters, sectors_per_head and heads_per_cylinder which are not
stored in the MBR. So at ISO production time it is more or less arbitray how stored in the MBR. So at ISO production time it is more or less arbitrary how
to convert a LBA into a C/H/S address and vice versa. to convert a LBA into a C/H/S address and vice versa.
At boot time the x86 BIOS decides about the two parameters. The boot loader may At boot time the x86 BIOS decides about the two parameters. The boot loader may
inquire these values by INT 0x13 AH 0x08 and use them to convert LBA to C/H/S inquire these values by INT 0x13 AH 0x08 and use them to convert LBA to C/H/S
for the read operation INT 0x13 AH 0x02. So the C/H/S values in an ISO's for the read operation INT 0x13 AH 0x02. So the C/H/S values in an ISO's
partition table are quite fictional and of few impact on boot loaders. partition table are quite fictional and of few impact on boot loaders.
More important seems to align partition ends to a consistent cylinder size, More important seems to align partition ends to a consistent cylinder size,
because some partition editors deduce their idea of disk geometry from there because some partition editors deduce their idea of disk geometry from there
and raise protest if they deem it inconsistent. and raise protest if they deem it inconsistent.
For maximum range of C/H/S addresses one may use sectors_per_head = 63 , For maximum range of C/H/S addresses one may use sectors_per_head = 63 ,
skipping to change at line 371 skipping to change at line 371
450 - 450 | part_type | Partition type indicates the purpose or kind of 450 - 450 | part_type | Partition type indicates the purpose or kind of
| | filesystem in the partition. | | filesystem in the partition.
| | | |
451 - 453 | ========== | C/H/S address of last absolute sector in partition 451 - 453 | ========== | C/H/S address of last absolute sector in partition
451 - 451 | end_head | Heads part of end address. 451 - 451 | end_head | Heads part of end address.
452 - 452 | end_c_s | Bits 0 to 5 : Sectors part of end address. 452 - 452 | end_c_s | Bits 0 to 5 : Sectors part of end address.
| Values: 1 to 63, not 0. | Values: 1 to 63, not 0.
| | Bits 6 to 7 : Bits 8 to 9 of cylinders part. | | Bits 6 to 7 : Bits 8 to 9 of cylinders part.
453 - 453 | end_cyl | Lower 8 bits of cylinders part of end address 453 - 453 | end_cyl | Lower 8 bits of cylinders part of end address
| | | |
454 - 457 | start_lba | LBA of first absolute sector in partiton. 454 - 457 | start_lba | LBA of first absolute sector in partition.
| | Block size is 512. Counting starts at 0. | | Block size is 512. Counting starts at 0.
| | | |
458 - 461 | num_blocks | Number of sectors in partition. 458 - 461 | num_blocks | Number of sectors in partition.
| | | |
462 - 477 | ========== | Partition Table Entry for partition 2 462 - 477 | ========== | Partition Table Entry for partition 2
| part_entr2 | 16 bytes. Format as with partition 1. | part_entr2 | 16 bytes. Format as with partition 1.
| | All 0 means that partition is unused/undefined. | | All 0 means that partition is unused/undefined.
| | | |
478 - 493 | ========== | Partition Table Entry for partition 3 478 - 493 | ========== | Partition Table Entry for partition 3
| part_entr3 | 16 bytes. See above. | part_entr3 | 16 bytes. See above.
skipping to change at line 716 skipping to change at line 716
| | DP_TRKFWD 0x00000004 | | DP_TRKFWD 0x00000004
| | /* forward to replacement track */ | | /* forward to replacement track */
48 - 51 | 0 | Bytes/sec for kernel stats 48 - 51 | 0 | Bytes/sec for kernel stats
52 - 55 | 0 | Max num retries on data error 52 - 55 | 0 | Max num retries on data error
56 - 59 | 0 | ms per word to xfer, for iostat 56 - 59 | 0 | ms per word to xfer, for iostat
60 - 71 | 0 | 6 parameter words for xylogics controllers 60 - 71 | 0 | 6 parameter words for xylogics controllers
| | | |
72 - 311 | ========== | Volume Directory with 15 entries of 16 bytes each 72 - 311 | ========== | Volume Directory with 15 entries of 16 bytes each
| | | |
72 - 87 | ========== | Volume Directory Entry 1 72 - 87 | ========== | Volume Directory Entry 1
72 - 79 | boot_name | Boot file basename, eventually padded by 0 to lenght 8 72 - 79 | boot_name | Boot file basename, eventually padded by 0 to length 8
80 - 83 | boot_block | ISO 9660 LBA of boot file * 4, i.e. in blocks of 512 80 - 83 | boot_block | ISO 9660 LBA of boot file * 4, i.e. in blocks of 512
84 - 87 | boot_bytes | File length in bytes 84 - 87 | boot_bytes | File length in bytes
| | | |
88 - 311 | see above | Volume Directory Entries 2 to 15 88 - 311 | see above | Volume Directory Entries 2 to 15
| | | |
312 - 504 | ========== | Partition Table with 16 entries of 12 bytes each 312 - 504 | ========== | Partition Table with 16 entries of 12 bytes each
| | | |
312 - 407 | 0 | Unused partition entries 1 to 8 312 - 407 | 0 | Unused partition entries 1 to 8
| | | |
408 - 419 | ========== | Partition Table Entry 9 for Volume Header 408 - 419 | ========== | Partition Table Entry 9 for Volume Header
skipping to change at line 1266 skipping to change at line 1266
scope of this document. scope of this document.
These boot images get announced by EL Torito boot catalog entries with These boot images get announced by EL Torito boot catalog entries with
Platform Id 0xef. Platform Id 0xef.
Newer SYSLINUX MBR templates begin by 32 bytes of machine code which are Newer SYSLINUX MBR templates begin by 32 bytes of machine code which are
intentionally non-essential: intentionally non-essential:
33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
They may be overwritten by other bytes which must not produce errors or They may be overwritten by other bytes which must not produce errors or
undesirable side effects when executed as x86 machine code. undesirable side effects when executed as x86 machine code.
The following 32 bytes from block 0 of an Apple Partiton Map (APM) are such The following 32 bytes from block 0 of an Apple Partition Map (APM) are such
harmless code. They stem from Fedora-LiveCD.iso by Matthew Garrett: harmless code. They stem from Fedora-LiveCD.iso by Matthew Garrett:
45 52 08 00 00 00 90 90 00 00 00 00 00 00 00 00 45 52 08 00 00 00 90 90 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
They do not depend on any properties of the ISO image or the information They do not depend on any properties of the ISO image or the information
that is described in the following text. that is described in the following text.
The layout of Block0 is constant: The layout of Block0 is constant:
Byte Range | Value | Meaning (all numbers are stored big endian) Byte Range | Value | Meaning (all numbers are stored big endian)
---------- | ---------- | ---------------------------------------------------- ---------- | ---------- | ----------------------------------------------------
 End of changes. 5 change blocks. 
5 lines changed or deleted 5 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)