Allow for a custom system partition start sector + custom system size

This commit is contained in:
MilhouseVH 2016-03-24 10:15:24 +00:00
parent 7e0b1b6b8b
commit b42b63983b
7 changed files with 34 additions and 11 deletions

View File

@ -3,7 +3,7 @@
{
"label": "@DISTRONAME@_@PROJECT@_System",
"filesystem_type": "FAT",
"partition_size_nominal": 512,
"partition_size_nominal": @SYSTEM_SIZE@,
"want_maximised": false,
"uncompressed_tarball_size": 120,
"mkfs_options": ""

View File

@ -204,3 +204,8 @@
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/$PROJECT/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"
# Default size of system partition, in MB, eg. 512
SYSTEM_SIZE=512
# Default system partition offset, in sectors, eg. 2048
SYSTEM_PART_START=2048

View File

@ -19,8 +19,11 @@
DISKLABEL_SYSTEM="System"
DISKLABEL_STORAGE="Storage"
# Defaultsize of system partition (Cylinder: 16=132MB, 31=255MB, 66=517MiB)
PARTSIZE_SYSTEM="66"
# Default size of system partition, in MB, eg. 512
PARTSIZE_SYSTEM="@SYSTEM_SIZE@"
# Default starting offset for system partition, in sectors (1 sector = 512B), eg. 2048
PARTSIZE_SYSTEM_OFFSET="@SYSTEM_PART_START@"
# additional parameters to extlinux
EXTLINUX_PARAMETERS=""

View File

@ -50,6 +50,9 @@ post_install() {
else
cp $PKG_DIR/config/installer.conf $INSTALL/etc
fi
sed -e "s/@SYSTEM_SIZE@/$SYSTEM_SIZE/g" \
-e "s/@SYSTEM_PART_START@/$SYSTEM_PART_START/g" \
-i $INSTALL/etc/installer.conf
enable_service installer.service
}

View File

@ -253,15 +253,20 @@ do_install_quick() {
cat /usr/share/syslinux/mbr.bin > $INSTALL_DEVICE
fi
partsize_system_start=$PARTSIZE_SYSTEM_OFFSET
partsize_system_end=$(((PARTSIZE_SYSTEM * 1024 * 1024 / 512) + partsize_system_start))
partsize_storage_start=$((partsize_system_end + 2048))
partsize_storage_end=-1024
msg_progress_install "10" "creating partition on $INSTALL_DEVICE"
if [ "$UEFI" = "1" ]; then
parted -s $INSTALL_DEVICE unit cyl mkpart primary fat32 -- 0 $PARTSIZE_SYSTEM >> $LOGFILE 2>&1
parted -s $INSTALL_DEVICE unit s mkpart primary fat32 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
else
parted -s $INSTALL_DEVICE unit cyl mkpart primary ext2 -- 0 $PARTSIZE_SYSTEM >> $LOGFILE 2>&1
parted -s $INSTALL_DEVICE unit s mkpart primary ext2 -- $partsize_system_start $partsize_system_end >> $LOGFILE 2>&1
fi
msg_progress_install "13" "creating partition on $INSTALL_DEVICE"
parted -s $INSTALL_DEVICE unit cyl mkpart primary ext2 -- $PARTSIZE_SYSTEM -2 >> $LOGFILE 2>&1
parted -s $INSTALL_DEVICE unit s mkpart primary ext2 -- $partsize_storage_start $partsize_storage_end >> $LOGFILE 2>&1
msg_progress_install "16" "setup bootflag on partition 1 of $INSTALL_DEVICE"
parted -s $INSTALL_DEVICE set 1 boot on >> $LOGFILE 2>&1
@ -629,7 +634,7 @@ do_poweroff() {
}
# setup needed variables
INSTALLER_VERSION="0.2.7"
INSTALLER_VERSION="0.2.8"
OS_VERSION=$(lsb_release)
BACKTITLE="LibreELEC Installer $INSTALLER_VERSION - $OS_VERSION"

View File

@ -357,6 +357,8 @@ fi
UUID_STORAGE="$(uuidgen)" \
UBOOT_SYSTEM="$UBOOT_SYSTEM" \
EXTRA_CMDLINE="$EXTRA_CMDLINE" \
SYSTEM_SIZE="$SYSTEM_SIZE" \
SYSTEM_PART_START="$SYSTEM_PART_START" \
$SCRIPTS/mkimage
fi
@ -453,6 +455,7 @@ fi
sed -e "s%@DISTRONAME@%$DISTRONAME%g" \
-e "s%@PROJECT@%$PROJECT%g" \
-e "s%@SYSTEM_SIZE@%$SYSTEM_SIZE%g" \
-i $RELEASE_DIR/${DISTRONAME}_${PROJECT}/partitions.json
# create System dir

View File

@ -27,7 +27,11 @@
OE_TMP=$(mktemp -d)
SAVE_ERROR="$OE_TMP/save_error"
SYSTEM_SIZE=512
if [ -z "$SYSTEM_SIZE" -o -z "$SYSTEM_PART_START" ]; then
echo "mkimage: SYSTEM_SIZE and SYSTEM_PART_START must be configured!"
exit 1
fi
STORAGE_SIZE=32 # STORAGE_SIZE must be >= 32 !
DISK_SIZE=$(( $SYSTEM_SIZE + $STORAGE_SIZE + 4 ))
@ -74,8 +78,8 @@ trap cleanup SIGINT
# create part1
echo "image: creating part1..."
SYSTEM_PART_END=$(( $SYSTEM_SIZE * 1024 * 1024 / 512 + 2048 ))
parted -s "$DISK" -a min unit s mkpart primary fat32 2048 $SYSTEM_PART_END
SYSTEM_PART_END=$(( ($SYSTEM_SIZE * 1024 * 1024 / 512) + $SYSTEM_PART_START ))
parted -s "$DISK" -a min unit s mkpart primary fat32 $SYSTEM_PART_START $SYSTEM_PART_END
if [ "$BOOTLOADER" = "syslinux" ]; then
parted -s "$DISK" set 1 legacy_boot on
else
@ -100,7 +104,7 @@ fi
# create filesystem on part1
echo "image: creating filesystem on part1..."
OFFSET=$(( 2048 * 512 ))
OFFSET=$(( $SYSTEM_PART_START * 512 ))
HEADS=4
TRACKS=32
SECTORS=$(( $SYSTEM_SIZE * 1024 * 1024 / 512 / $HEADS / $TRACKS ))