Dustin Puryear
2003-Jul-07  14:01 UTC
FreeBSD 4.4-REL to FreeBSD 4.8-STABLE upgrade problem.
I sent this to freebsd-questions earlier via the newsgroup, but I just 
found out today that the list-to-news gateway has been down for half a 
month now. Any idea when it's going back up? Who was hosting that service 
anyway?
And now for the question..
I have a test server that is being used to test a 4.4-REL to 4.8-STABLE 
upgrade, and I've found the system will no longer boot unless I load a 
saved 4.4-REL kernel. The error I get is along the lines of:
Mounting root from ufs:/dev/ad4s1a
Root mount failed: 16
At first I got this error using a custom kernel configuration known as WWW, 
but after getting this error I built a new kernel based on GENERIC:
# cd /usr/src
# make update
# make buildkernel
# make installkernel
# reboot
Per /usr/src/UPDATING there was a change in the ATA drive at 4.5-REL, but 
it mentioned running mergemaster to create the new devices, and according 
to /usr/src/Makefile I shouldn't do that until I get past the current stage 
(which is where I am stuck):
(/usr/src/Makefile comments)
1. cd /usr/src
2. make buildworld
3. make buildkernel
4. make installkernel
5. reboot
6. mergemaster -p
This machine does have the Promise RAID-1 IDE controller that is built into 
a lot motherboards these days. Here is my dmesg output from this server on 
a successful boot:
ar0: 39266MB <ATA RAID1 array> [5005/255/63] subdisks:
   ad4: 39266MB <IC35L040AVER07-0> [79780/16/63] at ata2-master UDMA100
   ad6: 39266MB <IC35L040AVER07-0> [79780/16/63] at ata3-master UDMA100
However, this test machine mimics how the web servers were setup, and they 
do not use /dev/ar, but instead use /dev/ad0:
# cat /etc/fstab
# Device    Mountpoint  FStype  Options         Dump    Pass#
/dev/ad4s1b none        swap    sw              0       0
/dev/ad4s1a /           ufs     rw              1       1
/dev/ad4s1f /usr        ufs     rw              2       2
/dev/ad4s1e /var        ufs     rw              2       2
/dev/acd0c  /cdrom      cd9660  ro,noauto       0       0
proc        /proc       procfs  rw              0       0
I am thinking that in 4.5-REL or newer (we are trying to upgrade to 4.8) 
that things might have changed? Again, /usr/src/UPDATING mentions some 
changes to the ATA code, but nothing specific to our configuration.
Any ideas here?
Following are the partition and disklabel information for /dev/ad4 and 
/dev/ar0:
# fdisk /dev/ad4
******* Working on device /dev/ad4 *******
parameters extracted from in-core disklabel are:
cylinders=5005 heads=255 sectors/track=63 (16065 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=5005 heads=255 sectors/track=63 (16065 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
     start 63, size 80405262 (39260 Meg), flag 80 (active)
         beg: cyl 0/ head 1/ sector 1;
         end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
# disklabel -r ad4s1
# /dev/ad4s1c:
type: ESDI
disk: ad4s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 5004
sectors/unit: 80405262
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:   204800        0    4.2BSD     1024  8192    16   # (Cyl.    0 - 12*)
   b:  1056032   204800      swap                        # (Cyl.   12*- 78*)
   c: 80405262        0    unused        0     0         # (Cyl.    0 - 5004*)
   e:    40960  1260832    4.2BSD     1024  8192    16   # (Cyl.   78*- 81*)
   f: 79103470  1301792    4.2BSD     1024  8192    16   # (Cyl.   81*- 5004*)
# fdisk /dev/ar0
******* Working on device /dev/ar0 *******
parameters extracted from in-core disklabel are:
cylinders=5005 heads=255 sectors/track=63 (16065 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=5005 heads=255 sectors/track=63 (16065 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
     start 63, size 80405262 (39260 Meg), flag 80 (active)
         beg: cyl 0/ head 1/ sector 1;
         end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
# disklabel -r ar0
# /dev/ar0c:
type: ESDI
disk: ad4s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 5004
sectors/unit: 80405262
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:   204800        0    4.2BSD     1024  8192    16   # (Cyl.    0 - 12*)
   b:  1056032   204800      swap                        # (Cyl.   12*- 78*)
   c: 80405262        0    unused        0     0         # (Cyl.    0 - 5004*)
   e:    40960  1260832    4.2BSD     1024  8192    16   # (Cyl.   78*- 81*)
   f: 79103470  1301792    4.2BSD     1024  8192    16   # (Cyl.   81*- 5004*)
---
Dustin Puryear <dustin@puryear-it.com>
Puryear Information Technology, LLC <http://www.puryear-it.com>
Providing expertise in the management, integration, and
security of Windows and UNIX systems, networks, and applications.
On July 7, 2003 01:57 pm, Dustin Puryear wrote:> I have a test server that is being used to test a 4.4-REL to > 4.8-STABLE upgrade, and I've found the system will no longer boot > unless I load a saved 4.4-REL kernel. The error I get is along the > lines of:> Mounting root from ufs:/dev/ad4s1a > Root mount failed: 16> Per /usr/src/UPDATING there was a change in the ATA drive at 4.5-REL, > but it mentioned running mergemaster to create the new devices, and > according to /usr/src/Makefile I shouldn't do that until I get past > the current stage (which is where I am stuck):> (/usr/src/Makefile comments) > 1. cd /usr/src > 2. make buildworld > 3. make buildkernel > 4. make installkernel > 5. reboot > 6. mergemaster -pThere's your problem. You should run "mergemaster -p" as step 2. The -p means "Pre-buildworld". -- Freddie Cash District HelpDesk / Network Admin fcash@sd73.bc.ca helpdesk@sd73.bc.ca (250) 374-0679 ext. 219
Dustin Puryear
2003-Jul-07  14:23 UTC
FreeBSD 4.4-REL to FreeBSD 4.8-STABLE upgrade problem.
At 01:59 PM 7/7/2003 -0700, Freddie Cash wrote:> > (/usr/src/Makefile comments) > > 1. cd /usr/src > > 2. make buildworld > > 3. make buildkernel > > 4. make installkernel > > 5. reboot > > 6. mergemaster -p > >There's your problem. You should run "mergemaster -p" as step 2. The >-p means "Pre-buildworld".This was suggested on another list actually. Unfortunately, either you are wrong or the FreeBSD docs are wrong. In /usr/src/Makefile the steps are listed in the order I show above. Also, per the mergemaster manpage the -p option is used to update the "password database and recreate /etc/passwd." Ultimately, I think that this is an issue with the kernel recognizing the storage system, but I could be wrong! Please do correct me if I am. Quick reminder for others: The 4.4-REL kernel is able to mount / fine, but 4.8-STABLE is not. This may either be a symptom of another problem, or the immediate problem. Is this off-topic for freebsd-stable? --- Dustin Puryear <dustin@puryear-it.com> Puryear Information Technology, LLC <http://www.puryear-it.com> Providing expertise in the management, integration, and security of Windows and UNIX systems, networks, and applications.