Bugs/Installer


From Knoppix Documentation Wiki
Revision as of 12:28, 28 December 2005 by Swecha (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/..
+chainloader (hd0,$hd)+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
 }