1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/bin/bash
- set -e
- set -x
- DEVICE=${1}
- DISKTYPE=${2}
- if [[ -z $DISKTYPE ]]; then
- DISKTYPE="msdos"
- fi
- if [[ -z $DEVICE ]]; then
- echo "Need to Pass a device name as arg1." 1>&2
- exit 1
- fi
- PARTITION_COUNT=$(grep $(echo $DEVICE | cut -d '/' -f3) /proc/partitions | wc -l)
- if [ "$PARTITION_COUNT" -gt "1" ]; then
- echo "Device ${DEVICE} already partitioned!"
- echo "Checking to see if it is mounted"
-
- # Check this container first...
- if grep -q "${DEVICE}" /proc/mounts; then
- echo "Device is mounted, we can not repartition" 1>&2
- exit 1
- fi
-
- # Check other system containers...
- for container in $(system-docker ps -q); do
- if system-docker exec $container grep -q "${DEVICE}" /proc/mounts; then
- echo "Device is mounted in system container ${container}, we can not repartition" 1>&2
- exit 1
- fi
- done
- fi
- dd if=/dev/zero of=${DEVICE} bs=512 count=2048
- partprobe ${DEVICE}
- # https://www.gnu.org/software/parted/manual/html_node/set.html
- # https://wiki.archlinux.org/index.php/syslinux
- BOOTFLAG="boot"
- if [ "${DISKTYPE}" == "gpt" ]; then
- BOOTFLAG="legacy_boot"
- fi
- parted -s -a optimal ${DEVICE} mklabel ${DISKTYPE} -- \
- mkpart primary ext4 1 -1 \
- set 1 ${BOOTFLAG} on
|