View Full Version : boot from cdrom and hd?

12-06-2004, 06:49 PM
Hi there,

I tried to install knoppix from cd to hd by myself.

my hd partition:

/dev/hda1 /boot
/dev/hda2 swap
/dev/hda3 the knoppix partition

I installed grub on /dev/hda1,

grub.conf :
title Knoppix 1
root (hd0,0)
kernel /boot_knoppix/vmlinuz root=/dev/hda3 lang=us hdc=ide-scsi
initrd /boot_knoppix/miniroot.gz

I did
cp -f /boot/vmlinuz /mnt/hda1/boot/boot_knoppix/vmlinuz
cp -f /cdrom/boot/isolinux/minirt24.gz /mnt/hda1/boot/boot_knoppix/miniroot.gz
cp -Rp /cdrom/* /mnt/hda3

It works fine, I can boot knoppix from hd now.

but then I tried to boot from CD, I found it always running on /dev/hda3, evn if it start from cd.
It first load from cd, then when it run the linuxrc script, it always found the KNOPPIX from /dev/hda3 , so it

mount /dev/hda3 on /cdrom , not i wanted /dev/cdrom on /cdrom

I believe it has something to do with the /proc/cmdline :

ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=minirt24.gz nomce quiet BOOT_IM
AGE=knoppix BOOT_IMAGE=linux24

if I boot from hd, the /proc/cmdline:
root=/dev/hda3 lang=us hdc=ide-scsi

do I need to modiy the linuxrc to fix it, or I missed something?


12-06-2004, 07:09 PM
oh, it's not the cmdlin, it's the following code in linuxrc:

DEVICES="$DEVICES /dev/hd?[1-9] /dev/hd?[1-9][0-9]"
case "$CMDLINE" in *fromhd=/dev/*) DEVICES="$fromhd"; ;; esac
for i in $DEVICES
echo -n "${CRE}${BLUE}Looking for CDROM in: ${MAGENTA}$i${NORMAL} "
#if mountit $i /cdrom "-o ro" >/dev/null 2>&1
if mountit $i /cdrom >/dev/null 2>&1
if test -f /cdrom/$KNOPPIX_DIR/$KNOPPIX_NAME
echo -n "${CRE} ${GREEN}Accessing KNOPPIX CDROM at ${MAGENTA}$i${GREEN}...${NORMAL}"
umount /cdrom

12-06-2004, 11:33 PM
Are you booting the Cd with any cheatcodes? If you just boot knoppix CD it *should* ignore everything on the HD & just boot & run from CD.
The code section you have quoted should only activate if you have booted with a 'fromhd=/dev/xxx' cheatcode.

Question? Why did you use this unusual hd install procedure instead of either the built-in installer script ('sudo knoppix-installer') or the built-in 'poormans install' (boot with the bootcode 'tohd=/dev/hda3'). The latter would give you an install similar to what you have except the entire install would be on hda3 and you would have to manually install your bootloader. You could then boot this from CD booting with the bootcode 'fromhd=/dev/hda3 or fromhd=/scan'.

12-07-2004, 12:32 AM
Yeah, I read the script again and it should check scd0 first. I must did something wrong. I didn't use any cheatcode, but I modified some bootup file. the answer why I do it this way is before I didn't know there is a offical way :-( Now I want to go back to offical way, but everytime I boot it, it always go to the hd, so i can't even change it.

12-07-2004, 01:03 AM
Now I found i can boot that machine with some old customised cd, my new cd has big problem .

one thing I learned is if use grub,

the config should be

kernel /boot_knoppix/vmlinuz fromhd=/dev/hda3 lang=us hdc=ide-scsi
kernel /boot_knoppix/vmlinuz fromhd=/dev/hda4 lang=us hdc=ide-scsi

instead of

kernel /boot_knoppix/vmlinuz root=/dev/hda3 lang=us hdc=ide-scsi
kernel /boot_knoppix/vmlinuz root=/dev/hda4 lang=us hdc=ide-scsi

then I can install two copy of knoppix.

12-09-2004, 02:29 AM
I am customising Knoppix 3.4 and the minirt24.gz drove me crazy :-( I gunzip it , then mount -o loop it, modified it, then gzip it, copy it to master/boot/isolinux, then

mkisofs -pad -l -r -J -v -V "LABEL" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o /mnt/hda2/knx1/knoppix.iso /mnt/hda2/knx1/master

I noticed everytime i mkisofs, the isolinux.bin also changed.

When I boot from the new cd, it loaded the linux24 and minirt24 without problem, then it do the "Looking for CDROM in ..." but can't find the KNOPPIX cd so it failed.

The weird thing is, if i use the original minirt24.gz and make the cd by exactly same way, it can boot. then I put the bootable cd in a cdburner, load the original session, then add a new session, just use my new minirt24.gz and isolinux.bin to replace the original one, this time it can find the Knoppix in /dev/scd0 and boot successful, and it's using my new version minirt24.gz. ( I found my new script worked ! )