Re: About my problem

From: Teilhard Knight (teilhk_at_Phreaker.net)
Date: 05/14/03

  • Next message: george donnelly: "FreeBSD Training in Spanish"
    To: Matthew Seaman <m.seaman@infracaninophile.co.uk>, FreeBSD <freebsd-questions@freebsd.org>
    Date: 14 May 2003 11:05:50 -0500
    
    

    On Wed, 2003-05-14 at 04:38, Matthew Seaman wrote:
    > On Wed, May 14, 2003 at 02:18:22AM -0500, Teilhard Knight wrote:
    > > For those who do not know what I am talking about, this is what is
    > > happening to me:
    > >
    > >
    > > I have compiled my kernel. Everything seems to be all right,
    > > except that on boot it cannot mount root.
    > >
    > > It displays: "mounting root from ufs:ad2s2a", and a failure message.
    > >
    > > Now, I am left at boot with an inquire for a manual root filesystem
    > > specification., like this:
    > >
    > > <fstype><device> mount <device> using filesystem <fstype>
    > >
    > > eg. ufs:/dev/da0s1a
    > >
    > > ? List valid disk boot devices
    > >
    > > <empty line> abort manual imput
    > >
    > > mountroot>
    > >
    > >
    > > The HD where FreeBSD is installed is ad2 in my previous kernel and in
    > > this new one it is ad1. I have now found out that this is the source of
    > > the problem. I checked the partition table, and the slices are called
    > > ad2s2a --> ad2s2g. If this is the case, no way I can mount root on a
    > > disk called ad1 with those slices.
    > >
    > > So, I'll pose a different question. Do you know of a possible way I can
    > > make my new kernel to spot my HD as ad2? To me this is the only solution
    > > possible.
    >
    > Hmmm... It's not impossible to recover from the situation you're in
    > without having to do anything unaesthetic, like re-installing. It is,
    > however, fairly tricky and requires use of some quite unfriendly
    > commands.
    >
    > Your aim is simply to edit /etc/fstab and change all references to ad2
    > over to ad1. Since the fstab is not correct for your current machine,
    > you can't boot to multiuser mode. You can, however, boot to single
    > user mode with the root partition you tell the kernel as above. After
    > power-on, interrupt the 10 second count down, and at the boot loader
    > prompt type:
    >
    > set root_disk_unit=1
    > boot /kernel -s
    >
    > This should get you to the single user prompt, but with the root
    > partition mounted read-only. In order to remount the root partition
    > read-write, you need to do two things. First, run fsck(8) to clean up
    > the file system and then run mount(8). Catch22 is that both of those
    > commands will use /etc/fstab as a database of filesystems to work on,
    > unless you take care to avoid that. Assuming that your root partition
    > is on /dev/ad1s1a, run:
    >
    > # fsck /dev/ad1s1a
    > # mount -u -o rw -t ufs /dev/ad1s1a /
    >
    > (Basically, you need to supply all required arguments to mount(8), to
    > stop it going to /etc/fstab to try and look them up.)
    >
    > Now you've got the root partition mounted read-write, you can edit the
    > /etc/fstab file. The tricky bit is that you only have the commands in
    > /bin available to do the editing with (assuming that you've used the
    > usual /, /usr partition layout). That means that you now have to get
    > down and dirty with ed(1) -- the Unix editor of last resort. This
    > command was originally designed for use on a teletype printer, so it
    > doesn't show you a listing of the whole file and let you navigate
    > around it in a natural way. The command syntax is a bit intimidating
    > to the uninitiated too. You can see the ed(1) man page at
    >
    > http://www.freebsd.org/cgi/man.cgi?query=ed&apropos=0&sektion=0&manpath=FreeBSD+4.7-stable&format=html
    >
    > Try this:
    >
    > Nb. You type the lines marked '<--' in the ed session.
    >
    > # cd /etc
    > # cp fstab fstab.bak
    > # ed fstab
    > 448 (--> ed outputs the size of the file here)
    > (<-- hit return, to get the ? prompt)
    > ? (--> ed output)
    > ,s/ad2/ad1/g (<-- substitute 'ad1' for 'ad2' everywhere)
    > ,w (<-- write out the changed file)
    > 448 (--> ed tells you the modified file size)
    > q (<-- quit ed)
    > # cat fstab
    >
    > Check the new contents of the fstab file for sanity. If you're happy,
    > then try and fsck and mount all your filesystems:
    >
    > # fsck -p
    > # mount -a
    >
    > If that works satisfactorily, you're done, and you can just type
    >
    > # reboot
    >
    > and the system *should* come up smoothly.

    Thank you, Matthew. I tried as you said, but I couldn't pass the first
    step. I got the message: "cannot boot /kernel, kernel module already
    loaded" Of course I tried "kernel" and other variants. If I typed
    "unload" and then what you said, I ended up with the prompt for the
    manual file system feed. But I could boot with a kernel back up I had
    and I made the modifications to the fstab file with a regular editor. My
    doubt was that the slices still were called ads2s2a, etc., but I
    supposed that that could change with the changes in the fstab file. I
    knew that if something went wrong, I could not boot anymore from my back
    up kernel, but I would get to the same request for a hand-input
    filesystem and I would only had to specify ad2s2a. Well, nothing worked.
    I cannot boot now. It seems to me that the utility to specify by hand
    the filesystem either doesn't work or that I have a deeper problem here.
    I am now tempted to get done with 4.8 and try 5.0. What do you think?

    By the way, I tried the repair console, and just the first feel of it
    made me step back.

    Teilhard Knight
    The Extraterrestrial

    Who ate my sandwich?

    _______________________________________________
    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: george donnelly: "FreeBSD Training in Spanish"

    Relevant Pages

    • Re: 2.6.30 (Squeeze): no hda1 no sda1
      ... If I start playing around with fstab won't that ... difference to being able to boot in 2.6.30. ... pointing to the drive label or UUID. ... same no matter what kernel you're using so if you do it correctly then ...
      (Debian-User)
    • Re: How to reassign "hibernate/restore/resume" partition on F9?
      ... Recently I upgraded the boot hard drive on this F9 box from 20GB to ... reversed the swap and root partition numbers. ... kernel parameter is not needed ordinarily. ...
      (Fedora)
    • Yes, I really did it!
      ... Then the 2.4 kernel come out, ... There isn't a root partition on the local HD. ... Many suggestions around suggest an initrd parameter should be passed to the kernel at compile time, but then a huge initrd.img.gz gets created, and it won't fit on the boot floppy. ...
      (Debian-User)
    • Re: 2.6.30 (Squeeze): no hda1 no sda1
      ... If I start playing around with fstab won't that jeopardise my ... ability to boot into the 2.6.26 kernel? ... pointing to the drive label or UUID. ... same no matter what kernel you're using so if you do it correctly then ...
      (Debian-User)
    • Re: self-built kernel causing boot problems
      ... I've compiled a kernel from the up-to-date kernel-source-2.6 package with the aim to be able to build realtime linux security module. ... Now when i try to boot it it sits there "wating for root filesystem", after some t&a i figured out that somehow the new kernel registers my external usb hdd as sda and my internal sata hdd as sdb which is usually the other way round. ... the boot process continues until the devices from fstab. ...
      (Debian-User)