Fix md0 related operations

This commit is contained in:
Ing 2024-04-23 05:54:16 +08:00
parent 6c52b75150
commit bc5b6fe1de
2 changed files with 11 additions and 19 deletions

View File

@ -376,17 +376,9 @@ function connectwlanif() {
# Find and mount the DSM root filesystem
# (based on pocopico's TCRP code)
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)"
for I in ${LABELS}; do
[ -L "/dev/md/${I}" ] && DSMROOTS="${DSMROOTS} /dev/md/${I}"
done
elif echo "${RAIDS}" | grep -q "0.9"; then
DSMROOTS="$(echo "${RAIDS}" | grep "0.9" | awk '{print $1}')"
fi
echo ${DSMROOTS}
DSMROOTS=""
[ -z "${DSMROOTS}" ] && DSMROOTS="$(mdadm --detail --scan 2>/dev/null | grep -E "name=SynologyNAS:0|name=DiskStation:0|name=SynologyNVR:0|name=BeeStation:0" | awk '{print $2}' | uniq)"
[ -z "${DSMROOTS}" ] && DSMROOTS="$(lsblk -pno KNAME,PARTN,FSTYPE,FSVER,LABEL | grep -E "sd[a-z]{1,2}1" | grep -w "linux_raid_member" | grep "0.9" | awk '{print $1}')"
echo "${DSMROOTS}"
return 0
}

View File

@ -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 <<EOF
@ -2069,7 +2069,7 @@ function forceEnableDSMTelnetSSH() {
ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_SSH'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n"
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 <<EOF
@ -2109,7 +2109,7 @@ function removeBlockIPDB {
(
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/synoautoblock.db" ] && rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db"
sync