PDA

View Full Version : the question is, within the live-cd, how to rewrite the mbr



djgotee
01-21-2004, 10:16 PM
Please excuss those of us who are still learning the wonderful methods of linux. I am new to linux and am very grateful to this forum and specifically to those who are involved in answering questions like what I am about to ask.
First of all, Im sorry if I ask things that seem simple for most of you, now that that is out of the way, are you ready? Heres what I am trying to understand:
The following is from a former post:
Hello

I have the same

Fatal: open /dev/hda: Permission denied

when I'm trying to run lilo. Let me explain the situation.

- I successfully install knx(3.2) with knx-hdinstall (btw, very effective !)
- failed to reboot, because knx hasn't followed (or asked) for some boot
parameters (in my case, ide0=ata66, ide1=ata66 otherwise boot jam !)
- rebooting on the live-cd, mounting hdaX rw, adding the correct append
line.
- sudo chroot /mnt/hdaX, still ok.
- lilo -v ... and Fatal: open /dev/hda: Permission denied
- tried the proposed install-mbr (don't know why it should change smth, but
as I'm not sure, I try), ok, then again same output of lilo.

So, the question is, within the live-cd, how to rewrite the mbr ?

Thanks
(from: http://www.knoppix.net/forum/viewtopic.php?p=8873&highlight=)
--------------------------------------------------------------------------

And what looks like the correct answer:

happily, i found a solution.

Here it is for the sake of completness.

The problem is that chrooting to /mnt/hdaX isolate the pseudo-root, the dev and the proc are not those from the "orignal" working Linux. So obviously lilo won't be able to change the /dev he can't access. So the opposite must be done: bringing on "/" all we need to run the live-cd lilo fct with the lilo.conf config file we want. Note that mine, already located in hdaX, use /vmlinuz and /boot. In the live-cd:


Code:
cd /

rm -f /boot
rm -f /etc/lilo.conf
rm -f /vmlinuz

# easy bc knx added a line in fstab
mount /mnt/hdaX

rm -s /mnt/hdaX/boot /boot
rm -s /mnt/hdaX/etc/lilo.conf /etc/lilo.conf
rm -s /mnt/hdaX/vmlinuz /vmlinuz

# this one works.
lilo -v



That was just that. :wq
---------------------------------------------------------

My delema as accuratly as I can ask you :
What does this mean in a non code writing person's format?
I mean, who has the patience to translate this to a stupid idiot like me?
I am totally confused and not only need a translation but a complete walk through.
I really wish to find a way to write the mbr with lilo from the live CD for times when the mbr gets corrupted or otherwise lost.
What I have been doing is writing the partition table in cfdisk from the live CD ( when I know how the partitions esesentially were originally constructed, so as not to damage any existing files) Then when the partition table is good to go(not formatting of course), I reinstall windows to complete the writting of the rest of the mbr code (the pointing mechanism that points to the OS).
But what Id prefer to do is just install lilo into the mbr as a boot device by altering the lilo.conf file.
Who may be up to teaching me this?
Thanks , steven from florida

rickenbacherus
01-21-2004, 11:05 PM
This works for me everytime:

1) boot Knoppix,

2) mount partition that you installed /root to: mount /dev/hda2 /mnt/hda2
(notice there is no mention of clicking anything ;) )

3) chroot /mnt/hda2

4) edit /etc/lilo.conf

5) lilo

reboot

djgotee
01-22-2004, 12:04 AM
Thanks rickenbacherus. what do you mean by "that you installed root to"? Do you mean where the OPerating system is installed?
Dont forget, this would be a system that already existed and has a damaged MBR, that is, no partitons and such. Ill try again , but I sware I have already tryed this and it came back with permission denied.

EmDee
01-22-2004, 12:10 AM
Thanks rickenbacherus. what do you mean by "that you installed root to"? Do you mean where the Operating system is installed?yup, I think the root-partition is meant here. Did you run lilo as root? if not, try "sudo lilo" or "su" before running lilo!

rickenbacherus
01-22-2004, 12:31 AM
Thanks rickenbacherus. what do you mean by "that you installed root to"? Do you mean where the OPerating system is installed?
Dont forget, this would be a system that already existed and has a damaged MBR, that is, no partitons and such. Ill try again , but I sware I have already tryed this and it came back with permission denied.

Yes I do mean /root but keep in mind that Knoppix installs everything to /root. If for example you were trying to reinstall lilo to a bootstrapped Debian install and had your directories on multiple partitions then you would certainly need to mount those partitions in chroot to the proper mount points before you'd get it to work.

djgotee
01-22-2004, 01:09 AM
But Mr Rickenbacherus, do you know what the following means?
Code:
cd /

rm -f /boot
rm -f /etc/lilo.conf
rm -f /vmlinuz

# easy bc knx added a line in fstab
mount /mnt/hdaX

rm -s /mnt/hdaX/boot /boot
rm -s /mnt/hdaX/etc/lilo.conf /etc/lilo.conf
rm -s /mnt/hdaX/vmlinuz /vmlinuz

# this one works.
lilo -v

djgotee
01-22-2004, 01:12 AM
Oh and also what does this mean: (and does it sound correct to you?)

The problem is that chrooting to /mnt/hdaX isolate the pseudo-root, the dev and the proc are not those from the "orignal" working Linux. So obviously lilo won't be able to change the /dev he can't access. So the opposite must be done: bringing on "/" all we need to run the live-cd lilo fct with the lilo.conf config file we want. Note that mine, already located in hdaX, use /vmlinuz and /boot. In the live-cd

rickenbacherus
01-22-2004, 09:02 AM
Just do it as i have written and you'll be fine. the rm command is for 'remove' and i would be very careful with it. You could easily render your system unbootable depending on what you rm. You shouldn't need to rm anything to reinstall lilo.

man rm

frabcus
02-23-2004, 12:24 AM
There was a serious error in the code snippets above - it should say "ln" instead of "rm" for the second triplet of commands. Here in full corrected and with explanations:

# These three lines delete files off the ramdisk
# which knoppix runs from. They are the files
# which lilo uses to make a boot loader - we are
# deleting them as we are about to replace them below.
rm -f /boot
rm -f /etc/lilo.conf
rm -f /vmlinuz

# This mounts the hard drive that has Linux installed
# already on it - replace X with number of drive.
mount /mnt/hdaX

# These copy the files that lilo needs to the ram
# disk knoppix is running from.
ln -s /mnt/hdaX/boot /boot
ln -s /mnt/hdaX/etc/lilo.conf /etc/lilo.conf
ln -s /mnt/hdaX/vmlinuz /vmlinuz

# Now lilo will install the boot records for
# linux on the hard drive.
# (-v for verbose)
lilo -v

irwand
11-17-2004, 04:53 PM
I found this on http://www2.knightcast.org/~tech/linux/knoppix-recovery.html.
When you mount your partition to be recovered, use "-o dev", like the following:
mount -o dev /mnt/hdaX

Then chroot-ing and lilo-ing would succeed, well, at least it did for me.