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.