Changeset 2337


Ignore:
Timestamp:
10/28/07 09:11:34 (6 years ago)
Author:
alanbach-guest
Message:

Better other OS detection using os-prober: debian/control: added os-prober and di-utils-mapdevfs to deps

Location:
pkg/main/parsix-installer/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • pkg/main/parsix-installer/trunk/boot-tools.bm

    r1861 r2337  
    545545} 
    546546 
     547grub_write_chain() { 
     548        cat >> $TARGET_MNT_POINT/boot/grub/menu.lst <<EOF 
     549 
     550# This entry automatically added by the Parsix installer for a non-linux OS 
     551# on $partition 
     552title           $title 
     553root            $grubdrive 
     554savedefault 
     555EOF 
     556        # Only set makeactive if grub is installed in the mbr 
     557        if [ "$bootdev" = "(hd0)" ]; then 
     558                cat >> $TARGET_MNT_POINT/boot/grub/menu.lst <<EOF 
     559makeactive 
     560EOF 
     561        fi 
     562        # DOS/Windows can't deal with booting from a non-first hard drive 
     563        case $shortname in 
     564            MS*|Win*) 
     565                grubdisk="$(echo "$grubdrive" | sed 's/^(//; s/)$//; s/,.*//')" 
     566                case $grubdisk in 
     567                    hd0)        ;; 
     568                    hd*) 
     569                        cat >> $TARGET_MNT_POINT/boot/grub/menu.lst <<EOF 
     570map             (hd0) ($grubdisk) 
     571map             ($grubdisk) (hd0) 
     572EOF 
     573                        ;; 
     574                esac 
     575                ;; 
     576        esac 
     577        cat >> $TARGET_MNT_POINT/boot/grub/menu.lst <<EOF 
     578chainloader     +1 
     579 
     580EOF 
     581} # grub_write_chain end 
     582 
     583grub_write_divider() { 
     584        cat >> $TARGET_MNT_POINT/boot/grub/menu.lst << EOF 
     585 
     586# This is a divider, added to separate the menu items below from the Debian 
     587# ones. 
     588title           Other operating systems: 
     589root 
     590 
     591EOF 
     592} # grub_write_divider end 
    547593 
    548594install_grub() 
     
    651697        perl -pi -e "s|^# kopt=root=(.*) ro|# kopt=root=\1 ro $GRUB_CMDLINE|g" $TARGET_MNT_POINT/boot/grub/menu.lst 
    652698 
    653         # Add other OS' :-) 
    654         # Sorry x86-only for now ... :-/ 
     699        # Add other Operating Systems 
     700        os-prober > /tmp/os-probed 
    655701 
    656702        export device_map=$TARGET_MNT_POINT/boot/grub/device.map 
    657703 
    658         while read p m f relax; 
    659         do 
    660                 [ "${p:5:2}" != "fd" ] && case "$f" in 
    661                         vfat|msdos) 
    662                                 gp=$(translate_linux_to_grub $p) || continue 
    663                                 [ ${p:8} -le 4 ] && cat << EOF 
    664 title Windows 95/98/ME (${p:5}) 
    665 root $gp 
    666 makeactive 
    667 chainloader +1 
    668 EOF 
    669                         ;; 
    670                         ntfs) 
    671                                 gp=$(translate_linux_to_grub $p) || continue 
    672                                 [ ${p:8} -le 4 ] && cat << EOF 
    673 title Windows 2K/XP/2003 (${p:5}) 
    674 chainloader $gp+1 
    675 EOF 
    676                         ;; 
    677                 esac 
    678         done < /etc/fstab >> $TARGET_MNT_POINT/boot/grub/menu.lst 
     704        if [ -s /tmp/os-probed ]; then 
     705          grub_write_divider 
     706        fi 
     707 
     708        for os in $(cat /tmp/os-probed); do 
     709          title=$(echo "$os" | cut -d: -f2) 
     710          shortname=$(echo "$os" | cut -d: -f3) 
     711          type=$(echo "$os" | cut -d: -f4) 
     712           
     713          case "$type" in 
     714                chain) 
     715                        partition=$(mapdevfs $(echo "$os" | cut -d: -f1)) 
     716                        grubdrive=$(translate_linux_to_grub "$partition") || true 
     717                        if [ -n "$grubdrive" ]; then 
     718                                    grub_write_chain 
     719                        fi 
     720                ;; 
     721          esac 
     722        done 
     723        # End Adding other Operating Systems 
    679724 
    680725        # update menu.lst 
     
    691736[ -x /usr/sbin/mkinitramfs -a ! -d /lib/modules/$BOOT_KERNEL/kernel/fs/cramfs ] && echo ramdisk = /usr/sbin/mkinitramfs >> $TARGET_MNT_POINT/etc/kernel-img.conf 
    692737 
    693         # install grub 
    694          
    695738        # in case of jfs/xfs force installation to mbr - usually not needed 
    696  
    697739        case $FS_TYPE in 
    698740                jfs|xfs) BOOT_WHERE="mbr";; 
  • pkg/main/parsix-installer/trunk/debian/changelog

    r1872 r2337  
     1parsix-installer (0.81.0) barry; urgency=low 
     2 
     3  * Better other OS detection using os-prober 
     4    - debian/control: added os-prober and di-utils-mapdevfs 
     5      to deps 
     6 
     7 -- Alan Baghumian <alan@technotux.org>  Sun, 28 Oct 2007 11:38:49 +0330 
     8 
    19parsix-installer (0.80.2.7) barry; urgency=low 
    210 
  • pkg/main/parsix-installer/trunk/debian/control

    r1872 r2337  
    88Package: parsix-installer 
    99Architecture: all 
    10 Depends: dialog, initramfs-tools, perl, bash (>>2.05), gdm, grub (>>0.95), whois, initscripts, usleep-parsix, sysv-freeze, dmidecode 
     10Depends: dialog, initramfs-tools, perl, bash (>>2.05), gdm, grub (>>0.95), whois, initscripts, usleep-parsix, sysv-freeze, dmidecode, os-probe, di-utils-mapdevfs 
    1111Recommends: xdialog 
    1212Conflicts: parsix-menu (<= 0.6.2), parsix-manpages (<= 0.2.0) 
  • pkg/main/parsix-installer/trunk/parsix-installer

    r1861 r2337  
    1919# 
    2020 
    21 VERSION="0.80.2" 
     21VERSION="0.81.0" 
    2222CONFIG_FILE="$HOME/.knofig" 
    2323LOG="$HOME/.knofig_log" 
Note: See TracChangeset for help on using the changeset viewer.