About my problem
Eduardo Viruena Silva
mrspock at esfm.ipn.mx
Wed May 14 11:16:13 PDT 2003
On Wed, 14 May 2003, Teilhard Knight wrote:
> 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
your system seems to ve 4.x.
your kernel is, somehow, badly created.
why don't you try the generic kernel that [I hope] must be there
boot /kernel.GENERIC -s
boot /kernel.old -s
and follow the instruction given by Mattew.
> > 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 at freebsd.org mailing list
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
- ______ _
* / /###\ / \ __
/\ /\ * / ./#### \ * \__|_/ | |
/ \/ \ | b#####| * _ | __ | | __
= .. \____ \ \_\#####/ / \| / \ | | /\_\/
= \_| * \___\###/ * \_/\_/\__/\__\/_/\__/
= \______/ _
More information about the freebsd-questions