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.
This commit is contained in:
parent
d3b78a4d48
commit
b5606021c9
@ -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…
Reference in New Issue
Block a user