IRIX and Software

Burning Distros to CD

I've tried reading how to from comp.sys.sgi and, apart from the posters not being able to agree on anything, does anyone here have a "simple" explanation on how to burn a disk to get the first installation disk to boot!

Any help appreciated!
I use gcombust et al. ( http://freeware.sgi.com ) to burn CDs. It has a check box in the Options GUI for Bootable CD...haven't tried it though.
That bootable cd option in gCombust is, I'm sure, just enabling the El Torito (like the nachos!) extension, which means you can put a floppy disk image as a boot-up (loaded in to ram like off of a floppy and booted) - it's used mainly by PC's.

For installation CD's, I *THINK* they're just a standard EFS cd, with /dist, and /dist/miniroot, and it'll look in /dist/miniroot for the proper kernel and what not (and /stand might also have to be there)
When I backed up my IRIX disks, I used linux. dd the raw device to a file, and use it as you would an ISO.
--
lisa
lisp wrote: When I backed up my IRIX disks, I used linux. dd the raw device to a file, and use it as you would an ISO.


I think the problem was to make bootable CDs from the files downloadable from sgi.com. I for one would like to have bootable 6.5.21 CDs. Has anyone here tried that (with any release)? I think the method to create bootable CDs has been discussed on mailto:[email protected] or the debian mips list. (don't worry, I'm not trying to run linux on my O2, I've got some cobalt computers that have mips CPUs)
I've read the method involves creating an EFS formatted hard disk partition of equal size to a CD and setting it up as a bootable IRIX volume, similar to this method:

http://www.sgiaddict.net/tech/efs_cds/

The above example unfortunately doesn't cover making the CD bootable since more partitions are needed for this ... the extact structure could probably be copied from an existing bootable CD and applied to the hard disk template. The trick with EFS CDs is that they are built exactly like a hard drive; same partition table and layout - this let older SGI gear deal with them (they were read like hard drive platters). Unfortunately this makes it extremely difficult to master as regular ISO CDs are not built this way. To further complicate matters, I believe the downloadable archives are missing some bits required to boot as well (the kernel image for one), so you'd need to set that up yourself on the bootable EFS hard drive partition.

The easiest way to boot from the downloadable archives is via netboot.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
If there are all the files to boot of the net, one should be able to make a bootable CD as well, after all, you can boot of the harddisk after you have installed it. Once you have the files on an EFS partition, you probably have to install sash etc. in the volume header. What else would be required?
Hm... after reading comp.sys.sgi.* for a while it seems that making bootable EFS CDs actually involves at least two if not three partitions, that are then collated into one diskimage as a function of block length... seems mighty coomplicated...
Point is.... for users below 6.5.18 who don´t have UDF read capability it´s really the only option, because ISO just s***s for long filenames and attributes... why is this always soooo complicated...?
It's time like these I have to say, net-booting is your friend.
It really makes things a lot easier if you have a seperate machine you can run bootp, tftp, and nfs on.
Thanks for your input. I've always been netbooting live updates but have always been curious as to how to....... Wonder how SGI do it for their CD's?
I´m sure they have a borg that churns them out for ´em.
Hakimoto wrote: I´m sure they have a borg that churns them out for ´em.


It turns out to be easy. Follow the advice at sgiaddict, but add the following steps:

resize the volume header with "fx -x" to about 22 MB, while you're there, set the boot info so that boot=swap=0.
6.5.21, CD 1 needs a 600MB filesystem.
Grab sashARCS and sash64 from the eoe_ files. while you're at it, get the fx and stand/ide files as well and rename them apropriately. (hey, how does that work without dd??? There just must be a way with inst).

use hexedit to look into the "sa" file that came with the overlay

Code: Select all

00000000   AC ED 12 34  86 29 7B E4  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ...4.){.................
00000018   00 00 00 00  00 00 00 00  73 61 73 68  36 34 00 00  00 00 00 00  00 00 00 00  ........sash64..........
00000030   00 00 00 01  00 04 0F 10  73 61 73 68  41 52 43 53  00 00 00 00  00 00 00 00  ........sashARCS........
00000048   00 00 02 09  00 05 3A 04  6D 72 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ......:.mr..............
00000060   00 00 04 A7  01 24 F8 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .....$..................


There's the miniroot at offset (512*0x04A7) and it's 0x0124F800 bytes long. Extract with dd. Use bc with ibase=16 to convert if you have nothing else at hand. For 6.5.21 dd if=sa bs=1 skip=$[1191*512] count=19200000 of=../mr works, and dd if=sa bs=512 skip=$[1191] count=37500 of=../mr is quite a bit faster.

Install sash* and mr in the volume header (should look like this afterwards):

Code: Select all

# dvhtool /dev/rdsk/dks0d2vh

Command? (read, vd, write, or quit): vd
(d FILE, a UNIX_FILE FILE, c UNIX_FILE FILE, g FILE UNIX_FILE or l)?
l

Current contents:
File name        Length     Block #
sgilabel            512           2
sash64           266240           3
sashARCS         324096         523
mr             19200000        1193

(d FILE, a UNIX_FILE FILE, c UNIX_FILE FILE, g FILE UNIX_FILE or l)?


then drop the fx.* and ide.* files in the /stand directory, everything else goes into /dist.

You may have to make .IM and .IM_XXXX files similar to this:

Code: Select all

id = "XXXX"

# Please do NOT delete this file!
# This file serves to uniquely identify this CD

version = "1"
title = "IRIX 6.5.21 Installation Tools and Overlays (1-of-3) August 2003"
part_num = "812-0818-021"
sub_id = "0"


I chose XXXX=2664, but I have no Idea how SGI makes them up.

dd as in sgiaddict's instructions, then just cdrecord -v myefsimage.img

At least that seems works for me, I just booted to the miniroot install ;-)
Canavan, thanks a million for that... that was really comprehensive... :)
Some more things one shouldn't forget when making efs CDs:

remove /lost+found, it's of no use on a CD
umount the filesystem before dd-ing it into your image
you can also do (dd if=dev/rdsk/dks0d2vh bs=4096 && dd if=/dev/rdsk/dks0d2s7 bs=4096) | cdrecord -v - to get by without an image
use mkfs to delete the partition before starting the next CD instead of rm -rf, since this will cause the files copied there afterwards not to be as fragmented.