summaryrefslogtreecommitdiff
path: root/doc/genisoimage/README.sunx86boot
diff options
context:
space:
mode:
Diffstat (limited to 'doc/genisoimage/README.sunx86boot')
-rw-r--r--doc/genisoimage/README.sunx86boot77
1 files changed, 77 insertions, 0 deletions
diff --git a/doc/genisoimage/README.sunx86boot b/doc/genisoimage/README.sunx86boot
new file mode 100644
index 0000000..2286a57
--- /dev/null
+++ b/doc/genisoimage/README.sunx86boot
@@ -0,0 +1,77 @@
+# @(#)README.sunx86boot 1.3 05/02/25 Copyright 2003 J. Schilling
+# Edited for program name change by Eduard Bloch, 2006
+
+A Solaris x86 Boot CD looks the like this:
+
+- A PC type fdisk partition map is in CD sector 0 at offset 0
+ This fdisk partition map contains a single Solaris 0x82 type
+ partition starting at CD sector 0 at offset 512.
+
+- A SVr4 disk partition label is at CD sector 0 at offset 1024.
+ This equates the usual 512 byte offset to the primary partition
+ used by SVr4.
+
+ This SVr4 partition label defines:
+
+ - Partition 0 to contain a usually UFS type boot filesystem
+
+ - Partition 1 to map the ISO-9660 filesystem.
+
+ This seems to be a conceptual bug from Sun, as it is
+ impossible to mount this partition because this partition
+ would point outside the primary fdisk partition type 0x82
+
+ - Partition 2 maps the whole CD.
+
+
+A boot CD created by Sun contains a master boot record in CD sector 0 offset 0.
+The size if this MBR is 0x1BE (446 decimal) as usual on PCs.
+
+At CD sector 0 offset 512, there is a "primary boot sector". The MBR assumes
+that is always gets loaded together with the ""primary boot sector".
+
+The El-Torito map for this CD defines a "no-emulation" boot sitting at CD sector 0
+and being 4 512 byte sectors in size. This covers the 1024 bytes of above
+boot code. Note that genisoimage will not put the no-emulation boot at sector 0
+as it keeps the boot inside the area used for other file content data.
+
+At CD sector 1..15, there is a secondary boot code that understands UFS and tries
+to boot from UFS slice 0. If you like to boot from different filesystem types,
+you need to replace this boot code. The real size used by the secondary boot
+is 31 x 512 bytes == 15872 bytes.
+
+To get hold of the three boot files, do the following with e.g. a Solaris 10
+boot CD:
+
+readcd dev=1,0 f=CD.out sectors=0-32
+
+Replace dev=1,0 with the apropriate values for your system (see readcd -scanbus).
+
+sdd if=CD.out bs=446 count=1 of=mboot
+sdd if=CD.out count=1 iseek=512 of=pboot
+sdd if=CD.out count=60 iseek=2048 of=bootblk
+
+To create the needed files for the misofs command line example below, do the
+following:
+
+sdd if=mboot -fill of=eltoritoboot
+cat pboot >> eltoritoboot
+
+sdd -inull bs=2k count=1 of=genboot
+cat bootblk >> genboot
+
+If you like the CD to look more similar to the original Sun CDs, use:
+
+cp eltoritoboot genboot
+sdd -inull bs=1k count=1 >> genboot
+cat bootblk >> genboot
+
+If you like to create a CD similar to the Solaris 10 boot CD, do the following:
+
+mkdir isodir
+star -cPM -C /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s2 . | star -xp -xdot -C isodir
+cp eltoritoboot isodir/.bootimage
+
+genisoimage -G genboot -no-emul-boot -b .bootimage -c .catalog -R -o bootcd.iso -sunx86-boot /vol/dev/dsk/c1t1d0/multi_icd_sol_10_x86/s0 isodir/
+
+