diff --git a/files/initrd/opt/rr/include/functions.sh b/files/initrd/opt/rr/include/functions.sh index a777df1b..9ff38bd2 100755 --- a/files/initrd/opt/rr/include/functions.sh +++ b/files/initrd/opt/rr/include/functions.sh @@ -378,9 +378,9 @@ function connectwlanif() { function findDSMRoot() { local DSMROOTS="" local RAIDS="$(lsblk -pno KNAME,PARTN,FSTYPE,FSVER,LABEL | grep -w " 1" | grep -w "linux_raid_member")" - if echo "${RAIDS}" | grep -q "1.2"; then - # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 - local LABELS="$(echo "${RAIDS}" | grep "1.2" | awk '{print $5}' | uniq)" + # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 + local LABELS="$(echo "${RAIDS}" | grep "1.2" | grep -E "SynologyNAS:0|DiskStation:0|SynologyNVR:0|BeeStation:0" | awk '{print $5}' | uniq)" + if [ -n "${LABELS}" ]; then for I in ${LABELS}; do [ -L "/dev/md/${I}" ] && DSMROOTS="${DSMROOTS} /dev/md/${I}" done diff --git a/files/initrd/opt/rr/menu.sh b/files/initrd/opt/rr/menu.sh index a85f4a9b..98732c12 100755 --- a/files/initrd/opt/rr/menu.sh +++ b/files/initrd/opt/rr/menu.sh @@ -1743,7 +1743,7 @@ function tryRecoveryDSM() { fi mkdir -p "${TMP_PATH}/mdX" - mount "$(echo "${DSMROOTS}" | head -n 1 | cut -d' ' -f1)" "${TMP_PATH}/mdX" + mount -t ext4 "$(echo "${DSMROOTS}" | head -n 1 | cut -d' ' -f1)" "${TMP_PATH}/mdX" if [ $? -ne 0 ]; then DIALOG --title "$(TEXT "Advanced")" \ --msgbox "$(TEXT "mount DSM system partition(md0) failed!\nPlease insert all disks before continuing.")" 0 0 @@ -1921,7 +1921,7 @@ function allowDSMDowngrade() { ( mkdir -p "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do - mount "${I}" "${TMP_PATH}/mdX" + mount -t ext4 "${I}" "${TMP_PATH}/mdX" [ $? -ne 0 ] && continue [ -f "${TMP_PATH}/mdX/etc/VERSION" ] && rm -f "${TMP_PATH}/mdX/etc/VERSION" [ -f "${TMP_PATH}/mdX/etc.defaults/VERSION" ] && rm -f "${TMP_PATH}/mdX/etc.defaults/VERSION" @@ -1948,7 +1948,7 @@ function resetDSMPassword() { rm -f "${TMP_PATH}/menu" mkdir -p "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do - mount ${I} "${TMP_PATH}/mdX" + mount -t ext4 "${I}" "${TMP_PATH}/mdX" [ $? -ne 0 ] && continue if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then while read L; do @@ -1989,7 +1989,7 @@ function resetDSMPassword() { ( mkdir -p "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do - mount "${I}" "${TMP_PATH}/mdX" + mount -t ext4 "${I}" "${TMP_PATH}/mdX" [ $? -ne 0 ] && continue OLDPASSWD="$(cat "${TMP_PATH}/mdX/etc/shadow" 2>/dev/null | grep "^${USER}:" | awk -F ':' '{print $2}')" if [ -n "${NEWPASSWD}" -a -n "${OLDPASSWD}" ]; then @@ -2032,7 +2032,7 @@ function addNewDSMUser() { mkdir -p "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do - mount "${I}" "${TMP_PATH}/mdX" + mount -t ext4 "${I}" "${TMP_PATH}/mdX" [ $? -ne 0 ] && continue if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then sqlite3 ${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db <