
Although the loop block device is created before attaching the image to it, the devices for the partition that the image contains are still not created. This patch creates those devices as well, when they are not already available. Fixes #482 Signed-off-by: Vasilis Tsiligiannis <acinonyx@openwrt.gr>
49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
NOOBS_DIR="${STAGE_WORK_DIR}/${IMG_NAME}${IMG_SUFFIX}"
|
|
mkdir -p "${STAGE_WORK_DIR}"
|
|
|
|
IMG_FILE="${WORK_DIR}/export-image/${IMG_FILENAME}${IMG_SUFFIX}.img"
|
|
|
|
unmount_image "${IMG_FILE}"
|
|
|
|
rm -rf "${NOOBS_DIR}"
|
|
|
|
echo "Creating loop device..."
|
|
cnt=0
|
|
until ensure_next_loopdev && LOOP_DEV="$(losetup --show --find --partscan "$IMG_FILE")"; do
|
|
if [ $cnt -lt 5 ]; then
|
|
cnt=$((cnt + 1))
|
|
echo "Error in losetup. Retrying..."
|
|
sleep 5
|
|
else
|
|
echo "ERROR: losetup failed; exiting"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
ensure_loopdev_partitions "$LOOP_DEV"
|
|
BOOT_DEV="${LOOP_DEV}p1"
|
|
ROOT_DEV="${LOOP_DEV}p2"
|
|
|
|
mkdir -p "${STAGE_WORK_DIR}/rootfs"
|
|
mkdir -p "${NOOBS_DIR}"
|
|
|
|
mount "$ROOT_DEV" "${STAGE_WORK_DIR}/rootfs"
|
|
mount "$BOOT_DEV" "${STAGE_WORK_DIR}/rootfs/boot"
|
|
|
|
ln -sv "/lib/systemd/system/apply_noobs_os_config.service" "$ROOTFS_DIR/etc/systemd/system/multi-user.target.wants/apply_noobs_os_config.service"
|
|
|
|
KERNEL_VER="$(zgrep -oPm 1 "Linux version \K(.*)$" "${STAGE_WORK_DIR}/rootfs/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" | cut -f-2 -d.)"
|
|
echo "$KERNEL_VER" > "${STAGE_WORK_DIR}/kernel_version"
|
|
|
|
bsdtar --numeric-owner --format gnutar -C "${STAGE_WORK_DIR}/rootfs/boot" -cpf - . | xz -T0 > "${NOOBS_DIR}/boot.tar.xz"
|
|
umount "${STAGE_WORK_DIR}/rootfs/boot"
|
|
bsdtar --numeric-owner --format gnutar -C "${STAGE_WORK_DIR}/rootfs" --one-file-system -cpf - . | xz -T0 > "${NOOBS_DIR}/root.tar.xz"
|
|
|
|
if [ "${USE_QCOW2}" = "1" ]; then
|
|
rm "$ROOTFS_DIR/etc/systemd/system/multi-user.target.wants/apply_noobs_os_config.service"
|
|
fi
|
|
|
|
unmount_image "${IMG_FILE}"
|