vm-initramfs: use sysfs directly to get block device parameters

Don't use blkdev program, as isn't installed by default by dracut in FC17.
Actually it isn't necessary to get 'ro' and 'size' parameters, as they can be
read directly from sysfs.
devel-3.9
Marek Marczykowski 12 years ago
parent f27df0e0bb
commit da5a960584

@ -14,18 +14,18 @@ modprobe xenblk || modprobe xen-blkfront || echo "Qubes: Cannot load Xen Block F
echo "Waiting for /dev/xvda* devices..."
while ! [ -e /dev/xvda ]; do sleep 0.1; done
if [ `blockdev --getro /dev/xvda` = 1 ] ; then
if [ `cat /sys/block/xvda/ro` = 1 ] ; then
echo "Qubes: Doing COW setup for AppVM..."
while ! [ -e /dev/xvdc ]; do sleep 0.1; done
while ! [ -e /dev/xvdc2 ]; do sleep 0.1; done
echo "0 `blockdev --getsz /dev/xvda` snapshot /dev/xvda /dev/xvdc2 N 16" | \
echo "0 `cat /sys/block/xvda/size` snapshot /dev/xvda /dev/xvdc2 N 16" | \
dmsetup create dmroot || { echo "Qubes: FATAL: cannot create dmroot!"; }
echo Qubes: done.
else
echo "Qubes: Doing R/W setup for TemplateVM..."
echo "0 `blockdev --getsz /dev/xvda` linear /dev/xvda 0" | \
echo "0 `cat /sys/block/xvda/size` linear /dev/xvda 0" | \
dmsetup create dmroot || { echo "Qubes: FATAL: cannot create dmroot!"; exit 1; }
echo Qubes: done.
fi

Loading…
Cancel
Save