Machine doesn't boot after switching from Linux to FreeBSD

From: Chris Zumbrunn (chris_at_zumbrunn.com)
Date: 12/05/04

  • Next message: DanGer: "Re[2]: (no subject)"
    Date: Sun, 5 Dec 2004 12:24:29 +0100
    To: freebsd-questions@freebsd.org
    
    

    I'm trying to switch a Linux system to FreeBSD. I have two existing
    FreeBSD boxes running on the same kind of hardware and my approach was
    to rsynch the disk contents from one of those existing configs and just
    change the IP configuration in /etc/rc.conf.

    After fdisk, disklabel, and newfs for the disks and the rsync for the
    data I am left with a system that won't boot. When attempting to boot
    from the local disks I can't ping the system anymore, when net-booting
    back into rescue mode I see that nothing was written to
    /var/messages/log. So, I guess this looks like a bootstrapping problem.
    The FreeBSD config that I'm rsynching to the new box is FreeBSD
    4.9-RELEASE. Both the existing machine and the new machine have the
    same kind of disks in them:

    ar0: 117246MB <ATA RAID1 array> [14946/255/63] status: READY subdisks:
      0 READY ad0: 117246MB <Maxtor 6Y120L0> [238216/16/63] at ata0-master
    PIO4
               1 READY ad2: 117246MB <Maxtor 6Y120L0> [238216/16/63] at
    ata1-master

    The full dmesg output that I get after net-booting from the rescue disk
    I included on the very bottom of this message.

    Here is what I did before expecting a bootable machine:

         #> dd if=/dev/zero of=/dev/ar0 bs=512 count=32
         #> fdisk -BI ar0
         #> dd if=/dev/zero of=/dev/ar0s1 bs=512 count=32
         #> disklabel -w -B ar0s1 auto
         #> disklabel -e ar0s1
         #> newfs ar0s1a
         #> mount /dev/ar0s1a /mnt
         ...followed by a rsync to /mnt/ from / of the existing machine
         ...followed by editing the IP configuration in /mnt/etc/rc.conf
         ...followed by attempting to boot from the local disks

    But before I got that far I had some problems for which I found the
    following work-arounds:

    Initial problem:

         #> fdisk -BI ar0
         fdisk: can't get disk parameters on /dev/ar0; supplying dummy ones
         ******* Working on device /dev/ar0 *******
         fdisk: invalid fdisk partition table found
         fdisk: /boot/mbr: length must be a multiple of sector size
         #> disklabel -w -B ar0s1 auto
         cylinders/unit 0
         #> disklabel -e ar0s1
         disklabel: ioctl DIOCGDINFO: Invalid argument

    I created a fdisk.conf file as follows:

         g c14946 h255 s63
         p 1 165 0 240107490
         p 2 0 0 0
         p 3 0 0 0
         p 4 0 0 0
         a 1

    ...and tried:

         #> fdisk -f ./fdisk.conf ar0
         fdisk: can't get disk parameters on /dev/ar0; supplying dummy ones
         ******* Working on device /dev/ar0 *******
         fdisk: invalid fdisk partition table found
         fdisk: /boot/mbr: length must be a multiple of sector size

    I net-booted into the alternative Linux-based rescue disk and did the
    following with both fdisk /dev/hda and fdisk /dev/hdc in order to get
    rid of the existing Linux partitioning and setup:

    Created a new empty DOS partition table:

         Disk /dev/hda: 255 heads, 63 sectors, 14946 cylinders
         Units = cylinders of 16065 * 512 bytes

            Device Boot Start End Blocks Id System
         /dev/hda1 1 14946 120053713+ a5 FreeBSD

    And created a bsd disklabel:

         Reading disklabel of /dev/hda1 at sector 64.
         /dev/hda1 contains no disklabel.
         Do you want to create a disklabel? (y/n) y
         # /dev/hda1 :
         type: ST506
         disk:
         label:
         flags:
         bytes/sector: 512
         sectors/track: 63
         tracks/cylinder: 255
         sectors/cylinder: 16065
         cylinders: 14946
         rpm: 3600
         interleave: 1
         trackskew: 0
         cylinderskew: 0
         headswitch: 0 # milliseconds
         track-to-track seek: 0 # milliseconds
         drivedata: 0
         4 partitions:
         # start end size fstype [fsize bsize cpg]
           c: 1* 14946 14945* unused 0 0
           d: 1 14946 14946 unused 0 0

    Then I net-booted back into the FreeBSD-based rescue mode and still got
    stuck first on "fdisk -BI ar0" but this time was able to do "fdisk -f
    ./fdisk.conf ar0":

         #> dd if=/dev/zero of=/dev/ar0 bs=512 count=32
         dd: /dev/ar0: Read-only file system
         2+0 records in
         1+0 records out
         512 bytes transferred in 0.001042 secs (491415 bytes/sec)
         #> fdisk -BI ar0
         ******* Working on device /dev/ar0 *******
         fdisk: invalid fdisk partition table found
         #> fdisk -f ./fdisk.conf ar0
         ******* Working on device /dev/ar0 *******
         #> fdisk -BI ar0
         ******* Working on device /dev/ar0 *******
         #> dd if=/dev/zero of=/dev/ar0s1 bs=512 count=32
         dd: /dev/ar0s1: Read-only file system
         2+0 records in
         1+0 records out
         512 bytes transferred in 0.001049 secs (488064 bytes/sec)
         #> disklabel -w -B ar0s1 auto
         #> disklabel -e ar0s1

    I edited the disklabel and changed it from:

         # /dev/ar0s1c:
         type: unknown
         disk: amnesiac
         label:
         flags:
         bytes/sector: 512
         sectors/track: 63
         tracks/cylinder: 255
         sectors/cylinder: 16065
         cylinders: 14945
         sectors/unit: 240107427
         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]
           c: 240107427 0 unused 0 0 # (Cyl. 0 -
    14945*)

    ...to the config I'm successfully using on other boxes:

         # /dev/ar0s1:
         type: ESDI
         disk: ar0s1
         label:
         flags:
         bytes/sector: 512
         sectors/track: 63
         tracks/cylinder: 255
         sectors/cylinder: 16065
         cylinders: 14945
         sectors/unit: 240107427
         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: 240107427 0 4.2BSD 2048 16384 89 # (Cyl. 0
    - 14945*)
           c: 240107427 0 unused 0 0 # (Cyl. 0
    - 14945*)

    After that I was able to construct a new file system:

         #> newfs ar0s1a
         Warning: Block size and bytes per inode restrict cylinders per
    group to 89.
         Warning: 96 sector(s) in last cylinder unallocated
         /dev/ar0s1a: 240107424 sectors in 58620 cylinders of 1 tracks,
    4096 sectors
                 117240.0MB in 659 cyl groups (89 c/g, 178.00MB/g, 22528 i/g)
         super-block backups (for fsck -b #) at:
         32, 364576, 729120, 1093664, 1458208, 1822752, 2187296, 2551840,
    2916384, 3280928, 3645472,
         4010016, 4374560, 4739104, 5103648, 5468192, 5832736, 6197280,
    6561824, 6926368, 7290912, 7655456,
         .....
         238047264, 238411808, 238776352, 239140896, 239505440, 239869984

    And I was able to mount it and rsynch the disk contents from a matching
    existing freebsd machine (FreeBSD 4.9-RELEASE).

         #> mount /dev/ar0s1a /mnt
         .....
         #> ll /mnt
         total 8472
         -rw-r--r-- 1 root wheel 802 Oct 27 2003 .cshrc
         -rw-r--r-- 1 root wheel 251 Oct 27 2003 .profile
         -r--r--r-- 1 root wheel 4735 Oct 27 2003 COPYRIGHT
         drwxr-xr-x 2 root wheel 1024 May 29 2004 bin
         drwxr-xr-x 3 root wheel 512 May 29 2004 boot
         drwxr-xr-x 2 root wheel 512 May 29 2004 cdrom
         lrwxrwxrwx 1 root wheel 10 Dec 4 18:52 compat ->
    usr/compat
         drwxr-xr-x 3 root wheel 18432 Sep 12 14:19 dev
         drwxr-xr-x 2 root wheel 512 May 29 2004 dist
         drwxr-xr-x 16 root wheel 2048 Nov 30 09:10 etc
         lrwxrwxrwx 1 root wheel 9 Dec 4 19:53 home -> /usr/home
         -r-xr-xr-x 1 root wheel 4264923 Jun 9 09:55 kernel
         -r-xr-xr-x 1 root wheel 4264923 Jun 9 09:55 kernel.GENERIC
         drwxrwxrwt 2 root wheel 512 Jul 2 17:28 lost+found
         drwxr-xr-x 2 root wheel 512 Oct 27 2003 mnt
         drwxr-xr-x 2 root wheel 4096 Jul 2 15:55 modules
         dr-xr-xr-x 60 root wheel 1024 Dec 4 19:51 proc
         drwxr-xr-x 3 root wheel 512 Aug 19 18:40 root
         drwxr-xr-x 2 root wheel 2048 May 29 2004 sbin
         drwxr-xr-x 4 root wheel 1024 May 29 2004 stand
         lrwxrwxrwx 1 root wheel 11 Dec 4 19:54 sys -> usr/src/sys
         drwxrwxrwt 5 root wheel 2048 Dec 4 17:30 tmp
         drwxr-xr-x 21 root wheel 512 Oct 30 18:46 usr
         drwxr-xr-x 21 root wheel 512 Nov 29 08:54 var

    I edited /mnt/etc/rc.conf to change the ifconfig to the different IP
    address.

    But attempting to boot from the local disks fails. I can't ping the
    machine anymore and don't know where it is hanging since I only have
    remote access. After net-booting back into the rescue mode it doesn't
    look like anything was written to /mnt/var/log/messages during the
    local boot attempt.

    How do I verify that the bootstrapping is configured right? Or where
    else am I going wrong?

    Thanks for any tips!

    Chris

    dmesg output after net-booting from the rescue disk:

    Copyright (c) 1992-2003 The FreeBSD Project.
    Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
             The Regents of the University of California. All rights
    reserved.
    FreeBSD 4.9-STABLE #0: Sat May 29 16:12:36 CEST 2004
         mw@mailstore02.vianetworks.ch:/data/src/sys/compile/NFSROOT
    Timecounter "i8254" frequency 1193182 Hz
    CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz (2790.72-MHz 686-class CPU)
       Origin = "GenuineIntel" Id = 0xf29 Stepping = 9
        
    Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE
    ,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
    real memory = 1073479680 (1048320K bytes)
    avail memory = 1039429632 (1015068K bytes)
    Preloaded elf kernel "kernel" at 0xc054c000.
    Warning: Pentium 4 CPU: PSE disabled
    Pentium Pro MTRR support enabled
    md0: Malloc disk
    Using $PIR table, 11 entries at 0xc00f28c0
    npx0: <math processor> on motherboard
    npx0: INT 16 interface
    pcib0: <Intel 82845 Host to PCI bridge> on motherboard
    pci0: <PCI bus> on pcib0
    agp0: <Intel 82845 host to AGP bridge> mem 0xf8000000-0xfbffffff at
    device 0.0 on pci0
    pcib1: <Intel 82845 PCI-PCI (AGP) bridge> at device 1.0 on pci0
    pci1: <PCI bus> on pcib1
    pcib2: <Intel 82801BA/BAM (ICH2) Hub to PCI bridge> at device 30.0 on
    pci0
    pci2: <PCI bus> on pcib2
    fxp0: <Intel 82550 Pro/100 Ethernet> port 0xdf00-0xdf3f mem
    0xfeaa0000-0xfeabffff,0xfeafe000-0xfeafefff irq 11 at device 12.0 on
    pci2
    fxp0: Ethernet address 00:11:11:15:a7:ce
    inphy0: <i82555 10/100 media interface> on miibus0
    inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    fxp1: <Intel 82550 Pro/100 Ethernet> port 0xde80-0xdebf mem
    0xfea80000-0xfea9ffff,0xfeafd000-0xfeafdfff irq 10 at device 13.0 on
    pci2
    fxp1: Ethernet address 00:11:11:15:a7:d2
    inphy1: <i82555 10/100 media interface> on miibus1
    inphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    pci2: <ATI Mach64-GR graphics accelerator> at 15.0 irq 11
    isab0: <Intel 82801BA/BAM (ICH2) PCI to LPC bridge> at device 31.0 on
    pci0
    isa0: <ISA bus> on isab0
    atapci0: <Intel ICH2 ATA100 controller> port 0xffa0-0xffaf at device
    31.1 on pci0
    ata0: at 0x1f0 irq 14 on atapci0
    ata1: at 0x170 irq 15 on atapci0
    uhci0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> port
    0xef40-0xef5f irq 10 at device 31.2 on pci0
    usb0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> on uhci0
    usb0: USB revision 1.0
    uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
    uhub0: 2 ports with 2 removable, self powered
    pci0: <unknown card> (vendor=0x8086, dev=0x2443) at 31.3 irq 9
    uhci1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> port
    0xef80-0xef9f irq 6 at device 31.4 on pci0
    usb1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> on uhci1
    usb1: USB revision 1.0
    uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
    uhub1: 2 ports with 2 removable, self powered
    orm0: <Option ROMs> at iomem
    0xc0000-0xc7fff,0xc8000-0xc8fff,0xc9000-0xc9fff,0xca000-0xcafff on isa0
    pmtimer0 on isa0
    fdc0: cannot reserve interrupt line
    atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
    vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on
    isa0
    sc0: <System console> at flags 0x100 on isa0
    sc0: VGA <16 virtual consoles, flags=0x300>
    sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
    sio0: type 16550A
    sio1 at port 0x2f8-0x2ff irq 3 on isa0
    sio1: type 16550A
    ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
    ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
    plip0: <PLIP network interface> on ppbus0
    lpt0: <Printer> on ppbus0
    lpt0: Interrupt-driven port
    ppi0: <Parallel I/O> on ppbus0
    ar0: 117246MB <ATA RAID1 array> [14946/255/63] status: READY subdisks:
      0 READY ad0: 117246MB <Maxtor 6Y120L0> [238216/16/63] at ata0-master
    PIO4
               1 READY ad2: 117246MB <Maxtor 6Y120L0> [238216/16/63] at
    ata1-master PIO4
              Sending DHCP Discover packet from interface fxp0
    (00:11:11:15:a7:ce)
    Sending DHCP Discover packet from interface fxp1 (00:11:11:15:a7:d2)
    Sending DHCP Discover packet from interface faith0
    (00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00)
    Received DHCP Offer packet on fxp0 from X.X.X.12 (accepted) (no root
    path)
    Received DHCP Offer packet on fxp0 from X.X.X.12 via X.X.X.1 (ignored)
    (no root path)
    Received DHCP Offer packet on fxp0 from X.X.X.12 via X.X.X.2 (ignored)
    (no root path)
    Sending DHCP Request packet from interface fxp0 (00:11:11:15:a7:ce)
    Received DHCP Ack packet on fxp0 from X.X.X.12 (accepted) (got root
    path)
    Received DHCP Ack packet on fxp0 from X.X.X.12 via X.X.X.1 (accepted)
    (got root path)
    Received DHCP Ack packet on fxp0 from X.X.X.12 via X.X.X.2 (accepted)
    (got root path)
    DHCP timeout for interface fxp1
    DHCP timeout for interface faith0
    fxp0 at X.X.X.237 server X.X.X.12 via gateway X.X.X.2 boot file pxeboot
    subnet mask 255.255.255.240 router X.X.X.225 rootfs
    X.X.X.12:/export/bsdroot/X.X.X.237 hostname deployzone2
    Adjusted interface fxp0
    Shutdown interface fxp1
    Shutdown interface faith0
    Mounting root from nfs:X.X.X.12:/export/bsdroot/X.X.X.237
    missing device name
    setrootbyname failed
    NFS ROOT: X.X.X.12:/export/bsdroot/X.X.X.237
    arplookup X.X.X.12 failed: host is not on local network

    _______________________________________________
    freebsd-questions@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-questions
    To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"


  • Next message: DanGer: "Re[2]: (no subject)"

    Relevant Pages