Bugs/Installer


From Knoppix Documentation Wiki
Revision as of 17:55, 28 June 2007 by Jon (Talk | contribs)

Jump to: navigation, search

Hi, unfortunately I'm using an old SCSI-adapter (Tekram 390UF). The necessary module -ncr53c8xx.ko or sym53c8xx.ko - isn't included in the kernel modules. Is there a workaround to load the module ncr53c8xx or the sym53c8xx on boot? Can I use any precompiled module for a 2.6-kernel?


Hi,
I am making a LiveCD (of my work on localization) based on knoppix. The problem i have with Knoppix-installer is as follows. When i INSTALL knoppix, the installer just ignores all the other OS installations on the hard disk and creates a Grub menu that contains just the new installation.

I have made some changes to the install script boot-tools.bm so that it scans hard disk partitions for other installations and make entries for them in the new Grum menu. Its not tested.

I would like to know if there would be any improvements to knoppix-installer in the near future related to this.

Diff (-pu) follows..

--- fsextract-NEW/usr/share/knoppix-installer/modules/booting/boot-tools.bm	2005-11-30 17:23:05.000000000 +0530
+++ boot-tools.bm	2005-12-27 15:00:28.000000000 +0530
@@ -52,7 +52,7 @@ create_initrd()
 		# TODO: :-)
 		[ -z "$(which mkext2fs)" -a -x "tools/mkext2fs" ] && cp -f tools/mkext2fs $TARGET_MNT_POINT/usr/sbin/
 		perl -pi -e "s/mkcramfs/mkext2fs -f/g" $TARGET_MNT_POINT/etc/mkinitrd/mkinitrd.conf
-		#perl -pi -e "s/mkcramfs/mkext2fs/g" $TARGET_MNT_POINT/etc/mkinitrd/mkinitrd.conf   ---SWECHA
+		# SWECHA -- Added -f to above line.
 		export INITRD_PARAM_$INITRD_POSTFIX="ramdisk_size=100000 "
 	fi
  
@@ -568,7 +568,60 @@ translate_linux_to_grub () {
     return 0
 }
 
+# SWECHA specific function
+get_grub_menu()
+{
+  mnt_point="/mnt/inst"
+  [ ! -e $mnt_point ] && mkdir $mnt_point
+  PART=$1
+  mount -o ro $PART $mnt_point 2>&1 >/dev/null
+  [ $? -ne 0 ] &&  return 1
+                                                                                                                             
+  menu_file=$mnt_point/boot/grub/menu.lst
+  if [ ! -e "$menu_file" ] ; then umount $PART ; return 1; fi
+                                                                                                                             
+  return 0
+}
 
+# SWECHA specific function 
+# uses fdisk to detect all partitions..
+# From each Linux partition it tries to get boot/grub/menu.lst
+#    accumilates the boot entries from all of them and adds 
+#     them to a the menu.lst of the newly installed grub.
+#  For each Fat32 partition found.. it adds a Win2k/xp entry to menu.lst
+# 
+create_swecha_menu() 
+{
+ #back up the default menu.lst created by the default knoppix installer
+ cp $TARGET_MNT_POINT/boot/grub/menu.lst $TARGET_MNT_POINT/boot/grub/menu.knoppix.lst
+ 
+ #Linux partion list
+ for DP in `/sbin/fdisk -l /dev/hda | grep -r "^/dev" | grep -i linux | cut -d' ' -f1` # for each linux partition...
+ do
+   get_grub_menu $DP
+   [ $? -ne 0 ] && continue
+   echo "# -------------From $DP --------------------------" >> $TARGET_MNT_POINT/boot/grub/menu.lst
+   awk '/[Tt]itle/ { start = 1 }; { if(start==1) print $0}'  $menu_file  >> $TARGET_MNT_POINT/boot/grub/menu.lst
+   umount $DP
+ done
+                                                                                                                             
+ #Win partitions
+ for DP in `/sbin/fdisk -l /dev/hda | grep -r "^/dev" | grep -i fat | cut -d' ' -f1` # for each FAT32 partition...
+ do
+   hd=`echo $DP | cut -d'a' -f2`
+   let hd=$hd-1
+   echo "# -------------From $DP --------------------------" >> $TARGET_MNT_POINT/boot/grub/menu.lst
+   cat <<EOI >> $TARGET_MNT_POINT/boot/grub/menu.lst
+                                                                                                                             
+title Win 2k/XP/..
+root (hd0,$hd)
+chainloader +1
+                                                                                                                             
+EOI
+  done
+ 
+  return 0  
+}
+  
 install_grub()
 {
 	# create device.map
@@ -714,6 +767,8 @@ EOF
 			grub-install --root-directory=$TARGET_MNT_POINT "(hd0)" >/dev/null 2>/dev/null
 			;;
 	esac
+
+	create_swecha_menu # SWECHA 
 	
 	return 0
 }

<p> Before running the installer, be sure to unmount /dev/hd(EVERYTHING), including swap. I had many problems trying to install on a disk with a swap partition mounted (use 'swapoff') in the middle of the disk. There wasn't enough room before or after for an automatic installation. Neither fdisk nor the installer's default partitioner seemed to notice the problem. They just changed the drive and left the /proc/partitions alone. <p> It created some very odd bugs during install, such as crashing rather than asking which partition to install to.