1234567891011121314151617181920212223242526272829303132 |
- #!/bin/bash
- NAME=${DEVNAME#/dev/}
- DESC="${ID_MODEL} (${ID_FS_LABEL})"
- SIZE=$[ $(cat /sys/$DEVPATH/size) * 512 ]
- MODE=w
- XS_KEY="qubes-block-devices/$NAME"
- # Ignore mounted...
- if fgrep -q $DEVNAME /proc/mounts; then
- xenstore-rm "$XS_KEY"
- exit 0
- fi
- # ... and used by device-mapper
- if [ -n "`ls -A /sys/$DEVPATH/holders 2> /dev/null`" ]; then
- xenstore-rm "$XS_KEY"
- exit 0
- fi
- # Special case for CD
- if [ "$ID_TYPE" = "cd" ]; then
- if [ "$ID_CDROM_MEDIA" != "1" ]; then
- # Hide empty cdrom drive
- xenstore-rm "$XS_KEY"
- exit 0
- fi
- MODE=r
- fi
- xenstore-write "$XS_KEY/desc" "$DESC" "$XS_KEY/size" "$SIZE" "$XS_KEY/mode" "$MODE"
- # Make sure that block backend is loaded
- /sbin/modprobe xen-blkback 2> /dev/null || /sbin/modprobe blkbk
|