33 lines
		
	
	
		
			774 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			774 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |