View Full Version : how change root partition?

02-20-2003, 05:46 AM

Knoppix installs only to a single partition and I would like to change the root partition from /dev/hda6 to /dev/hda1. Having some familiarity with redhat and mandrake, I thought I could just format the needed partitions, copy the data from the current root partition like this:

cp -a /{bin,boot,dev,etc,initrd,lib,root,sbin,tmp,var} /mnt/hda1
cp -a /home/* /mnt/hda11
cp -a /usr/* /mnt/hda14

then add to /etc/lilo.conf a new entry that has a 'root=/dev/hda1' line (the old line 'root=/dev/hda6' had been global, but I made it local), make it the default entry, run lilo, edit the new /etc/fstab (on /dev/hda1) to reflect the new disk layout, and reboot. But when I did that, the root partition was still /dev/hda6. Since the output of

rdev /mnt/hda1/vmlinuz

was '/dev/hda6', I figured maybe the 'hardcoding' of the root partition in the kernel was somehow overriding the lilo setting, so I ran

rdev /mnt/hda1/vmlinuz /dev/hda1

then checked that the hardcoding changed as intended, and rebooted, but that still didn't help. Then I thought that since /dev/root.old was mounted at /initrd, maybe /initrd/linuxrc was playing a role in determining the root partition, so I changed the lines:

echo 256 > /proc/sys/kernel/real-root-dev
mount -t ext3 /dev/hda6 /mnt

to instead read:

echo 0x301 > /proc/sys/kernel/real-root-dev
mount -t ext3 /dev/hda1 /mnt

and rebooted, but the root partition was still /dev/hda6.

At this point, dmesg says:
Kernel command line: auto BOOT_IMAGE=Linux ro root=301 hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi hdf=scsi hdg=scsi hdh=scsi apm=power-off nomce

Any suggestions appreciated!


PS: I asked about this problem at debianhelp.org, and the resulting thread is at this url:
The kind folks there couldn't suggest a fix (though their suggestions made this post more complete), but they did wonder why all the hard drives were declared as scsi in the kernel command line, and whether the knoppix kernel was somehow targeted (in some way other than rdev) to hda6. I don't know the answer to either question.

01-09-2004, 06:10 PM
Isn't this forum great? Your query answered within a year or your pizza is free :D

Yes, well ... I've been trying to do the same thing, and I think I've found the sticking point.


No I haven't. OK, I really don't get this.

I am also trying to use reiserfs for / and when I try booting without an initrd the kernel won't do it? Does it not recognise reiser without a module?


01-09-2004, 07:01 PM
i've always had great success with clonig partitions using dd when run from a live-cd! Just boot knoppix live-cd and try "sudo dd if=/dev/hda6 of=/dev/hda1" this will even move the filesystem onto another partition. could take a while so rent yourself a good movie;-)

01-09-2004, 08:19 PM
I am also trying to use reiserfs for / and when I try booting without an initrd the kernel won't do it? Does it not recognise reiser without a module?

A kernel configured the same way as the default knoppix kernel has the reiserfs support as a module (because that way you can get rid of it if you don't use reiserfs) If you recompile the kernel and specify that you want the reiserfs code directly in the kernel you will be able to boot without an initrd.

01-10-2004, 01:07 PM
Thanks both of you.