=== modified file 'debian/changelog' --- debian/changelog 2008-09-30 00:00:03 +0000 +++ debian/changelog 2008-10-01 08:13:30 +0000 @@ -1,8 +1,13 @@ partman-base (121ubuntu7) UNRELEASED; urgency=low + [ Colin Watson ] * Exit straight away if a called script is killed by a signal. - -- Colin Watson Tue, 30 Sep 2008 00:59:25 +0100 + [ Evan Dandrea ] + * Exclude the cdrom backing device, lest the user try to install to + it (LP: #276656). + + -- Evan Dandrea Wed, 01 Oct 2008 04:08:18 -0400 partman-base (121ubuntu6) intrepid; urgency=low === modified file 'init.d/parted' --- init.d/parted 2008-08-27 11:43:40 +0000 +++ init.d/parted 2008-10-01 08:14:01 +0000 @@ -50,9 +50,38 @@ fi mkdir $DEVICES || true + # Find the cdrom backing device so we can exclude it, lest the user try + # to install to it. + disks= + while read dev mp rest; do + if [ "$mp" = "/cdrom" ] || [ "$mp" = "/hd-media" ]; then + # evand 2008-10-1: Taken from split_device() in + # grub-installer. + disk= + case $dev in + /dev/[vhs]d[a-z]*) + disk="$(echo "$dev" | sed 's,\(/dev/[a-z]\+\).*,\1,')" + ;; + /dev/*/c*d*) + disk="$(echo "$dev" | sed 's,\(/dev/.*/c[0-9]\+d[0-9]\+\).*,\1,')" + ;; + esac + if [ -n "$disks" ]; then + disks="$disks\|$disk" + break + else + disks="$disk" + fi + fi + done < /proc/mounts + if [ "$disks" ]; then + disks="^\($disks\)" + else + disks="^$" + fi IFS="$NL" for partdev in $(parted_devices | - grep -v '^/dev/md' | + grep -v '^/dev/md' | grep -v "$disks" | sed 's,^/dev/\(ide\|scsi\|[hs]d\),!/dev/\1,' | sort | sed 's,^!,,' ); do