Can I Boot From ad1? How?

Drew Tomlinson drew at mykitchentable.net
Sat Dec 27 08:16:07 PST 2003


I have a 4.9 system that has two identical 850 MB drives and a 4 GB drive.
The system boots from one of the 850 MB drives (ad0s1a) and uses a 50 MB
slice (?) for root.  The rest of this drive is unused.  The 4 GB drive
(ad2s1e) contains /usr.  The other standard filesystems such at /var, /tmp,
etc. are symlinked to /usr/* as suggested in The Complete FreeBSD for simple
systems.

Anyway, the system is sometimes inaccessible due to a flurry of hard errors
on ad0.  The only way into the system is to power off/on and then let fsck
sort things out.  Then the system will run fine for days and even weeks but
it will eventually happen again.  I suspect a complete disk failure is
eminent.

Thus, I would like to use ad1 (the unused 850 MB drive) in place of ad0 but
instead of limiting the root partition to 50 MB, I'd like to just use the
whole disk.  I have followed instructions from man and web pages in an
attempt to get this going.  I used /stand/sysinstall to fdisk and added the
boot flag.  Here's the current fdisk output:

blacksheep# fdisk -s ad1
/dev/ad1: 6616 cyl 4 hd 63 sec
Part        Start        Size Type Flags
   1:           0     1667232 0xa5 0x80

Then I used /stand/sysinstall to disklabel and newfs.  Here's the current
disklabel output:

blacksheep# disklabel ad1
# /dev/ad1c:
type: ESDI
disk: ad1s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 4
sectors/cylinder: 252
cylinders: 6616
sectors/unit: 1667232
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 bps/cpg]
  a:  1667232        0    4.2BSD     2048 16384    90   # (Cyl.    0 - 6615)
  c:  1667232        0    unused        0     0         # (Cyl.    0 - 6615)

Next, I mounted ad1s1a and used the dump/restore example from the FAQ to
copy the contents of ad0s1a to ad1s1a.  Now for the test...

I read the boot man page and surmised that the way to boot from ad1 was to
use '1:ad(0,a)/kernel' at the boot prompt but I get this error:

Disk error 0x1 (lba=0x47a14bc0)
Invalid format

I've never attempted anything like this before so it's very possible I'm
missing something basic.  Any ideas?

Thanks,

Drew



More information about the freebsd-questions mailing list