@@ -1794,12 +1794,12 @@ function bootipwaittime() {
|
||||
# let user format disks from inside arc
|
||||
function formatDisks() {
|
||||
rm -f "${TMP_PATH}/opts"
|
||||
while read -r KNAME SIZE TYPE MODEL; do
|
||||
while read -r KNAME SIZE TYPE MODEL PKNAME; do
|
||||
[ "${KNAME}" = "N/A" ] || [ "${SIZE:0:1}" = "0" ] && continue
|
||||
[ "${KNAME:0:7}" = "/dev/md" ] && continue
|
||||
[ "${KNAME:0:8}" = "${LOADER_DISK}" ] && continue
|
||||
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${MODEL}" "${TYPE}" >>"${TMP_PATH}/opts"
|
||||
done < <(lsblk -Jpno KNAME,SIZE,TYPE,MODEL 2>/dev/null | sed 's|null|"N/A"|g' | jq -r '.blockdevices[] | "\(.kname) \(.size) \(.type) \(.model)"' 2>/dev/null)
|
||||
[ "${KNAME}" = "${LOADER_DISK}" ] || [ "${PKNAME}" = "${LOADER_DISK}" ] && continue
|
||||
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${TYPE}" "${MODEL}" >>"${TMP_PATH}/opts"
|
||||
done < <(lsblk -Jpno KNAME,SIZE,TYPE,MODEL,PKNAME 2>/dev/null | sed 's|null|"N/A"|g' | jq -r '.blockdevices[] | "\(.kname) \(.size) \(.type) \(.model) \(.pkname)"' 2>/dev/null)
|
||||
if [ ! -f "${TMP_PATH}/opts" ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Format Disks" \
|
||||
--msgbox "No disk found!" 0 0
|
||||
@@ -1816,7 +1816,7 @@ function formatDisks() {
|
||||
[ $? -ne 0 ] && return
|
||||
if [ $(ls /dev/md[0-9]* 2>/dev/null | wc -l) -gt 0 ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Format Disks" \
|
||||
--yesno "Warning:\nThe current hds is in raid, do you still want to format them?" 0 0
|
||||
--yesno "Warning:\nThe current disks are in raid, do you still want to format them?" 0 0
|
||||
[ $? -ne 0 ] && return
|
||||
for I in $(ls /dev/md[0-9]* 2>/dev/null); do
|
||||
mdadm -S "${I}" >/dev/null 2>&1
|
||||
@@ -1839,12 +1839,12 @@ function formatDisks() {
|
||||
# Clone bootloader disk
|
||||
function cloneLoader() {
|
||||
rm -f "${TMP_PATH}/opts"
|
||||
while read -r KNAME SIZE TYPE MODEL; do
|
||||
while read -r KNAME SIZE TYPE MODEL PKNAME; do
|
||||
[ "${KNAME}" = "N/A" ] || [ "${SIZE:0:1}" = "0" ] && continue
|
||||
[ "${KNAME:0:7}" = "/dev/md" ] && continue
|
||||
[ "${KNAME:0:8}" = "${LOADER_DISK}" ] && continue
|
||||
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${MODEL}" "${TYPE}" >>"${TMP_PATH}/opts"
|
||||
done < <(lsblk -Jpno KNAME,SIZE,TYPE,MODEL 2>/dev/null | sed 's|null|"N/A"|g' | jq -r '.blockdevices[] | "\(.kname) \(.size) \(.type) \(.model)"' 2>/dev/null)
|
||||
[ "${KNAME}" = "${LOADER_DISK}" ] || [ "${PKNAME}" = "${LOADER_DISK}" ] && continue
|
||||
printf "\"%s\" \"%-6s %-4s %s\" \"off\"\n" "${KNAME}" "${SIZE}" "${TYPE}" "${MODEL}" >>"${TMP_PATH}/opts"
|
||||
done < <(lsblk -Jpno KNAME,SIZE,TYPE,MODEL,PKNAME 2>/dev/null | sed 's|null|"N/A"|g' | jq -r '.blockdevices[] | "\(.kname) \(.size) \(.type) \(.model) \(.pkname)"' 2>/dev/null)
|
||||
|
||||
if [ ! -f "${TMP_PATH}/opts" ]; then
|
||||
dialog --backtitle "$(backtitle)" --colors --title "Clone Loader" \
|
||||
|
||||
@@ -808,8 +808,7 @@ function boot() {
|
||||
dialog --backtitle "$(backtitle)" --title "Arc Boot" \
|
||||
--infobox "Booting DSM...\nPlease stay patient!" 4 25
|
||||
sleep 2
|
||||
clear
|
||||
exec boot.sh
|
||||
exec reboot
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -824,7 +823,7 @@ if [ "${ARCMODE}" = "update" ]; then
|
||||
dialog --backtitle "$(backtitle)" --title "Arc Update" \
|
||||
--infobox "Update is not possible in Offline Mode!" 5 40
|
||||
sleep 3
|
||||
reboot
|
||||
exec reboot
|
||||
fi
|
||||
elif [ "${ARCMODE}" = "automated" ]; then
|
||||
# Check for Custom Build
|
||||
|
||||
@@ -200,8 +200,8 @@ ETHN=$(echo ${ETHX} | wc -w)
|
||||
[ -z "${ETHM}" ] && ETHM="${ETHN}"
|
||||
NIC=0
|
||||
for N in ${ETHX}; do
|
||||
MAC="$(readConfigKey "${N}" "${USER_CONFIG_FILE}" | tr '[:lower:]' '[:upper:]')"
|
||||
[ -z "${MAC}" ] && MAC="$(cat /sys/class/net/${N}/address 2>/dev/null | tr '[:lower:]' '[:upper:]')" || NIC=$((NIC + 1))
|
||||
MAC="$(readConfigKey "${N}" "${USER_CONFIG_FILE}")"
|
||||
[ -z "${MAC}" ] && MAC="$(cat /sys/class/net/${N}/address 2>/dev/null | tr '[:upper:]' '[:lower:]')" || NIC=$((NIC + 1))
|
||||
[ ${NIC} -le ${ETHM} ] && CMDLINE["mac${NIC}"]="${MAC}"
|
||||
[ ${NIC} -ge ${ETHM} ] && break
|
||||
done
|
||||
@@ -320,5 +320,4 @@ elif [ "${DIRECTBOOT}" = "false" ]; then
|
||||
echo -e "\033[1;37mBooting DSM...\033[0m"
|
||||
# Boot to DSM
|
||||
[ "${KERNELLOAD}" = "kexec" ] && kexec -e || poweroff
|
||||
exit 0
|
||||
fi
|
||||
@@ -136,7 +136,7 @@ function generateMacAddress() {
|
||||
[ ${I} -lt ${NUM} ] && MACS+=" "
|
||||
done
|
||||
|
||||
MACS="$(echo "${MACS}" | tr '[:lower:]' '[:upper:]')"
|
||||
MACS="$(echo "${MACS}" | tr '[:upper:]' '[:lower:]')"
|
||||
echo "${MACS}"
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -21,15 +21,14 @@ function getnet() {
|
||||
# User Mac
|
||||
for N in ${ETHX}; do
|
||||
while true; do
|
||||
MAC="$(cat /sys/class/net/${N}/address | sed 's/://g' | tr '[:lower:]' '[:upper:]')"
|
||||
dialog --backtitle "$(backtitle)" --title "Mac Setting" \
|
||||
--inputbox "Type a custom MAC for ${N} (Eq. 001132abc123)." 7 50 "${MAC}"\
|
||||
--inputbox "Type a custom MAC for ${N} (Eq. 001132a1b2c3).\nA custom Mac will not be applied to NIC!" 7 50\
|
||||
2>"${TMP_PATH}/resp"
|
||||
[ $? -ne 0 ] && break
|
||||
MAC=$(cat "${TMP_PATH}/resp")
|
||||
[ -z "${MAC}" ] && MAC="$(readConfigKey "${N}" "${USER_CONFIG_FILE}")"
|
||||
[ -z "${MAC}" ] && MAC="$(cat /sys/class/net/${N}/address 2>/dev/null | sed 's/://g' | tr '[:lower:]' '[:upper:]')"
|
||||
MAC="$(echo "${MAC}" | tr '[:lower:]' '[:upper:]')"
|
||||
[ -z "${MAC}" ] && MAC="$(cat /sys/class/net/${N}/address 2>/dev/null | sed 's/://g' | tr '[:upper:]' '[:lower:]')"
|
||||
MAC="$(echo "${MAC}" | tr '[:upper:]' '[:lower:]')"
|
||||
if [ ${#MAC} -eq 12 ]; then
|
||||
writeConfigKey "${N}" "${MAC}" "${USER_CONFIG_FILE}"
|
||||
break
|
||||
|
||||
@@ -76,13 +76,13 @@ function updateLoader() {
|
||||
--infobox "Update Loader successful! -> Reboot to automated Build Mode..." 3 60
|
||||
sleep 3
|
||||
writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}"
|
||||
rebootTo "automated"
|
||||
rebootTo automated
|
||||
else
|
||||
dialog --backtitle "$(backtitle)" --title "Update Loader" --aspect 18 \
|
||||
--infobox "Update Loader successful! -> Reboot to Config Mode..." 3 50
|
||||
sleep 3
|
||||
writeConfigKey "arc.builddone" "false" "${USER_CONFIG_FILE}"
|
||||
rebootTo "config"
|
||||
rebootTo config
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ fi
|
||||
# Read/Write IP/Mac to config
|
||||
ETHX=$(ls /sys/class/net/ 2>/dev/null | grep eth) || true
|
||||
for N in ${ETHX}; do
|
||||
MACR="$(cat /sys/class/net/${N}/address 2>/dev/null | sed 's/://g')"
|
||||
MACR="$(cat /sys/class/net/${N}/address 2>/dev/null | sed 's/://g' | tr '[:upper:]' '[:lower:]')"
|
||||
IPR="$(readConfigKey "network.${MACR}" "${USER_CONFIG_FILE}")"
|
||||
if [ -n "${IPR}" ] && [ "1" = "$(cat /sys/class/net/${N}/carrier 2>/dev/null)" ]; then
|
||||
IFS='/' read -r -a IPRA <<<"${IPR}"
|
||||
@@ -152,11 +152,7 @@ elif [ "${ARCMODE}" = "update" ]; then
|
||||
echo -e "\033[1;34mStarting Update Mode...\033[0m"
|
||||
elif [ "${BUILDDONE}" = "true" ] && [ "${ARCMODE}" = "dsm" ]; then
|
||||
echo -e "\033[1;34mStarting DSM Mode...\033[0m"
|
||||
if [ -f "${ARC_PATH}/boot.sh" ]; then
|
||||
exec boot.sh && exit 0
|
||||
else
|
||||
echo -e "\033[1;31mError: Can't find Arc System Files...\033[0m"
|
||||
fi
|
||||
exec boot.sh && exit 0
|
||||
else
|
||||
echo -e "\033[1;34mStarting Config Mode...\033[0m"
|
||||
fi
|
||||
@@ -220,7 +216,5 @@ RAM=$(awk '/MemTotal:/ {printf "%.0f", $2 / 1024}' /proc/meminfo 2>/dev/null)
|
||||
if [ ${RAM} -le 3500 ]; then
|
||||
echo -e "\033[1;31mYou have less than 4GB of RAM, if errors occur in loader creation, please increase the amount of RAM.\033[0m\n\033[1;31mUse arc.sh to proceed. Not recommended!\033[0m"
|
||||
else
|
||||
arc.sh
|
||||
fi
|
||||
|
||||
exit 0
|
||||
exec arc.sh
|
||||
fi
|
||||
@@ -49,7 +49,7 @@ function load_video {
|
||||
load_video
|
||||
if loadfont unicode; then
|
||||
insmod gfxterm
|
||||
set gfxmode=1024x768
|
||||
set gfxmode=auto
|
||||
set gfxpayload=auto
|
||||
terminal_output gfxterm
|
||||
insmod gfxmenu
|
||||
|
||||
Reference in New Issue
Block a user