TODO: crear script para crear imagen
Hay dos escenarios distintos según la versión del paquete util-linux
instalada, ya que a partir de la versión 2.21
se agrega la opción
--partscan
al comando losetup
lo que facilita la creación de la imagen:
losetup(8):
- the command has been rewritten, features:
...
* supports new command line option --partscan to enable kernel partition
table parser
Para mas detalles ver las notas de la release 2.21
Pasos comunes
# cd /path/
# dd if=/dev/zero of=data.img bs=1M count=$((10 * 1024))
# parted data.img mktable gpt
# parted --align optimal data.img mkpart DATA ext4 0% 100%
util-linux >= 2.21
# LOOPDEV="$(losetup --partscan --show --find data.img | tr -d '\n')"
# [ -z "$LOOPDEV" ] && { echo "Can't attach to loop device"; exit 1; }
# [ ! -e "${LOOPDEV}p1" ] && { echo "Partition in loop device not detected"; losetup --detach "$LOOPDEV"; exit 1; }
# mkfs.ext4 "${LOOPDEV}p1"
# losetup --detach "$LOOPDEV"
util-linux < 2.21
# PARTINFO="$(parted -m data.img "unit s print")"
# SECTSIZE="$(echo "$PARTINFO" | head -2 | tail -1 | cut -d':' -f5)"
# read -r PART_START PART_SIZE <<< "$(echo "$PARTINFO" | grep '^1' | cut -d':' -f2,4 --output-delimiter=' ' | tr -d s)"
# LOOPDEV="$(losetup --find --show \
--offset "$((PART_START * SECTSIZE))" \
--sizelimit "$((PART_SIZE * SECTSIZE))" \
data.img | tr -d '\n')"
# [ -z "$LOOPDEV" ] && { echo "Can't attach to loop device"; exit 1; }
# mkfs.ext4 "$LOOPDEV"
# losetup --detach "$LOOPDEV"