+# Create a device label.
+#
+label() {
+ local DEVICE=$1
+ local LABEL=$2
+
+ ${PARTED} ${DEVICE} --script -- mklabel ${LABEL} || return 1
+
+ return 0
+}
+
+#
+# Create a primary partition on a block device.
+#
+partition() {
+ local DEVICE=$1
+ local TYPE=$2
+ local START=$3
+ local END=$4
+
+ ${PARTED} --align optimal ${DEVICE} --script -- \
+ mkpart ${TYPE} ${START} ${END} || return 1
+ udev_trigger
+
+ return 0
+}
+
+#
+# Create a filesystem on the block device
+#
+format() {
+ local DEVICE=$1
+ local FSTYPE=$2
+
+ # Force 4K blocksize, else mkfs.ext2 tries to use 8K, which
+ # won't mount
+ /sbin/mkfs.${FSTYPE} -b 4096 -F -q ${DEVICE} || return 1
+
+ return 0
+}
+
+#