mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
添加DSM根分区检查与修复功能,屏蔽0B虚拟磁盘
This commit is contained in:
parent
7b4bb1a9f4
commit
5ae9098c11
@ -68,6 +68,7 @@ DT="$(readConfigKey "platforms.${PLATFORM}.dt" "${WORK_PATH}/platforms.yml")"
|
|||||||
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
|
KVER="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kver" "${WORK_PATH}/platforms.yml")"
|
||||||
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
|
KPRE="$(readConfigKey "platforms.${PLATFORM}.productvers.\"${PRODUCTVER}\".kpre" "${WORK_PATH}/platforms.yml")"
|
||||||
|
|
||||||
|
MEV="$(virt-what 2>/dev/null)"
|
||||||
DMI="$(dmesg 2>/dev/null | grep -i "DMI:" | head -1 | sed 's/\[.*\] DMI: //i')"
|
DMI="$(dmesg 2>/dev/null | grep -i "DMI:" | head -1 | sed 's/\[.*\] DMI: //i')"
|
||||||
CPU="$(awk -F': ' '/model name/ {print $2}' /proc/cpuinfo | uniq)"
|
CPU="$(awk -F': ' '/model name/ {print $2}' /proc/cpuinfo | uniq)"
|
||||||
MEM="$(awk '/MemTotal:/ {printf "%.0f", $2 / 1024}' /proc/meminfo) MB"
|
MEM="$(awk '/MemTotal:/ {printf "%.0f", $2 / 1024}' /proc/meminfo) MB"
|
||||||
@ -76,6 +77,7 @@ printf "%s \033[1;36m%s(%s)\033[0m\n" "$(TEXT "Model: ")" "${MODEL}" "${PLATFO
|
|||||||
printf "%s \033[1;36m%s(%s%s)\033[0m\n" "$(TEXT "Version: ")" "${PRODUCTVER}" "${BUILDNUM}" "$([ ${SMALLNUM:-0} -ne 0 ] && echo "u${SMALLNUM}")"
|
printf "%s \033[1;36m%s(%s%s)\033[0m\n" "$(TEXT "Version: ")" "${PRODUCTVER}" "${BUILDNUM}" "$([ ${SMALLNUM:-0} -ne 0 ] && echo "u${SMALLNUM}")"
|
||||||
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "Kernel: ")" "${KERNEL}"
|
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "Kernel: ")" "${KERNEL}"
|
||||||
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "LKM: ")" "${LKM}"
|
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "LKM: ")" "${LKM}"
|
||||||
|
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "MEV: ")" "${MEV:-physical}"
|
||||||
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "DMI: ")" "${DMI}"
|
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "DMI: ")" "${DMI}"
|
||||||
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "CPU: ")" "${CPU}"
|
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "CPU: ")" "${CPU}"
|
||||||
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "MEM: ")" "${MEM}"
|
printf "%s \033[1;36m%s\033[0m\n" "$(TEXT "MEM: ")" "${MEM}"
|
||||||
@ -178,6 +180,7 @@ CMDLINE['pcie_aspm']="off"
|
|||||||
# CMDLINE['nox2apic']="" # check platform
|
# CMDLINE['nox2apic']="" # check platform
|
||||||
# CMDLINE['nomodeset']=""
|
# CMDLINE['nomodeset']=""
|
||||||
CMDLINE['modprobe.blacklist']="${MODBLACKLIST}"
|
CMDLINE['modprobe.blacklist']="${MODBLACKLIST}"
|
||||||
|
CMDLINE['mev']="${MEV:-physical}"
|
||||||
|
|
||||||
if echo "apollolake geminilake purley" | grep -wq "${PLATFORM}"; then
|
if echo "apollolake geminilake purley" | grep -wq "${PLATFORM}"; then
|
||||||
CMDLINE["nox2apic"]=""
|
CMDLINE["nox2apic"]=""
|
||||||
@ -266,6 +269,7 @@ if [ "${DIRECT}" = "true" ]; then
|
|||||||
grub-editenv ${USER_GRUBENVFILE} set dsm_version="${PRODUCTVER}(${BUILDNUM}$([ ${SMALLNUM:-0} -ne 0 ] && echo "u${SMALLNUM}"))"
|
grub-editenv ${USER_GRUBENVFILE} set dsm_version="${PRODUCTVER}(${BUILDNUM}$([ ${SMALLNUM:-0} -ne 0 ] && echo "u${SMALLNUM}"))"
|
||||||
grub-editenv ${USER_GRUBENVFILE} set dsm_kernel="${KERNEL}"
|
grub-editenv ${USER_GRUBENVFILE} set dsm_kernel="${KERNEL}"
|
||||||
grub-editenv ${USER_GRUBENVFILE} set dsm_lkm="${LKM}"
|
grub-editenv ${USER_GRUBENVFILE} set dsm_lkm="${LKM}"
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} set sys_mev="${MEV:-physical}"
|
||||||
grub-editenv ${USER_GRUBENVFILE} set sys_dmi="${DMI}"
|
grub-editenv ${USER_GRUBENVFILE} set sys_dmi="${DMI}"
|
||||||
grub-editenv ${USER_GRUBENVFILE} set sys_cpu="${CPU}"
|
grub-editenv ${USER_GRUBENVFILE} set sys_cpu="${CPU}"
|
||||||
grub-editenv ${USER_GRUBENVFILE} set sys_mem="${MEM}"
|
grub-editenv ${USER_GRUBENVFILE} set sys_mem="${MEM}"
|
||||||
@ -285,6 +289,7 @@ else
|
|||||||
grub-editenv ${USER_GRUBENVFILE} unset dsm_version
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_version
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset dsm_kernel
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_kernel
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset dsm_lkm
|
grub-editenv ${USER_GRUBENVFILE} unset dsm_lkm
|
||||||
|
grub-editenv ${USER_GRUBENVFILE} unset sys_mev
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset sys_dmi
|
grub-editenv ${USER_GRUBENVFILE} unset sys_dmi
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset sys_cpu
|
grub-editenv ${USER_GRUBENVFILE} unset sys_cpu
|
||||||
grub-editenv ${USER_GRUBENVFILE} unset sys_mem
|
grub-editenv ${USER_GRUBENVFILE} unset sys_mem
|
||||||
|
@ -215,7 +215,7 @@ function _get_fastest() {
|
|||||||
speedlist+="${I} ${speed:-999}\n" # Assign default value 999 if speed is empty
|
speedlist+="${I} ${speed:-999}\n" # Assign default value 999 if speed is empty
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
local fastest="$(echo -e "${speedlist}" | tr -s '\n' | grep -v '999$' | sort -k2n | head -1)"
|
local fastest="$(echo -e "${speedlist}" | tr -s '\n' | awk '$2 != "999"' | sort -k2n | head -1)"
|
||||||
URL="$(echo "${fastest}" | awk '{print $1}')"
|
URL="$(echo "${fastest}" | awk '{print $1}')"
|
||||||
SPD="$(echo "${fastest}" | awk '{print $2}')" # It is a float type
|
SPD="$(echo "${fastest}" | awk '{print $2}')" # It is a float type
|
||||||
echo "${URL:-${1}}"
|
echo "${URL:-${1}}"
|
||||||
@ -438,6 +438,17 @@ function findDSMRoot() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# check and fix the DSM root partition
|
||||||
|
# 1 - DSM root path
|
||||||
|
function fixDSMRootPart() {
|
||||||
|
if mdadm --detail "${1}" 2>/dev/null | grep -i "State" | grep -iEq "active|FAILED|Not Started"; then
|
||||||
|
mdadm --stop "${1}" >/dev/null 2>&1
|
||||||
|
mdadm --assemble --scan >/dev/null 2>&1
|
||||||
|
fsck "${1}" >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Copy DSM files to the boot partition
|
# Copy DSM files to the boot partition
|
||||||
# 1 - DSM root path
|
# 1 - DSM root path
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1519,8 +1519,7 @@ function showDisksInfo() {
|
|||||||
MSG+="\Zb${NAME}\Zn\nPorts: "
|
MSG+="\Zb${NAME}\Zn\nPorts: "
|
||||||
PORTS=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
PORTS=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||||
for P in ${PORTS}; do
|
for P in ${PORTS}; do
|
||||||
if lsscsi -b 2>/dev/null | grep -v - | grep -q "\[${P}:"; then
|
if lsscsi -bS 2>/dev/null | awk '$3 != "0"' | grep -v - | grep -q "\[${P}:"; then
|
||||||
DUMMY="$([ "$(cat /sys/class/scsi_host/host${P}/ahci_port_cmd 2>/dev/null)" = "0" ] && echo 1 || echo 2)"
|
|
||||||
if [ "$(cat /sys/class/scsi_host/host${P}/ahci_port_cmd 2>/dev/null)" = "0" ]; then
|
if [ "$(cat /sys/class/scsi_host/host${P}/ahci_port_cmd 2>/dev/null)" = "0" ]; then
|
||||||
MSG+="\Z1$(printf "%02d" ${P})\Zn "
|
MSG+="\Z1$(printf "%02d" ${P})\Zn "
|
||||||
else
|
else
|
||||||
@ -1537,16 +1536,16 @@ function showDisksInfo() {
|
|||||||
for PCI in $(lspci -d ::104 2>/dev/null | awk '{print $1}'); do
|
for PCI in $(lspci -d ::104 2>/dev/null | awk '{print $1}'); do
|
||||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||||
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[${PORT}:" | wc -l)
|
PORTNUM=$(lsscsi -bS 2>/dev/null | awk '$3 != "0"' | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||||
[ ${PORTNUM} -eq 0 ] && continue
|
[ ${PORTNUM} -eq 0 ] && continue
|
||||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||||
done
|
done
|
||||||
[ $(lspci -d ::107 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nSerial Attached SCSI:\n"
|
[ $(lspci -d ::107 2>/dev/null | wc -l) -gt 0 ] && MSG+="\nSAS:\n"
|
||||||
for PCI in $(lspci -d ::107 2>/dev/null | awk '{print $1}'); do
|
for PCI in $(lspci -d ::107 2>/dev/null | awk '{print $1}'); do
|
||||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||||
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[${PORT}:" | wc -l)
|
PORTNUM=$(lsscsi -bS 2>/dev/null | awk '$3 != "0"' | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||||
[ ${PORTNUM} -eq 0 ] && continue
|
[ ${PORTNUM} -eq 0 ] && continue
|
||||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||||
@ -1571,12 +1570,12 @@ function showDisksInfo() {
|
|||||||
for PCI in $(lspci -d ::c03 2>/dev/null | awk '{print $1}'); do
|
for PCI in $(lspci -d ::c03 2>/dev/null | awk '{print $1}'); do
|
||||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||||
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
PORT=$(ls -l /sys/class/scsi_host 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/host//' | sort -n)
|
||||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[${PORT}:" | wc -l)
|
PORTNUM=$(lsscsi -bS 2>/dev/null | awk '$3 != "0"' | grep -v - | grep "\[${PORT}:" | wc -l)
|
||||||
[ ${PORTNUM} -eq 0 ] && continue
|
[ ${PORTNUM} -eq 0 ] && continue
|
||||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||||
done
|
done
|
||||||
[ $(ls -l /sys/class/mmc_host 2>/dev/null | grep mmc_host | wc -l) -gt 0 ] && MSG+="\nMMC:\n"
|
[ $(ls -l /sys/block/mmc* | wc -l) -gt 0 ] && MSG+="\nMMC:\n"
|
||||||
for PCI in $(lspci -d ::805 2>/dev/null | awk '{print $1}'); do
|
for PCI in $(lspci -d ::805 2>/dev/null | awk '{print $1}'); do
|
||||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||||
PORTNUM=$(ls -l /sys/block/mmc* 2>/dev/null | grep "${PCI}" | wc -l)
|
PORTNUM=$(ls -l /sys/block/mmc* 2>/dev/null | grep "${PCI}" | wc -l)
|
||||||
@ -1588,7 +1587,7 @@ function showDisksInfo() {
|
|||||||
for PCI in $(lspci -d ::108 2>/dev/null | awk '{print $1}'); do
|
for PCI in $(lspci -d ::108 2>/dev/null | awk '{print $1}'); do
|
||||||
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
NAME=$(lspci -s "${PCI}" 2>/dev/null | sed "s/\ .*://")
|
||||||
PORT=$(ls -l /sys/class/nvme 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/nvme//' | sort -n)
|
PORT=$(ls -l /sys/class/nvme 2>/dev/null | grep "${PCI}" | awk -F'/' '{print $NF}' | sed 's/nvme//' | sort -n)
|
||||||
PORTNUM=$(lsscsi -b 2>/dev/null | grep -v - | grep "\[N:${PORT}:" | wc -l)
|
PORTNUM=$(lsscsi -bS 2>/dev/null | awk '$3 != "0"' | grep -v - | grep "\[N:${PORT}:" | wc -l)
|
||||||
[ ${PORTNUM} -eq 0 ] && continue
|
[ ${PORTNUM} -eq 0 ] && continue
|
||||||
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
MSG+="\Zb${NAME}\Zn\nNumber: ${PORTNUM}\n"
|
||||||
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
NUMPORTS=$((${NUMPORTS} + ${PORTNUM}))
|
||||||
@ -1643,7 +1642,7 @@ function MountDSMVolume {
|
|||||||
function formatDisks() {
|
function formatDisks() {
|
||||||
rm -f "${TMP_PATH}/opts"
|
rm -f "${TMP_PATH}/opts"
|
||||||
while read -r KNAME ID SIZE TYPE PKNAME; do
|
while read -r KNAME ID SIZE TYPE PKNAME; do
|
||||||
[ "${KNAME}" = "N/A" ] && continue
|
[ "${KNAME}" = "N/A" ] || [ "${SIZE:0:1}" = "0" ] && continue
|
||||||
[ "${KNAME:0:7}" = "/dev/md" ] && continue
|
[ "${KNAME:0:7}" = "/dev/md" ] && continue
|
||||||
[ "${KNAME}" = "${LOADER_DISK}" ] || [ "${PKNAME}" = "${LOADER_DISK}" ] && continue
|
[ "${KNAME}" = "${LOADER_DISK}" ] || [ "${PKNAME}" = "${LOADER_DISK}" ] && continue
|
||||||
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${TYPE}" "${ID}" >>"${TMP_PATH}/opts"
|
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${TYPE}" "${ID}" >>"${TMP_PATH}/opts"
|
||||||
@ -1732,6 +1731,7 @@ function allowDSMDowngrade() {
|
|||||||
(
|
(
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
rm -f "${TMP_PATH}/mdX/etc/VERSION" "${TMP_PATH}/mdX/etc.defaults/VERSION"
|
rm -f "${TMP_PATH}/mdX/etc/VERSION" "${TMP_PATH}/mdX/etc.defaults/VERSION"
|
||||||
@ -1762,6 +1762,7 @@ function resetDSMPassword() {
|
|||||||
rm -f "${TMP_PATH}/menu"
|
rm -f "${TMP_PATH}/menu"
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then
|
if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then
|
||||||
@ -1806,6 +1807,7 @@ function resetDSMPassword() {
|
|||||||
# local NEWPASSWD="$(echo "${VALUE}" | mkpasswd -m sha512)"
|
# local NEWPASSWD="$(echo "${VALUE}" | mkpasswd -m sha512)"
|
||||||
local NEWPASSWD="$(openssl passwd -6 -salt $(openssl rand -hex 8) "${VALUE}")"
|
local NEWPASSWD="$(openssl passwd -6 -salt $(openssl rand -hex 8) "${VALUE}")"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
sed -i "s|^${USER}:[^:]*|${USER}:${NEWPASSWD}|" "${TMP_PATH}/mdX/etc/shadow"
|
sed -i "s|^${USER}:[^:]*|${USER}:${NEWPASSWD}|" "${TMP_PATH}/mdX/etc/shadow"
|
||||||
@ -1851,6 +1853,7 @@ function addNewDSMUser() {
|
|||||||
|
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
|
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
|
||||||
@ -1891,6 +1894,7 @@ function forceEnableDSMTelnetSSH() {
|
|||||||
ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_SSH'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n"
|
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"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
|
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
|
||||||
@ -1933,6 +1937,7 @@ function removeBlockIPDB {
|
|||||||
(
|
(
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db"
|
rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db"
|
||||||
@ -1964,6 +1969,7 @@ function disablescheduledTasks {
|
|||||||
(
|
(
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
|
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
|
||||||
@ -2003,6 +2009,7 @@ function initDSMNetwork {
|
|||||||
(
|
(
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
rm -f "${TMP_PATH}/mdX/etc/sysconfig/network-scripts/ifcfg-bond"* "${TMP_PATH}/mdX/etc/sysconfig/network-scripts/ifcfg-eth"*
|
rm -f "${TMP_PATH}/mdX/etc/sysconfig/network-scripts/ifcfg-bond"* "${TMP_PATH}/mdX/etc/sysconfig/network-scripts/ifcfg-eth"*
|
||||||
@ -2128,14 +2135,16 @@ function tryRecoveryDSM() {
|
|||||||
DIALOG --title "$(TEXT "Settings")" \
|
DIALOG --title "$(TEXT "Settings")" \
|
||||||
--infobox "$(TEXT "Trying to recover an installed DSM system ...")" 0 0
|
--infobox "$(TEXT "Trying to recover an installed DSM system ...")" 0 0
|
||||||
DSMROOTS="$(findDSMRoot)"
|
DSMROOTS="$(findDSMRoot)"
|
||||||
if [ -z "${DSMROOTS}" ]; then
|
DSMROOTPART="$(echo "${DSMROOTS}" | head -n 1 | cut -d' ' -f1)"
|
||||||
|
if [ -z "${DSMROOTPART}" ]; then
|
||||||
DIALOG --title "$(TEXT "Settings")" \
|
DIALOG --title "$(TEXT "Settings")" \
|
||||||
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
|
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
mount -t ext4 "$(echo "${DSMROOTS}" | head -n 1 | cut -d' ' -f1)" "${TMP_PATH}/mdX"
|
fixDSMRootPart "${DSMROOTPART}"
|
||||||
|
mount -t ext4 "${DSMROOTPART}" "${TMP_PATH}/mdX"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
DIALOG --title "$(TEXT "Settings")" \
|
DIALOG --title "$(TEXT "Settings")" \
|
||||||
--msgbox "$(TEXT "Mount DSM system partition(md0) failed!\nPlease insert all disks before continuing.")" 0 0
|
--msgbox "$(TEXT "Mount DSM system partition(md0) failed!\nPlease insert all disks before continuing.")" 0 0
|
||||||
@ -2359,6 +2368,7 @@ function reportBugs() {
|
|||||||
if [ -n "${DSMROOTS}" ]; then
|
if [ -n "${DSMROOTS}" ]; then
|
||||||
mkdir -p "${TMP_PATH}/mdX"
|
mkdir -p "${TMP_PATH}/mdX"
|
||||||
for I in ${DSMROOTS}; do
|
for I in ${DSMROOTS}; do
|
||||||
|
fixDSMRootPart "${I}"
|
||||||
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
mount -t ext4 "${I}" "${TMP_PATH}/mdX"
|
||||||
[ $? -ne 0 ] && continue
|
[ $? -ne 0 ] && continue
|
||||||
mkdir -p "${TMP_PATH}/logs/md0/log"
|
mkdir -p "${TMP_PATH}/logs/md0/log"
|
||||||
@ -3919,6 +3929,11 @@ function notepadMenu() {
|
|||||||
if [ $# -ge 1 ]; then
|
if [ $# -ge 1 ]; then
|
||||||
$@
|
$@
|
||||||
else
|
else
|
||||||
|
if [ -z "${MODEL}" ] && [ -z "${PRODUCTVER}" ] && [ -n "$(findDSMRoot)" ]; then
|
||||||
|
DIALOG --title "$(TEXT "Main menu")" \
|
||||||
|
--yesno "$(TEXT "An installed DSM system is detected on the hard disk. Do you want to try to restore it first?")" 0 0
|
||||||
|
[ $? -eq 0 ] && tryRecoveryDSM
|
||||||
|
fi
|
||||||
# Main loop
|
# Main loop
|
||||||
NEXT="m"
|
NEXT="m"
|
||||||
[ -n "$(ls ${TMP_PATH}/pats/*.pat 2>/dev/null)" ] && NEXT="u"
|
[ -n "$(ls ${TMP_PATH}/pats/*.pat 2>/dev/null)" ] && NEXT="u"
|
||||||
|
2
guide.md
2
guide.md
@ -180,7 +180,7 @@
|
|||||||
lspci -d ::104 # 查看 RAID 总线控制器
|
lspci -d ::104 # 查看 RAID 总线控制器
|
||||||
lspci -d ::105 # 查看 ATA 总线控制器
|
lspci -d ::105 # 查看 ATA 总线控制器
|
||||||
lspci -d ::106 # 查看 SATA 总线控制器
|
lspci -d ::106 # 查看 SATA 总线控制器
|
||||||
lspci -d ::107 # 查看 串行 Attached SCSI
|
lspci -d ::107 # 查看 SAS 总线控制器
|
||||||
lspci -d ::108 # 查看 NVM 控制器
|
lspci -d ::108 # 查看 NVM 控制器
|
||||||
|
|
||||||
ls -l /sys/class/scsi_host # 查看 ATA 硬盘 host 信息
|
ls -l /sys/class/scsi_host # 查看 ATA 硬盘 host 信息
|
||||||
|
Loading…
x
Reference in New Issue
Block a user