Your message dated Wed, 19 May 2010 12:47:05 -0400 with message-id <20100519164705.GA31442@gnu.kitenet.net> and subject line closing old bug has caused the Debian Bug report #409622, regarding os-prober unmounts partitions unnecessarily (linux-boot-prober) to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 409622: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=409622 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: os-prober unmounts partitions unnecessarily (linux-boot-prober)
- From: "The Abattoir" <the.abattoir@gmail.com>
- Date: Sun, 4 Feb 2007 21:33:11 +0800
- Message-id: <e86c9b860702040533v73b86213t5b6e4ddcfe83aacf@mail.gmail.com>
Package: os-prober Version: 1.14 Severity: wishlist linux-boot-prober unmounts mounted partitions unnecessarily when run with the '-mounted' parameter. I'd already spoken to someone on the d-i list(i can't find that thread now), and was asked to submit the patch through the BTS. I've attached the patch to 50mounted-tests. I've tested the patch and it works well on my system. Thank You -- The Abattoir--- 50mounted-tests.new 2007-02-04 21:06:31.000000000 +0800 +++ 50mounted-tests.orig 2006-12-19 21:35:56.000000000 +0800 @@ -19,73 +19,67 @@ done } -rootmounted="" +tmpmnt=/var/lib/os-prober/mount +if [ ! -d $tmpmnt ]; then + mkdir $tmpmnt +fi -# If DO_MOUNTED is set, process already mounted partitions from their current mountpoint -mnt=$(mount |grep "$partition "|cut -d' ' -f 3) -if [ -n "$DO_MOUNTED" ] && [ -n "$mnt" ]; then - rootmounted=1 -elif [ ! -n "$DO_MOUNTED" ]; then - mnt=/var/lib/os-prober/mount - if [ ! -d $mnt ]; then - mkdir $mnt - fi +# If DO_MOUNTED is set, also process already mounted partitions by temporarily +# unmounting them. +oldmnt=$(mount |grep "$partition "|cut -d' ' -f 3) +if [ -n "$DO_MOUNTED" ] && [ -n "$oldmnt" ]; then + oldopts=$(mount |grep "$partition "|sed 's/.*(\(.*\)).*/\1/') + umount $partition fi for type in $(grep -v nodev /proc/filesystems); do - if [ ! -n "$DO_MOUNTED" ]; then - if mount -o ro -t $type $partition $mnt 2>/dev/null; then - rootmounted=1 - else - error "failed to mount $partition" - fi - fi - if [ "$rootmounted" ]; then + if mount -o ro -t $type $partition $tmpmnt 2>/dev/null; then bootpart="" - if [ -e "$mnt/etc/fstab" ]; then + if [ -e "$tmpmnt/etc/fstab" ]; then # Try to mount any /boot partition. - bootmnt=$(parsefstab < $mnt/etc/fstab | grep " /boot ") || true + bootmnt=$(parsefstab < $tmpmnt/etc/fstab | grep " /boot ") || true if [ -n "$bootmnt" ]; then set -- $bootmnt boottomnt="" - bootmounted="" + mounted="" if [ -e "$1" ]; then bootpart="$1" boottomnt="$1" - elif [ -e "$mnt/$1" ]; then + elif [ -e "$tmpmnt/$1" ]; then bootpart="$1" - boottomnt="$mnt/$1" + boottomnt="$tmpmnt/$1" elif [ -e "/target/$1" ]; then bootpart="$1" boottomnt="/target/$1" elif echo "$1" | grep -q "LABEL="; then debug "mounting boot partition by label for linux system on $partition: $1" label=$(echo "$1" | cut -d = -f 2) - if /target/bin/mount -L "$label" -o ro $mnt/boot -t "$3"; then - bootmounted=1 - bootpart=$(mount | grep $mnt/boot | cut -d " " -f 1) + if /target/bin/mount -L "$label" -o ro $tmpmnt/boot -t "$3"; then + mounted=1 + bootpart=$(mount | grep $tmpmnt/boot | cut -d " " -f 1) else error "failed to mount by label" fi elif echo "$1" | grep -q "UUID="; then debug "mounting boot partition by UUID for linux system on $partition: $1" uuid=$(echo "$1" | cut -d = -f 2) - if /target/bin/mount -U "$uuid" -o ro $mnt/boot -t "$3"; then - bootmounted=1 - bootpart=$(mount | grep $mnt/boot | cut -d " " -f 1) + if /target/bin/mount -U "$uuid" -o ro $tmpmnt/boot -t "$3"; then + mounted=1 + bootpart=$(mount | grep $tmpmnt/boot | cut -d " " -f 1) else error "failed to mount by UUID" fi else bootpart="" fi - if [ ! "$bootmounted" ]; then + + if [ ! "$mounted" ]; then if [ -z "$bootpart" ]; then debug "found boot partition $1 for linux system on $partition, but cannot map to existing device" else debug "found boot partition $bootpart for linux system on $partition" - if ! mount -o ro "$boottomnt" $mnt/boot -t "$3"; then - error "failed to mount $boottomnt on $mnt/boot" + if ! mount -o ro "$boottomnt" $tmpmnt/boot -t "$3"; then + error "failed to mount $boottomnt on $tmpmnt/boot" fi fi fi @@ -94,31 +88,34 @@ if [ -z "$bootpart" ]; then bootpart="$partition" fi + for test in /usr/lib/linux-boot-probes/mounted/*; do if [ -f $test ] && [ -x $test ]; then - debug "running $test $partition $bootpart $mnt $type" - if $test $partition $bootpart $mnt $type; then + debug "running $test $partition $bootpart $tmpmnt $type" + if $test $partition $bootpart $tmpmnt $type; then debug "$test succeeded" - umount $mnt/boot 2>/dev/null || true - #umount $mnt - if [ ! -n "$DO_MOUNTED" ]; then - umount $mnt - rmdir $mnt + umount $tmpmnt/boot 2>/dev/null || true + umount $tmpmnt + if [ -n "$DO_MOUNTED" ] && [ -n "$oldmnt" ]; then + mount $partition $oldmnt -o $oldopts fi + rmdir $tmpmnt || true exit 0 fi fi done - - umount $mnt/boot 2>/dev/null || true - #umount $mnt - if [ ! -n "$DO_MOUNTED" ]; then - umount $mnt - rmdir $mnt || true + + umount $tmpmnt/boot 2>/dev/null || true + umount $tmpmnt + if [ -n "$DO_MOUNTED" ] && [ -n "$oldmnt" ]; then + mount $partition $oldmnt -o $oldopts fi + break fi done +rmdir $tmpmnt || true + # No tests found anything. -exit 1 \ No newline at end of file +exit 1
--- End Message ---
--- Begin Message ---
- To: 409622-done@bugs.debian.org
- Subject: closing old bug
- From: Joey Hess <joeyh@debian.org>
- Date: Wed, 19 May 2010 12:47:05 -0400
- Message-id: <20100519164705.GA31442@gnu.kitenet.net>
Version: 1.21 The --mounted option was removed a long time ago. Relevant changelogs: * Remove the largely obsolete --mounted option. * Teach linux-boot-prober to deal with mounted partitions correctly, unless they're mounted on /, /target, or /target/boot (LP: #14780). This should largely obsolete the --mounted option. -- see shy joAttachment: signature.asc
Description: Digital signature
--- End Message ---