V1.6 重写 USB 空间扩展代码

This commit is contained in:
Hyy2001X 2021-07-27 22:05:48 +08:00
parent ac66048a4d
commit 5ba1ff11db
1 changed files with 156 additions and 168 deletions

View File

@ -3,13 +3,10 @@
# AutoBuild_Tools for Openwrt # AutoBuild_Tools for Openwrt
# Depends on: bash wget curl block-mount e2fsprogs smartmontools # Depends on: bash wget curl block-mount e2fsprogs smartmontools
Version=V1.5 Version=V1.6
ECHO() { ECHO() {
local Color local Color
[[ -z $1 ]] && {
echo -ne "\n${Grey}[$(date "+%H:%M:%S")]${White} "
} || {
case $1 in case $1 in
r) Color="${Red}";; r) Color="${Red}";;
g) Color="${Green}";; g) Color="${Green}";;
@ -17,35 +14,24 @@ ECHO() {
y) Color="${Yellow}";; y) Color="${Yellow}";;
x) Color="${Grey}";; x) Color="${Grey}";;
esac esac
[[ $# -lt 2 ]] && { [[ $# -gt 1 ]] && shift
echo -e "\n${Grey}[$(date "+%H:%M:%S")]${White} $1" echo -e "${White}${Color}${*}${White}"
LOGGER $1
} || {
echo -e "\n${Grey}[$(date "+%H:%M:%S")]${White} ${Color}$2${White}"
LOGGER $2
}
}
}
LOGGER() {
[[ ! -f ${Main_tmp}/AutoBuild_Tools.log ]] && touch ${Main_tmp}/AutoBuild_Tools.log
echo "[$(date "+%Y-%m-%d-%H:%M:%S")] $*" >> ${Main_tmp}/AutoBuild_Tools.log
} }
AutoBuild_Tools() { AutoBuild_Tools() {
while : while :
do do
clear clear
echo -e "${Skyb}$(cat /etc/banner)${White}" ECHO y "$(cat /etc/banner)"
echo -e "\n\nAutoBuild 固件工具箱 ${Version}\n" ECHO x "\n\nAutoBuild 固件工具箱 ${Version}\n"
echo "1. USB 空间扩展" echo "1. USB 空间扩展"
echo "2. Samba 一键共享" echo "2. Samba 一键共享"
echo "3. 软件包安装" echo "3. 安装依赖包"
echo "4. 端口占用列表" echo "4. 端口占用列表"
echo "5. 查看硬盘信息" echo "5. 查看硬盘信息"
echo "u. 固件更新" ECHO x "\nu. 固件更新"
echo -e "\nx. 更新脚本" ECHO y "x. 更新脚本"
echo -e "q. 退出\n" echo -e "q. 退出程序\n"
read -p "请从上方选择一个操作:" Choose read -p "请从上方选择一个操作:" Choose
case $Choose in case $Choose in
q) q)
@ -57,31 +43,28 @@ do
[ -f /bin/AutoUpdate.sh ] && { [ -f /bin/AutoUpdate.sh ] && {
AutoUpdate_UI AutoUpdate_UI
} || { } || {
ECHO r "未检测到 '/bin/AutoUpdate.sh',请确保当前固件支持一键更新!" ECHO r "\n未检测到 '/bin/AutoUpdate.sh',请确保当前固件支持一键更新!"
} }
;; ;;
x) x)
wget -q ${Github_Raw}/Scripts/AutoBuild_Tools.sh -O ${Main_tmp}/AutoBuild_Tools.sh wget -q ${Github_Raw}/Scripts/AutoBuild_Tools.sh -O ${Main_tmp}/AutoBuild_Tools.sh
if [[ $? == 0 ]];then if [[ $? == 0 ]];then
ECHO y "[AutoBuild_Tools] 脚本更新成功!" ECHO y "\n[AutoBuild_Tools] 脚本更新成功!"
rm -f /bin/AutoBuild_Tools.sh.sh rm -f /bin/AutoBuild_Tools.sh.sh
mv -f ${Main_tmp}/AutoBuild_Tools.sh /bin mv -f ${Main_tmp}/AutoBuild_Tools.sh /bin
chmod +x /bin/AutoBuild_Tools.sh chmod +x /bin/AutoBuild_Tools.sh
else else
ECHO r "[AutoBuild_Tools] 脚本更新失败!" ECHO r "\n[AutoBuild_Tools] 脚本更新失败!"
fi fi
sleep 2 sleep 2
;; ;;
1) 1)
which block > /dev/null 2>&1 which block > /dev/null 2>&1
[[ ! $? -eq 0 ]] && { [[ ! $? -eq 0 ]] && {
ECHO r "缺少相应依赖包,请先安装 [block-mount] !" ECHO r "\n缺少相应依赖包,请先安装 [block-mount] !"
sleep 3 sleep 3
} || { } || {
uci set fstab.@global[0].auto_mount='0'
uci set fstab.@global[0].auto_swap='0'
uci commit fstab
AutoExpand_UI AutoExpand_UI
} }
;; ;;
@ -100,7 +83,7 @@ do
5) 5)
which smartctl > /dev/null 2>&1 which smartctl > /dev/null 2>&1
[[ ! $? -eq 0 ]] && { [[ ! $? -eq 0 ]] && {
ECHO r "缺少相应依赖包,请先安装 [smartmontools] !" ECHO r "\n缺少相应依赖包,请先安装 [smartmontools] !"
sleep 3 sleep 3
} || Smart_Info } || Smart_Info
;; ;;
@ -110,143 +93,164 @@ done
AutoExpand_UI() { AutoExpand_UI() {
clear clear
echo -e "一键 USB 扩展内部空间/AutoExpand\n" ECHO x "一键使用 USB 扩展内部空间"
USB_Check_Core USB_Info
[[ -n ${Check_Disk} ]] && { [[ -s ${Block_Info} ]] && {
for ((i=1;i<=${Disk_Number};i++)); echo " 设备 硬盘格式 挂载点 可用空间"
do cat ${Disk_Processed_List} | while read Disk_info ;do
Disk_info=$(sed -n ${i}p ${Disk_Processed_List})
List_Disk ${Disk_info} List_Disk ${Disk_info}
done done
echo -e "\nq. 返回" echo -e "\nq. 返回"
echo "r. 重新载入列表" echo "r. 重新载入列表"
} || { } || {
echo "未检测到外接硬盘!" && sleep 2 ECHO r "未检测到任何外接设备!"
sleep 3
return 1 return 1
} }
local Logic_Disk_Count=$(sed -n '$=' ${Logic_Disk_List})
echo "" echo ""
read -p "请输入要操作的硬盘编号[1-${Disk_Number}]:" Choose read -p "请输入要操作的硬盘编号[1-${Logic_Disk_Count}]:" Choose
echo ""
case ${Choose} in case ${Choose} in
q) q)
return 0 return
;; ;;
r) r)
block mount
AutoExpand_UI AutoExpand_UI
;; ;;
*) *)
[[ ${Choose} -gt 0 ]] > /dev/null 2>&1 && [[ ${Choose} -le ${Disk_Number} ]] > /dev/null 2>&1 && { [[ ${Choose} =~ [0-9] && ${Choose} -le ${Logic_Disk_Count} && ${Choose} -gt 0 ]] > /dev/null 2>&1 && {
which mkfs.ext4 > /dev/null 2>&1 which mkfs.ext4 > /dev/null 2>&1
[[ $? -eq 0 ]] && { [[ $? == 0 ]] && {
AutoExpand_Core Choose_Disk=$(sed -n ${Choose}p ${Disk_Processed_List} | awk '{print $1}')
Choose_Mount=$(grep "${Choose_Disk}" ${Disk_Processed_List} | awk '{print $4}')
AutoExpand_Core ${Choose_Disk} ${Choose_Mount}
} || { } || {
ECHO r "缺少相应依赖包,请先安装 [e2fsprogs] !" && sleep 3 ECHO r "\n系统缺少相应依赖包,请先安装 [e2fsprogs] !" && sleep 3
} return
}
} || { } || {
ECHO r "选择错误,请输入正确的选项!" ECHO r "\n选择错误,请输入正确的选项!"
sleep 2 && AutoExpand_UI sleep 2 && AutoExpand_UI
exit
} }
;; ;;
esac esac
} }
USB_Check_Core() { USB_Info() {
echo -ne "\nLoading USB Configuration ..."
local Disk_Name Logic_Mount Logic_Format Logic_Available
rm -f ${Block_Info} ${Logic_Disk_List} ${Disk_Processed_List} ${Phy_Disk_List} ${UUID_List}
touch ${Disk_Processed_List} ${UUID_List}
block mount block mount
rm -rf ${Main_tmp}/* block info | grep -v "mtdblock" | grep "sd[a-z][0-9]" > ${Block_Info}
echo "$(block info)" > ${Block_Info} [[ -s ${Block_Info} ]] && {
Check_Disk="$(cat ${Block_Info} | awk -F ':' '/sd/{print $1}')" cat ${Block_Info} | awk -F ':' '/sd/{print $1}' > ${Logic_Disk_List}
[[ -n ${Check_Disk} ]] && { for Disk_Name in $(cat ${Logic_Disk_List})
echo "${Check_Disk}" > ${Disk_List}
Disk_Number=$(sed -n '$=' ${Disk_List})
for Disk_Name in $(cat ${Disk_List})
do do
Mounted_Point=$(grep "${Disk_Name}" ${Block_Info} | egrep -o 'MOUNT="/[a-z].+' | awk -F '["]' '/MOUNT/{print $2}') UUID=$(grep "${Disk_Name}" ${Block_Info} | egrep -o 'UUID=".+"' | awk -F '["]' '/UUID/{print $2}')
[[ -z ${Mounted_Point} ]] && Mounted_Point="$(df -h | grep "${Disk_Name}" | awk '{print $6}' | awk 'NR==1')" Logic_Mount=$(grep "${Disk_Name}" ${Block_Info} | egrep -o 'MOUNT="/[0-9a-zA-Z].+"|MOUNT="/"' | awk -F '["]' '/MOUNT/{print $2}')
Disk_Available="$(df -m | grep "${Disk_Name}" | awk '{print $4}' | awk 'NR==1')" [[ -z ${Logic_Mount} ]] && Logic_Mount="$(df | grep "${Disk_Name}" | awk '{print $6}' | awk 'NR==1')"
[[ -z ${Disk_Available} ]] && Disk_Available=0 Logic_Format="$(grep "${Disk_Name}" ${Block_Info} | egrep -o 'TYPE="[0-9a-zA-Z].+' | awk -F '["]' '/TYPE/{print $2}')"
Disk_Format="$(cat ${Block_Info} | grep "${Disk_Name}" | egrep -o 'TYPE="[a-z].+' | awk -F '["]' '/TYPE/{print $2}')" Logic_Available="$(df -h | grep "${Disk_Name}" | awk '{print $4}' | awk 'NR==1')"
touch ${Disk_Processed_List} echo "${Disk_Name} ${UUID} ${Logic_Format} ${Logic_Mount} ${Logic_Available}" >> ${Disk_Processed_List}
[[ -n ${Mounted_Point} ]] && {
echo "${Disk_Name} ${Mounted_Point} ${Disk_Format} ${Disk_Available}MB" >> ${Disk_Processed_List}
} || {
echo "${Disk_Name} ${Disk_Format}" >> ${Disk_Processed_List}
}
done done
grep -o "/dev/sd[a-z]" ${Disk_List} | sort | uniq > ${Phy_Disk_List} grep -o "/dev/sd[a-z]" ${Logic_Disk_List} | sort | uniq > ${Phy_Disk_List}
}
}
AutoExpand_Core() {
Choosed_Disk="$(sed -n ${Choose}p ${Disk_Processed_List} | awk '{print $1}')"
echo "警告: 本次操作将把硬盘: '${Choosed_Disk}' 格式化为 'ext4' 格式,请提前做好数据备份工作!"
echo "注意: 操作开始后请不要中断任务或进行其他操作,否则可能导致设备数据丢失!"
read -p "是否继续本次操作?[Y/n]:" Choose
[[ ${Choose} == [Yy] ]] && sleep 3 && echo "" || {
sleep 3
ECHO "用户已取消操作."
break
}
[[ $(mount) =~ ${Choosed_Disk} ]] > /dev/null 2>&1 && {
Choosed_Disk_Mounted="$(mount | grep "${Choosed_Disk}" | awk '{print $3}')"
echo "取消挂载: '${Choosed_Disk}' on '${Choosed_Disk_Mounted}' ..."
umount -l ${Choosed_Disk_Mounted} > /dev/null 2>&1
[[ $(mount) =~ ${Choosed_Disk_Mounted} ]] > /dev/null 2>&1 && {
echo "取消挂载: '${Choosed_Disk_Mounted}' 失败 !"
exit 1
}
}
ECHO "正在格式化硬盘: '${Choosed_Disk}',请耐心等待 ..."
mkfs.ext4 -F ${Choosed_Disk} > /dev/null 2>&1
ECHO "硬盘格式化完成! 挂载硬盘: '${Choosed_Disk}' 到 ' /tmp/extroot' ..."
mkdir -p /tmp/introot && mkdir -p /tmp/extroot
mount --bind / /tmp/introot
mount ${Choosed_Disk} /tmp/extroot
ECHO "正在备份系统文件到硬盘: '${Choosed_Disk}',请耐心等待 ..."
tar -C /tmp/introot -cf - . | tar -C /tmp/extroot -xf -
ECHO "取消挂载: '/tmp/introot' '/tmp/extroot' ..."
umount /tmp/introot && umount /tmp/extroot
[ ! -d /mnt/bak ] && mkdir -p /mnt/bak
mount ${Choosed_Disk} /mnt/bak
sync
ECHO "写入 '分区表' 到 '/etc/config/fstab' ..."
block detect > /etc/config/fstab
sed -i "s?/mnt/bak?/?g" /etc/config/fstab
for ((i=0;i<=${Disk_Number};i++));
do
uci set fstab.@mount[${i}].enabled='1'
done
uci commit fstab
umount -l /mnt/bak
ECHO y "操作结束,外接硬盘: '${Choosed_Disk}' 已挂载到 '/'"
read -p "挂载完成后需要重启生效,是否立即重启路由器?[Y/n]:" Choose
[[ ${Choose} == [Yy] ]] && {
sleep 3 && ECHO g "\n正在重启路由器,请耐心等待 ..."
sync
reboot
} || {
ECHO "用户已取消重启操作."
sleep 3
break
} }
echo -ne "\r \r"
return
} }
List_Disk() { List_Disk() {
[[ -n $3 ]] && { echo "$(awk '{print $1}' ${Disk_Processed_List} | grep -n "$1" | cut -d ':' -f1). $1 $3 $4 $5"
echo "${i}. '$1' 挂载点: '$2' 格式: '$3' 可用空间: $4" }
} || echo "${i}. '$1' 格式: '$2' 未挂载"
AutoExpand_Core() {
ECHO r "\n警告: 操作开始后请不要中断任务或进行其他操作,否则可能导致设备数据丢失 !"
ECHO r "\n本操作将把设备 '$1' 格式化为 ext4 格式,请提前做好数据备份工作 !"
read -p "是否继续进行格式化操作?[Y/n]:" Choose
[[ ${Choose} == [Yesyes] ]] && {
ECHO y "\n开始运行脚本 ..."
sleep 3
} || return 0
echo "禁用自动挂载 ..."
uci set fstab.@global[0].auto_mount='0'
uci commit fstab
[[ -n $2 ]] && {
echo "卸载设备 '$1' 位于 '$2' ..."
umount -l $2 > /dev/null 2>&1
[[ $? != 0 ]] && {
ECHO r "设备 '$2' 卸载失败 !"
exit 1
}
}
echo "正在格式化设备 '$1' 为 ext4 格式,请耐心等待 ..."
mkfs.ext4 -F $1 > /dev/null 2>&1
[[ $? == 0 ]] && {
echo "设备 '$1' 已成功格式化为 ext4 格式 !"
USB_Info
} || {
ECHO r "设备 '$1' 格式化失败 !"
exit 1
}
local UUID=$(grep "$1" ${Disk_Processed_List} | awk '{print $2}')
echo "UUID: ${UUID}"
echo "挂载设备 '$1' 到 ' /tmp/extroot' ..."
mkdir -p /tmp/introot || {
ECHO r "临时文件夹 '/tmp/introot' 创建失败 !"
exit 1
}
mkdir -p /tmp/extroot || {
ECHO r "临时文件夹 '/tmp/extroot' 创建失败 !"
exit 1
}
mount --bind / /tmp/introot || {
ECHO r "挂载 '/' 到 '/tmp/introot' 失败 !"
exit 1
}
mount $1 /tmp/extroot || {
ECHO r "挂载 '$1' 到 '/tmp/extroot' 失败 !"
exit 1
}
echo "正在复制系统文件到 '$1' ..."
tar -C /tmp/introot -cf - . | tar -C /tmp/extroot -xf -
echo "卸载设备 '/tmp/introot' '/tmp/extroot' ..."
umount /tmp/introot
umount /tmp/extroot
sync
for ((i=0;i<=10;i++));do
uci delete fstab.@mount[0] > /dev/null 2>&1
done
echo "写入新分区表到 '/etc/config/fstab' ..."
cat >> /etc/config/fstab <<EOF
config mount
option enabled '1'
option uuid '${UUID}'
option target '/'
EOF
uci commit fstab
ECHO y "\n运行结束,外接设备 '$1' 已挂载到系统分区 !\n"
ECHO r "\n警告: 固件更新将会导致扩容失效,当前硬盘数据将会丢失,请提前做好备份工作 !"
read -p "操作需要重启生效,是否立即重启?[Y/n]:" Choose
[[ ${Choose} == [Yesyes] ]] && {
ECHO g "\n正在重启设备,请耐心等待 ..."
sync
reboot
exit
} || return
} }
AutoSamba_UI() { AutoSamba_UI() {
USB_Check_Core USB_Info
Samba_tmp="${Main_tmp}/AutoSamba" Samba_tmp="${Main_tmp}/AutoSamba"
Samba_UCI_List="${Main_tmp}/UCI_List" Samba_UCI_List="${Main_tmp}/UCI_List"
[[ ! -d ${Main_tmp} ]] && mkdir -p "${Main_tmp}" [[ ! -d ${Main_tmp} ]] && mkdir -p "${Main_tmp}"
while : while :
do do
clear clear
echo -e "Samba 工具箱/AutoSamba\n" ECHO x "Samba 工具箱\n"
echo "1. 删除所有 Samba 挂载点" echo "1. 删除所有 Samba 挂载点"
echo "2. 自动生成 Samba 共享" echo "2. 自动生成 Samba 共享"
echo "3. 关闭/开启自动共享" echo "3. 关闭/开启自动共享"
@ -268,7 +272,7 @@ AutoSamba_UI() {
uci set samba.@samba[0].autoshare='0' uci set samba.@samba[0].autoshare='0'
autosamba_mode="关闭" autosamba_mode="关闭"
} }
ECHO y "${autosamba_mode} Samba 自动共享!" ECHO y "\n${autosamba_mode} Samba 自动共享!"
uci commit samba uci commit samba
sleep 2 sleep 2
;; ;;
@ -287,13 +291,13 @@ Remove_Samba_Settings() {
uci delete samba.@sambashare[0] uci delete samba.@sambashare[0]
uci commit samba > /dev/null 2>&1 uci commit samba > /dev/null 2>&1
done done
ECHO y "已删除所有 Samba 挂载点!" ECHO y "\n已删除所有 Samba 挂载点!"
sleep 2 sleep 2
} }
Mount_Samba_Devices() { Mount_Samba_Devices() {
Disk_Number=$(sed -n '$=' ${Disk_Processed_List}) Logic_Disk_Count=$(sed -n '$=' ${Disk_Processed_List})
for ((i=1;i<=${Disk_Number};i++)); for ((i=1;i<=${Logic_Disk_Count};i++));
do do
Disk_Name=$(sed -n ${i}p ${Disk_Processed_List} | awk '{print $1}') Disk_Name=$(sed -n ${i}p ${Disk_Processed_List} | awk '{print $1}')
Disk_Mounted_Point=$(sed -n ${i}p ${Disk_Processed_List} | awk '{print $2}') Disk_Mounted_Point=$(sed -n ${i}p ${Disk_Processed_List} | awk '{print $2}')
@ -327,12 +331,11 @@ AutoInstall_UI() {
while : while :
do do
clear clear
echo -e "安装软件包\n" ECHO x "安装依赖包\n"
echo "1. 更新软件包列表" AutoInstall_UI_mod 1 block-mount
AutoInstall_UI_mod 2 block-mount AutoInstall_UI_mod 2 e2fsprogs
AutoInstall_UI_mod 3 e2fsprogs AutoInstall_UI_mod 3 smartmontools
AutoInstall_UI_mod 4 smartmontools echo "u. 更新软件包列表"
echo "x. 自定义软件包名"
echo -e "\nq. 返回\n" echo -e "\nq. 返回\n"
read -p "请从上方选择一个操作:" Choose read -p "请从上方选择一个操作:" Choose
echo "" echo ""
@ -340,17 +343,9 @@ do
q) q)
break break
;; ;;
x) u)
echo -e "常用的附加参数:\n"
echo "--force-depends 在安装、删除软件包时无视失败的依赖"
echo "--force-downgrade 允许降级安装软件包"
echo -e "--force-reinstall 重新安装软件包\n"
read -p "请输入你想安装的软件包名和附加参数:" PKG_NAME
Install_opkg_mod $PKG_NAME
;;
1)
opkg update opkg update
sleep 1 sleep 3
;; ;;
2) 2)
Install_opkg_mod block-mount Install_opkg_mod block-mount
@ -372,13 +367,13 @@ do
clear clear
echo -e "AutoBuild 固件更新/AutoUpdate ${AutoUpdate_Version}\n" echo -e "AutoBuild 固件更新/AutoUpdate ${AutoUpdate_Version}\n"
echo "1. 更新固件 [保留配置]" echo "1. 更新固件 [保留配置]"
echo "2. 强制更新固件 (跳过版本号验证,自动安装缺失的软件包) [保留配置]" echo "2. 强制更新固件 (跳过版本号、SHA256 校验,并强制刷写固件) [保留配置]"
echo "3. 不保留配置更新固件 [全新安装]" echo "3. 不保留配置更新固件 [全新安装]"
echo "4. 列出固件信息" echo "4. 列出固件信息"
echo "5. 清除固件下载缓存" echo "5. 清除固件下载缓存"
echo "6. 更改 Github API 地址" echo "6. 更改 Github API 地址"
[[ ${DEFAULT_Device} == x86_64 ]] && echo "7. 指定 x86 设备下载 UEFI/Legacy 引导的固件" echo "7. 指定 x86 设备下载 UEFI/Legacy 引导的固件"
echo -e "\nx. 更新 [AutoUpdate] 脚本" ECHO y "\nx. 更新 [AutoUpdate] 脚本"
echo -e "q. 返回\n" echo -e "q. 返回\n"
read -p "请从上方选择一个操作:" Choose read -p "请从上方选择一个操作:" Choose
case ${Choose} in case ${Choose} in
@ -386,13 +381,7 @@ do
break break
;; ;;
x) x)
wget -q ${Github_Raw}/Scripts/AutoUpdate.sh -O ${Main_tmp}/AutoUpdate.sh bash /bin/AutoUpdate.sh -x
[[ $? == 0 ]] && {
ECHO y "脚本更新成功!"
rm -f /bin/AutoUpdate.sh
mv -f ${Main_tmp}/AutoUpdate.sh /bin
chmod +x /bin/AutoUpdate.sh
} || ECHO r "脚本更新失败!"
sleep 2 sleep 2
;; ;;
1) 1)
@ -416,7 +405,7 @@ do
echo "" echo ""
read -p "请输入新的 Github 地址:" Github_URL read -p "请输入新的 Github 地址:" Github_URL
[[ -n ${Github_URL} ]] && bash /bin/AutoUpdate.sh -C ${Github_URL} || { [[ -n ${Github_URL} ]] && bash /bin/AutoUpdate.sh -C ${Github_URL} || {
ECHO r "Github 地址不能为空!" ECHO r "\nGithub 地址不能为空!"
} }
sleep 2 sleep 2
;; ;;
@ -424,7 +413,7 @@ do
echo "" echo ""
read -p "请输入你想要的启动方式[UEFI/Legacy]:" _BOOT read -p "请输入你想要的启动方式[UEFI/Legacy]:" _BOOT
[[ -n ${_BOOT} ]] && bash /bin/AutoUpdate.sh -B ${_BOOT} || { [[ -n ${_BOOT} ]] && bash /bin/AutoUpdate.sh -B ${_BOOT} || {
ECHO r "启动方式不能为空!" ECHO r "\n启动方式不能为空!"
} }
sleep 2 sleep 2
;; ;;
@ -433,8 +422,7 @@ done
} }
Smart_Info() { Smart_Info() {
ECHO g "Loading disk information ,please wait..." USB_Info
USB_Check_Core
clear clear
smartctl -v | awk 'NR==1' smartctl -v | awk 'NR==1'
cat ${Phy_Disk_List} | while read Phy_Disk cat ${Phy_Disk_List} | while read Phy_Disk
@ -495,7 +483,6 @@ GET_Smart_Info() {
else else
Phy_BS="${Phy_LB}" Phy_BS="${Phy_LB}"
fi fi
Phy_Localtime=$(getinf "Local Time is:" ${Smart_Info2})
cat <<EOF cat <<EOF
硬盘型号: ${Phy_Name} 硬盘型号: ${Phy_Name}
@ -525,8 +512,8 @@ AutoInstall_UI_mod() {
Install_opkg_mod() { Install_opkg_mod() {
opkg install ${*} opkg install ${*}
[[ $(opkg list | awk '{print $1}') =~ $1 ]] > /dev/null 2>&1 && { [[ $(opkg list | awk '{print $1}') =~ $1 ]] > /dev/null 2>&1 && {
ECHO y "$1 安装成功!" ECHO y "\n$1 安装成功!"
} || ECHO r "$1 安装失败!" } || ECHO r "\n$1 安装失败!"
sleep 2 sleep 2
} }
@ -538,13 +525,14 @@ White="\e[0m"
Yellow="\e[33m" Yellow="\e[33m"
Red="\e[31m" Red="\e[31m"
Blue="\e[34m" Blue="\e[34m"
Skyb="\e[36m" Grey="\e[36m"
Green="\e[32m"
Main_tmp="/tmp/AutoBuild_Tools" Main_tmp="/tmp/AutoBuild_Tools"
Disk_List="${Main_tmp}/Disk_List" Logic_Disk_List="${Main_tmp}/Logic_Disk_List"
Phy_Disk_List="${Main_tmp}/Phy_Disk_List"
Block_Info="${Main_tmp}/Block_Info" Block_Info="${Main_tmp}/Block_Info"
Disk_Processed_List="${Main_tmp}/Disk_Processed_List" Disk_Processed_List="${Main_tmp}/Disk_Processed_List"
Phy_Disk_List="${Main_tmp}/Phy_Disk_List"
Smart_Info1="${Main_tmp}/Smart_Info1" Smart_Info1="${Main_tmp}/Smart_Info1"
Smart_Info2="${Main_tmp}/Smart_Info2" Smart_Info2="${Main_tmp}/Smart_Info2"
[[ ! -d ${Main_tmp} ]] && mkdir -p "${Main_tmp}" [[ ! -d ${Main_tmp} ]] && mkdir -p "${Main_tmp}"