creating bootable cdroms

From: Jim Wright <jwright_at_phy.ucsf.edu>
Date: Tue, 31 Oct 1995 21:20:58 -0800 (PST)

Hello wizards. I'm faced with upgrading a couple dozen Alphas from
2.0 to 3.2C. All of them mount their /usr partition from a main
server. This worked with little modification under 2.0, but with
3.2C it seems a bunch of stuff early in the boot sequence requires
the use of /usr programs. But that is a rant for another day.

I want to create a bootable CD-ROM which will have a filesystem
dump for / and /var which I can restore to the various workstations
plus other tools and custom configuration scripts. I will then be
able to go to each machine and quickly install the new operating
system.

My problem is in getting a CD-ROM which is bootable. I've built
up an old RZ24 disk with everything I want on the CD-ROM. I can
boot from it, and I get / as a memory file system with the disk
mounted read-only in a subdirectory. (Sound similar to the OSF/1
distribution CD-ROM? :) But when I transfer this to CD-ROM, I get
an unmountable CD-ROM.

Any hints or advice on this?


Some details...

% /usr/sbin/mount -t ufs -o ro /dev/rz4c /cdrom
/dev/rz4c on /cdrom: No valid filesystem exists on this partition

% /usr/sbin/fsck -n -o /dev/rz4c
/sbin/ufs_fsck -n -o /dev/rz4c
** /dev/rrz4c (NO WRITE)
** Last Mounted on /IMAGE
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
160 files, 34763 used, 162635 free (235 frags, 20300 blocks, 0.1% fragmentation)

% /usr/sbin/disklabel rrz4c
# /dev/rrz4c:
type: SCSI
disk: rz24
label:
flags:
bytes/sector: 512
sectors/track: 38
tracks/cylinder: 8
sectors/cylinder: 304
cylinders: 1348
sectors/unit: 409792
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0

8 partitions:
# size offset fstype [fsize bsize cpg]
  a: 131072 0 unused 1024 8192 # (Cyl. 0 - 431*)
  b: 262144 131072 unused 1024 8192 # (Cyl. 431*- 1293*)
  c: 409792 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 1347)
  d: 0 0 unused 1024 8192 # (Cyl. 0 - -1)
  e: 0 0 unused 1024 8192 # (Cyl. 0 - -1)
  f: 278720 131072 unused 1024 8192 # (Cyl. 431*- 1347*)
  g: 16576 393216 unused 1024 8192 # (Cyl. 1293*- 1347*)
  h: 0 0 unused 1024 8192 # (Cyl. 0 - -1)


I can boot from this CD-ROM -- valid boot block, loads /vmunix, etc. -- but
when it tries to mount the CD-ROM as a filesystem it chokes and dies.

I've tried fudging the disklabel on the hard drive so that when I create
a CD-ROM the new disklabel has the same info as the OSF/1 distribution
disc. Still no joy.

% cat mymount.c
#include <stdio.h>
#include <errno.h>
#include <sys/mount.h>

main()
{
    int rtrn;
    struct ufs_args arg;

    arg.fspec = "/dev/rz4c";
    arg.exflags = M_EXRDONLY;
    arg.exroot = 0;

    rtrn = mount(MOUNT_UFS, "/cdrom", M_RDONLY, &arg);
    printf ("mount returned %d\n", rtrn);
    perror ("");
}
% cc -o mymount mymount.c
% ./mymount
mount returned -1
Invalid argument


Looking in mount(2) I see

  The following errors can occur for a UFS file system mount:
  [EINVAL] The superblock for the file system had a bad magic number or an
            out-of-range block size.


I seem to be mighty damn close, but missing something. What?


Jim Wright Keck Center for Integrative Neuroscience
jwright_at_phy.ucsf.edu Box 0444, Room HSE-802
voice 415-502-4874 513 Parnassus Ave
fax 415-502-4848 UCSF, San Francisco, CA 94143-0444
Received on Wed Nov 01 1995 - 06:39:36 NZDT

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:46 NZDT