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
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…
Reference in New Issue
Block a user