@@ -27,9 +27,7 @@ else
|
||||
MACHINE="NATIVE"
|
||||
fi
|
||||
|
||||
# Get Loader Disk information
|
||||
LOADER_DISK="$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1)"
|
||||
LOADER_DEVICE_NAME=$(echo "${LOADER_DISK}" | sed 's|/dev/||')
|
||||
# Get Loader Disk Bus
|
||||
BUS=$(getBus "${LOADER_DISK}")
|
||||
|
||||
# Set Warning to 0
|
||||
@@ -539,10 +537,10 @@ function make() {
|
||||
--msgbox "ERROR: No DSM Image found!" 0 0
|
||||
fi
|
||||
# Copy DSM Files to Locations if DSM Files not found
|
||||
cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${BOOTLOADER_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${BOOTLOADER_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${SLPART_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${SLPART_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${PART1_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${PART1_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/grub_cksum.syno" "${PART2_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/GRUB_VER" "${PART2_PATH}"
|
||||
cp -f "${UNTAR_PAT_PATH}/zImage" "${ORI_ZIMAGE_FILE}"
|
||||
cp -f "${UNTAR_PAT_PATH}/rd.gz" "${ORI_RDGZ_FILE}"
|
||||
rm -rf "${UNTAR_PAT_PATH}"
|
||||
@@ -1312,7 +1310,7 @@ function backupMenu() {
|
||||
)
|
||||
dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \
|
||||
--infobox "Restore in progress..." 0 0
|
||||
umount "${BOOTLOADER_PATH}" "${SLPART_PATH}" "${CACHE_PATH}"
|
||||
umount "${PART1_PATH}" "${PART2_PATH}" "${PART3_PATH}"
|
||||
if [ "${IFTOOL}" = "zip" ]; then
|
||||
unzip -p "${TMP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync
|
||||
elif [ "${IFTOOL}" = "gzip" ]; then
|
||||
@@ -1400,8 +1398,8 @@ function backupMenu() {
|
||||
writeConfigKey "productver" "${majorversion}.${minorversion}" "${USER_CONFIG_FILE}"
|
||||
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${PRODUCTVER}" ]; then
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${PART2_PATH}"
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${PART2_PATH}"
|
||||
TEXT="Installation found:\nModel: ${MODEL}\nVersion: ${PRODUCTVER}"
|
||||
SN=$(_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf")
|
||||
if [ -n "${SN}" ]; then
|
||||
@@ -1509,7 +1507,7 @@ function backupMenu() {
|
||||
)
|
||||
dialog --backtitle "$(backtitle)" --title "Restore Loader disk" --aspect 18 \
|
||||
--infobox "Restore in progress..." 0 0
|
||||
umount "${BOOTLOADER_PATH}" "${SLPART_PATH}" "${CACHE_PATH}"
|
||||
umount "${PART1_PATH}" "${PART2_PATH}" "${PART3_PATH}"
|
||||
if [ "${IFTOOL}" = "zip" ]; then
|
||||
unzip -p "${TMP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync
|
||||
elif [ "${IFTOOL}" = "gzip" ]; then
|
||||
@@ -1587,8 +1585,8 @@ function backupMenu() {
|
||||
writeConfigKey "productver" "${majorversion}.${minorversion}" "${USER_CONFIG_FILE}"
|
||||
PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${PRODUCTVER}" ]; then
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${SLPART_PATH}"
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${SLPART_PATH}"
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/zImage" "${PART2_PATH}"
|
||||
cp -f "${DSMROOT_PATH}/.syno/patch/rd.gz" "${PART2_PATH}"
|
||||
TEXT="Installation found:\nModel: ${MODEL}\nVersion: ${PRODUCTVER}"
|
||||
SN=$(_get_conf_kv SN "${DSMROOT_PATH}/etc/synoinfo.conf")
|
||||
if [ -n "${SN}" ]; then
|
||||
@@ -1701,7 +1699,7 @@ function updateMenu() {
|
||||
dialog --backtitle "$(backtitle)" --title "Upgrade Loader" --aspect 18 \
|
||||
--infobox "Installing new Loader Image" 0 0
|
||||
# Process complete update
|
||||
umount "${BOOTLOADER_PATH}" "${SLPART_PATH}" "${CACHE_PATH}"
|
||||
umount "${PART1_PATH}" "${PART2_PATH}" "${PART3_PATH}"
|
||||
dd if="${TMP_PATH}/arc.img" of=$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1) bs=1M conv=fsync
|
||||
# Ask for Boot
|
||||
rm -f "${TMP_PATH}/arc.img"
|
||||
@@ -1750,10 +1748,10 @@ function updateMenu() {
|
||||
unzip -oq "${TMP_PATH}/update.zip" -d "${TMP_PATH}/update" >/dev/null 2>&1
|
||||
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
|
||||
--infobox "Updating Loader Image" 0 0
|
||||
cp -f "${TMP_PATH}/update/bzImage" "${CACHE_PATH}/bzImage-arc"
|
||||
cp -f "${TMP_PATH}/update/rootfs.cpio.xz" "${CACHE_PATH}/initrd-arc"
|
||||
cp -f "${TMP_PATH}/update/ARC-VERSION" "${BOOTLOADER_PATH}/ARC-VERSION"
|
||||
cp -f "${TMP_PATH}/update/grub.cfg" "${BOOTLOADER_PATH}/boot/grub/grub.cfg"
|
||||
cp -f "${TMP_PATH}/update/bzImage" "${PART3_PATH}/bzImage-arc"
|
||||
cp -f "${TMP_PATH}/update/rootfs.cpio.xz" "${PART3_PATH}/initrd-arc"
|
||||
cp -f "${TMP_PATH}/update/ARC-VERSION" "${PART1_PATH}/ARC-VERSION"
|
||||
cp -f "${TMP_PATH}/update/grub.cfg" "${PART1_PATH}/boot/grub/grub.cfg"
|
||||
rm -rf "${TMP_PATH}/update"
|
||||
rm -f "${TMP_PATH}/update.zip"
|
||||
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
|
||||
@@ -2441,10 +2439,10 @@ function saveMenu() {
|
||||
--infobox "Saving ..." 0 0
|
||||
RDXZ_PATH="${TMP_PATH}/rdxz_tmp"
|
||||
mkdir -p "${RDXZ_PATH}"
|
||||
(cd "${RDXZ_PATH}"; xz -dc <"${CACHE_PATH}/initrd-arc" | cpio -idm) >/dev/null 2>&1 || true
|
||||
(cd "${RDXZ_PATH}"; xz -dc <"${PART3_PATH}/initrd-arc" | cpio -idm) >/dev/null 2>&1 || true
|
||||
rm -rf "${RDXZ_PATH}/opt/arc"
|
||||
cp -Rf "/opt" "${RDXZ_PATH}"
|
||||
(cd "${RDXZ_PATH}"; find . 2>/dev/null | cpio -o -H newc -R root:root | xz --check=crc32 >"${CACHE_PATH}/initrd-arc") || true
|
||||
(cd "${RDXZ_PATH}"; find . 2>/dev/null | cpio -o -H newc -R root:root | xz --check=crc32 >"${PART3_PATH}/initrd-arc") || true
|
||||
rm -rf "${RDXZ_PATH}"
|
||||
dialog --backtitle "$(backtitle)" --colors --aspect 18 \
|
||||
--msgbox "Save to Disk is complete." 0 0
|
||||
@@ -2493,7 +2491,7 @@ function resetLoader() {
|
||||
# Clean old files
|
||||
rm -f "${ORI_ZIMAGE_FILE}" "${ORI_RDGZ_FILE}" "${MOD_ZIMAGE_FILE}" "${MOD_RDGZ_FILE}" "${USER_CONFIG_FILE}"
|
||||
rm -rf "${UNTAR_PAT_PATH}"
|
||||
rm -rf "${CACHE_PATH}/${MODEL}"
|
||||
rm -rf "${PART3_PATH}/${MODEL}"
|
||||
fi
|
||||
if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
||||
touch "${USER_CONFIG_FILE}"
|
||||
|
||||
@@ -5,15 +5,7 @@ set -e
|
||||
|
||||
. ${ARC_PATH}/include/functions.sh
|
||||
|
||||
# Wait kernel enumerate the disks
|
||||
CNT=3
|
||||
while true; do
|
||||
[ ${CNT} -eq 0 ] && break
|
||||
LOADER_DISK="$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1)"
|
||||
[ -n "${LOADER_DISK}" ] && break
|
||||
CNT=$((${CNT} - 1))
|
||||
sleep 1
|
||||
done
|
||||
# Get Loader Disk Bus
|
||||
BUS=$(getBus "${LOADER_DISK}")
|
||||
|
||||
# Check if machine has EFI
|
||||
|
||||
@@ -86,7 +86,7 @@ function untarAddon() {
|
||||
###############################################################################
|
||||
# Detect if has new local plugins to install/reinstall
|
||||
function updateAddons() {
|
||||
for F in $(ls ${CACHE_PATH}/*.addon 2>/dev/null); do
|
||||
for F in $(ls ${PART3_PATH}/*.addon 2>/dev/null); do
|
||||
ADDON=$(basename "${F}" | sed 's|.addon||')
|
||||
rm -rf "${ADDONS_PATH}/${ADDON:?}"
|
||||
mkdir -p "${ADDONS_PATH}/${ADDON}"
|
||||
|
||||
@@ -3,9 +3,9 @@ ARC_VERSION="23.1.1"
|
||||
ARC_TITLE="Arc ${ARC_VERSION}"
|
||||
|
||||
# Define paths
|
||||
BOOTLOADER_PATH="/mnt/p1"
|
||||
SLPART_PATH="/mnt/p2"
|
||||
CACHE_PATH="/mnt/p3"
|
||||
PART1_PATH="/mnt/p1"
|
||||
PART2_PATH="/mnt/p2"
|
||||
PART3_PATH="/mnt/p3"
|
||||
DSMROOT_PATH="/mnt/dsmroot"
|
||||
TMP_PATH="/tmp"
|
||||
|
||||
@@ -13,26 +13,26 @@ UNTAR_PAT_PATH="${TMP_PATH}/DSM"
|
||||
RAMDISK_PATH="${TMP_PATH}/ramdisk"
|
||||
LOG_FILE="${TMP_PATH}/log.txt"
|
||||
|
||||
USER_CONFIG_FILE="${BOOTLOADER_PATH}/user-config.yml"
|
||||
GRUB_PATH="${BOOTLOADER_PATH}/boot/grub"
|
||||
USER_CONFIG_FILE="${PART1_PATH}/user-config.yml"
|
||||
GRUB_PATH="${PART1_PATH}/boot/grub"
|
||||
|
||||
ORI_ZIMAGE_FILE="${SLPART_PATH}/zImage"
|
||||
ORI_RDGZ_FILE="${SLPART_PATH}/rd.gz"
|
||||
ORI_ZIMAGE_FILE="${PART2_PATH}/zImage"
|
||||
ORI_RDGZ_FILE="${PART2_PATH}/rd.gz"
|
||||
|
||||
ARC_BZIMAGE_FILE="${CACHE_PATH}/bzImage-arc"
|
||||
ARC_RAMDISK_FILE="${CACHE_PATH}/initrd-arc"
|
||||
MOD_ZIMAGE_FILE="${CACHE_PATH}/zImage-dsm"
|
||||
MOD_RDGZ_FILE="${CACHE_PATH}/initrd-dsm"
|
||||
ARC_BZIMAGE_FILE="${PART3_PATH}/bzImage-arc"
|
||||
ARC_RAMDISK_FILE="${PART3_PATH}/initrd-arc"
|
||||
MOD_ZIMAGE_FILE="${PART3_PATH}/zImage-dsm"
|
||||
MOD_RDGZ_FILE="${PART3_PATH}/initrd-dsm"
|
||||
|
||||
ADDONS_PATH="${CACHE_PATH}/addons"
|
||||
EXTENSIONS_PATH="${CACHE_PATH}/extensions"
|
||||
MODULES_PATH="${CACHE_PATH}/modules"
|
||||
MODEL_CONFIG_PATH="${CACHE_PATH}/configs"
|
||||
PATCH_PATH="${CACHE_PATH}/patches"
|
||||
LKM_PATH="${CACHE_PATH}/lkms"
|
||||
USER_UP_PATH="${CACHE_PATH}/users"
|
||||
BACKUPDIR="${CACHE_PATH}/backup"
|
||||
ADDONS_PATH="${PART3_PATH}/addons"
|
||||
EXTENSIONS_PATH="${PART3_PATH}/extensions"
|
||||
MODULES_PATH="${PART3_PATH}/modules"
|
||||
MODEL_CONFIG_PATH="${PART3_PATH}/configs"
|
||||
PATCH_PATH="${PART3_PATH}/patches"
|
||||
LKM_PATH="${PART3_PATH}/lkms"
|
||||
USER_UP_PATH="${PART3_PATH}/users"
|
||||
BACKUPDIR="${PART3_PATH}/backup"
|
||||
BB_USER_CONFIG_FILE="${BACKUPDIR}/user-config.yml"
|
||||
|
||||
EXTRACTOR_PATH="${CACHE_PATH}/extractor"
|
||||
EXTRACTOR_PATH="${PART3_PATH}/extractor"
|
||||
EXTRACTOR_BIN="syno_extract_system_patch"
|
||||
@@ -82,7 +82,7 @@ function untarExtension() {
|
||||
###############################################################################
|
||||
# Detect if has new local plugins to install/reinstall
|
||||
function updateExtensions() {
|
||||
for F in $(ls ${CACHE_PATH}/*.extension 2>/dev/null); do
|
||||
for F in $(ls ${PART3_PATH}/*.extension 2>/dev/null); do
|
||||
EXTENSION=$(basename "${F}" | sed 's|.extension||')
|
||||
rm -rf "${EXTENSIONS_PATH}/${EXTENSION:?}"
|
||||
mkdir -p "${EXTENSIONS_PATH}/${EXTENSION}"
|
||||
|
||||
@@ -5,34 +5,7 @@ set -e
|
||||
|
||||
. ${ARC_PATH}/include/functions.sh
|
||||
|
||||
# Wait kernel enumerate the disks
|
||||
CNT=3
|
||||
while true; do
|
||||
[ ${CNT} -eq 0 ] && break
|
||||
LOADER_DISK="$(blkid | grep 'LABEL="ARC3"' | cut -d3 -f1)"
|
||||
[ -n "${LOADER_DISK}" ] && break
|
||||
CNT=$((${CNT} - 1))
|
||||
sleep 1
|
||||
done
|
||||
|
||||
[ -z "${LOADER_DISK}" ] && die "Loader disk not found!"
|
||||
NUM_PARTITIONS=$(blkid | grep "${LOADER_DISK}[0-9]\+" | cut -d: -f1 | wc -l)
|
||||
[ ${NUM_PARTITIONS} -lt 3 ] && die "Loader disk seems to be damaged!"
|
||||
[ ${NUM_PARTITIONS} -gt 3 ] && die "There are multiple loader disks, please insert only one loader disk!"
|
||||
|
||||
# Check partitions and ignore errors
|
||||
fsck.vfat -aw ${LOADER_DISK}1 >/dev/null 2>&1 || true
|
||||
fsck.ext2 -p ${LOADER_DISK}2 >/dev/null 2>&1 || true
|
||||
fsck.ext4 -p ${LOADER_DISK}3 >/dev/null 2>&1 || true
|
||||
# Make folders to mount partitions
|
||||
mkdir -p ${BOOTLOADER_PATH}
|
||||
mkdir -p ${SLPART_PATH}
|
||||
mkdir -p ${CACHE_PATH}
|
||||
mkdir -p ${DSMROOT_PATH}
|
||||
# Mount the partitions
|
||||
mount ${LOADER_DISK}1 ${BOOTLOADER_PATH} || die "Can't mount ${BOOTLOADER_PATH}"
|
||||
mount ${LOADER_DISK}2 ${SLPART_PATH} || die "Can't mount ${SLPART_PATH}"
|
||||
mount ${LOADER_DISK}3 ${CACHE_PATH} || die "Can't mount ${CACHE_PATH}"
|
||||
[ -z "${LOADER_DISK}" ] && die "Loader Disk not found!"
|
||||
|
||||
# Shows title
|
||||
clear
|
||||
@@ -43,19 +16,6 @@ printf "\033[1;30m%*s\033[A\n" ${COLUMNS} ""
|
||||
printf "\033[1;34m%*s\033[0m\n" $(((${#TITLE} + ${COLUMNS}) / 2)) "${TITLE}"
|
||||
printf "\033[1;30m%*s\033[0m\n" ${COLUMNS} ""
|
||||
|
||||
# Move/link SSH machine keys to/from cache volume
|
||||
[ ! -d "${PART3_PATH}/ssh" ] && cp -R "/etc/ssh" "${PART3_PATH}/ssh"
|
||||
rm -rf "/etc/ssh"
|
||||
ln -s "${PART3_PATH}/ssh" "/etc/ssh"
|
||||
|
||||
# Link bash history to cache volume
|
||||
rm -rf ~/.bash_history
|
||||
ln -s "${PART3_PATH}/.bash_history" ~/.bash_history
|
||||
touch ~/.bash_history
|
||||
if ! grep -q "arc.sh" ~/.bash_history; then
|
||||
echo "arc.sh " >>~/.bash_history
|
||||
fi
|
||||
|
||||
# If user config file not exists, initialize it
|
||||
if [ ! -f "${USER_CONFIG_FILE}" ]; then
|
||||
touch "${USER_CONFIG_FILE}"
|
||||
|
||||
Reference in New Issue
Block a user