Сравнить коммиты
6 Коммитов
v2023.12.0
...
922310c823
Автор | SHA1 | Дата | |
---|---|---|---|
922310c823 | |||
6ecdd2c54b | |||
57a40f12e3 | |||
642ed76421 | |||
91f34171b6 | |||
8529525524 |
3
Makefile
3
Makefile
@ -46,7 +46,7 @@ build: $(IMAGEBUILDER_DIR_PATH) $(IMAGEBUILDER_CUSTOM_PACKAGES_DIR_PATH) $(IMAGE
|
||||
|
||||
# Cleanup old packages signature
|
||||
rm -f $(IMAGEBUILDER_DIR_PATH)/Packages $(IMAGEBUILDER_DIR_PATH)/Packages.gz $(IMAGEBUILDER_DIR_PATH)/Packages.sig
|
||||
|
||||
|
||||
# Build firmware
|
||||
$(MAKE) \
|
||||
-C "$(IMAGEBUILDER_DIR_PATH)" \
|
||||
@ -56,6 +56,7 @@ build: $(IMAGEBUILDER_DIR_PATH) $(IMAGEBUILDER_CUSTOM_PACKAGES_DIR_PATH) $(IMAGE
|
||||
CONFIG_IPV6=n \
|
||||
FILES="$(IMAGEBUILDER_CUSTOM_FILES_DIR_PATH)" \
|
||||
BIN_DIR="$(BIN_DIR)" \
|
||||
ROOTFS_PARTSIZE="$(ROOTFS_PARTSIZE)" \
|
||||
clean image
|
||||
|
||||
$(IMAGEBUILDER_DIR_PATH): $(IMAGEBUILDER_ARCHIVE_PATH)
|
||||
|
@ -1 +1 @@
|
||||
2023.12.5-stable.1332.16a59fe
|
||||
2024.1.10-stable.1332.fefac83
|
||||
|
79
misc/common/uci-defaults/99-emissary-create-data-partition.sh
Обычный файл
79
misc/common/uci-defaults/99-emissary-create-data-partition.sh
Обычный файл
@ -0,0 +1,79 @@
|
||||
#!/bin/sh
|
||||
|
||||
MIN_DISK_SPACE_MB=1000
|
||||
|
||||
list_disks() {
|
||||
lsblk -o NAME -r -d -n
|
||||
}
|
||||
|
||||
main() {
|
||||
local disks=$(list_disks)
|
||||
|
||||
local found_free_space=0
|
||||
local found_device=""
|
||||
|
||||
for device_name in ${disks}; do
|
||||
local device="/dev/${device_name}"
|
||||
echo "Checking disk '$device'..."
|
||||
|
||||
local disk_free_space="$(parted $device unit MB print free 2>/dev/null | grep 'Free Space' | tail -n1 | awk '{ print $3 }')"
|
||||
disk_free_space=${disk_free_space%MB}
|
||||
disk_free_space=$(printf '%.0f' "${disk_free_space:-0}")
|
||||
|
||||
echo "Free space on disk: ${disk_free_space}"
|
||||
|
||||
if [ ! -z "${disk_free_space}" ]; then
|
||||
if [ ${disk_free_space} -gt ${found_free_space} ]; then
|
||||
found_free_space=${disk_free_space}
|
||||
found_device=${device}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "${found_device}" ] || [ ${MIN_DISK_SPACE_MB} -gt ${found_free_space} ]; then
|
||||
echo "No device with sufficient remaining disk space, exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Creating new partition on '${found_device}' with remaining disk free space"
|
||||
|
||||
local last_partition_end_mb=$(parted "$found_device" unit MB print | awk '/^ [0-9]+ / {start=$3} END {print int(start)}')
|
||||
|
||||
if [ "${last_partition_end_mb}" != "0" ]; then
|
||||
parted -s "${found_device}" -f -a opt mkpart primary "${last_partition_end_mb}MB" '100%'
|
||||
else
|
||||
parted -s "${found_device}" -f -a opt mkpart primary '0%' '100%'
|
||||
fi
|
||||
|
||||
sync
|
||||
|
||||
local last_partition_number=$(parted ${found_device} print | grep -o -e '^ [0-9]*' | awk '{print $1}' | tail -n 1)
|
||||
local new_partition_device=$(lsblk -r -n -o PARTN,NAME ${found_device} | awk -v partition_number="${last_partition_number}" '$1 == partition_number {print $2}')
|
||||
|
||||
mkfs.ext4 -F /dev/${new_partition_device}
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Could not initialize filesystem on new partition !"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local new_partition_uuid=$(lsblk -r -n -o PARTN,UUID ${found_device} | awk -v partition_number="${last_partition_number}" '$1 == partition_number {print $2}')
|
||||
|
||||
if [ -z "${new_partition_uuid}" ]; then
|
||||
echo "Could not find partition with number '${last_partition_number}' !"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
umount -f /data
|
||||
rm -rf /data
|
||||
mkdir -p /data
|
||||
|
||||
uci add fstab mount
|
||||
uci set fstab.@mount[-1].target='/data'
|
||||
uci set fstab.@mount[-1].uuid=${new_partition_uuid}
|
||||
uci set fstab.@mount[-1].enabled='1'
|
||||
uci commit fstab
|
||||
|
||||
reload_config
|
||||
}
|
||||
|
||||
main
|
@ -1,3 +1,7 @@
|
||||
luci
|
||||
openssh-server
|
||||
openssh-sftp-server
|
||||
openssh-sftp-server
|
||||
parted
|
||||
lsblk
|
||||
e2fsprogs
|
||||
block-mount
|
Ссылка в новой задаче
Block a user