else
if [ -x /usr/bin/memdiskfind ]
then
- if MEMDISK=$(/usr/bin/memdiskfind)
+ if ! dd if=/dev/mem of=/dev/zero bs=1 count=1 >/dev/null 2>&1
then
- # We found a memdisk, set up phram
- # Sometimes "modprobe phram" can not successfully create /dev/mtd0.
- # Have to try several times.
- max_try=20
- while [ ! -c /dev/mtd0 ] && [ "$max_try" -gt 0 ]; do
- modprobe phram "phram=memdisk,${MEMDISK}"
- sleep 0.2
- if [ -c /dev/mtd0 ]; then
- break
- else
- rmmod phram
- fi
- max_try=$((max_try - 1))
- done
-
- # Load mtdblock, the memdisk will be /dev/mtdblock0
- modprobe mtdblock
+ log_begin_msg "access to /dev/mem is restriced, skipping memdiskfind"
+ log_end_msg
+ else
+ if MEMDISK=$(/usr/bin/memdiskfind)
+ then
+ # We found a memdisk, set up phram
+ # Sometimes "modprobe phram" can not successfully create /dev/mtd0.
+ # Have to try several times.
+ max_try=20
+ while [ ! -c /dev/mtd0 ] && [ "$max_try" -gt 0 ]; do
+ modprobe phram "phram=memdisk,${MEMDISK}"
+ sleep 0.2
+ if [ -c /dev/mtd0 ]; then
+ break
+ else
+ rmmod phram
+ fi
+ max_try=$((max_try - 1))
+ done
+
+ # Load mtdblock, the memdisk will be /dev/mtdblock0
+ modprobe mtdblock
+ fi
fi
fi
+ # If the live media location is given via command line and access to it
+ # involves LVM volumes, the corresponding volumes need to be activated.
+ IFS=','
+ for dev in $(echo "$LIVE_MEDIA")
+ do
+ case "$dev" in
+ /dev/mapper/*)
+ eval $(dmsetup splitname --nameprefixes --noheadings --rows "${dev#/dev/mapper/}")
+ if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]
+ then
+ lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$DM_VG_NAME/$DM_LV_NAME"
+ fi
+ ;;
+ /dev/*/*)
+ # Could be /dev/VG/LV; use lvs to check
+ if lvm lvs -- "$dev" >/dev/null 2>&1
+ then
+ lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$dev"
+ fi
+ ;;
+ esac
+ done
+ unset IFS
+
# Scan local devices for the image
i=0
while [ "$i" -lt 60 ]