免责声明
Hello,大家好啊!今天给大家带来一篇关于如何在信创终端上通过一条命令添加新数据硬盘的文章。我们知道,给服务器或终端系统添加新的硬盘非常常见,而今天的分享就是通过一个简单的命令来快速完成硬盘的添加。只需执行 sudo bash addDisk.sh,就能完成新数据盘的配置。
当然,这只是一个简单的脚本,大家可以根据自己的需求进行DIY修改,定制适合自己环境的硬盘添加方案!欢迎大家分享点赞,点个在看和关注吧!addDisk.sh可在公众号页面的“资源链接-群内资源”中获取!
为什么要使用脚本添加硬盘?
在企业环境中,频繁需要添加或配置新硬盘,这个过程往往需要执行多个命令。手动操作既繁琐又容易出错,而通过脚本的方式可以快速批量处理硬盘添加的工作,节省大量时间和精力。因此,通过简单的命令来自动化这一过程非常高效。
常见问题及解决方法
硬盘无法识别:检查硬盘是否正确连接,并通过 lsblk 或 fdisk -l 确认硬盘是否被系统识别。
挂载失败:确保所选挂载目录权限正确,且没有其他进程占用该目录。
01
统信UOS
查看系统信息
01
pdsyw/Desktop$ cat /etc/os-version -PC:~
pdsyw/Desktop$ uname -a -PC:~
查看当前文件管理器
02
查看新硬盘
03
pdsyw/Desktop$ lsblk -PC:~
执行添加新硬盘脚本
04
~/Desktop$ sudo bash addDisk.sh :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
8:1 0 300M 0 part /boot/efi
8:2 0 1.5G 0 part /boot
8:3 0 10.8G 0 part [SWAP]
8:4 0 21G 0 part /recovery
8:5 0 25G 0 part /
8:6 0 25G 0 part
8:7 0 416.5G 0 part /data
sdb 8:16 0 1T 0 disk
sr0 11:0 1 4.4G 0 rom
系统中的可用硬盘列表:
sda 500G
sdb 1T
sr0 4.4G
请选择新硬盘的序号:2
查看fstab文件
05
pdsyw/Desktop$ cat /etc/fstab -PC:~
/dev/sdb1 /data2 ext4 rw,x-gvfs-show,relatime 0 0
重启系统
06
查看新硬盘
07
创建文件夹测试权限
08
02
麒麟KOS
查看系统信息
01
pdsyw/桌面$ cat /etc/os-release -kos:~
pdsyw/桌面$ uname -a -kos:~
查看新硬盘
02
pdsyw/桌面$ lsblk -kos:~
执行添加新硬盘脚本
03
~/桌面$ sudo bash addDisk.sh :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
8:1 0 512M 0 part /boot/efi
8:2 0 2G 0 part /boot
8:3 0 100G 0 part /
8:4 0 388.2G 0 part /data
8:5 0 9.3G 0 part [SWAP]
sdb 8:16 0 1T 0 disk
sr0 11:0 1 4.3G 0 rom /media/pdsyw/Kylin-Desktop-V10-SP1
系统中的可用硬盘列表:
sda 500G
sdb 1T
sr0 4.3G
请选择新硬盘的序号:2
查看fstab文件
04
pdsyw/桌面$ cat /etc/fstab -kos:~
/dev/sdb1 /data2 ext4 rw,x-gvfs-show,relatime 0 0
文件管理器查看新硬盘
05
新建文件夹测试权限
06
创建成功
07
重启
08
重启后硬盘挂载正常
09
03
脚本内容
# 展示所有硬盘
lsblk
echo "系统中的可用硬盘列表:"
# 获取硬盘序列及硬盘大小
disk_list=($(lsblk -dn -o NAME,SIZE))
# 展示硬盘序号供运维人员选择
for ((i=0; i<${#disk_list[@]}; i+=2)); do
disk_name="${disk_list[i]}"
disk_size="${disk_list[i+1]}"
echo "$((i/2+1)). $disk_name $disk_size"
done
# 选择硬盘序号
read -p "请选择新硬盘的序号:" disk_choice_num
# 校验输入,如果序号不正确则退出程序
if ! [[ "$disk_choice_num" =~ ^[0-9]+$ ]] || ((disk_choice_num < 1 || disk_choice_num > ${#disk_list[@]} / 2)); then
echo "无效的选择,请输入正确的序号。"
exit 1
fi
# 获取输入的硬盘
selected_disk_name="${disk_list[$(( (disk_choice_num - 1) * 2 ))]}"
# 用户确认操作
read -p "请输入“YES”确认硬盘,输入其它字符则退出程序:" confirm
if [[ "$confirm" != "YES" ]]; then
echo "退出程序"
exit 1
fi
# 如果挂载则卸载硬盘
umount /dev/"$selected_disk_name"* 2>/dev/null
# 删除磁盘分区
echo "删除磁盘中的所有分区..."
for part in $(lsblk -ln -o NAME /dev/$selected_disk_name | grep -v "^$selected_disk_name"); do
parted /dev/"$selected_disk_name" --script rm "${part#$selected_disk_name}"
done
# 创建新分区
echo "创建一个包含所有容量的新分区..."
parted /dev/$selected_disk_name --script mklabel gpt
parted /dev/$selected_disk_name --script mkpart primary ext4 0% 100%
# 更新分区表
sleep 2
partprobe /dev/"$selected_disk_name" || udevadm settle
# 格式化文件系统
echo "格式化硬盘为 ext4 文件系统..."
mkfs.ext4 /dev/"${selected_disk_name}1"
# 给硬盘分区打标签
e2label /dev/"${selected_disk_name}1" "新硬盘"
# 创建硬盘挂载点
mount_point="/data2"
while [ -d "$mount_point" ]; do
mount_point="/data$(( ${mount_point##*/data} + 1 ))"
done
echo "挂载目录设置为 $mount_point..."
mkdir -p "$mount_point"
# 挂载硬盘
echo "挂载分区至 $mount_point..."
mount /dev/"${selected_disk_name}1" "$mount_point"
# 设置挂载点权限为777
echo "设置挂载点 $mount_point 的权限为 777..."
chmod 777 "$mount_point"
# 写入 fstab 表中
echo "更新 /etc/fstab 以实现持久化挂载..."
echo "/dev/${selected_disk_name}1 $mount_point ext4 rw,x-gvfs-show,relatime 0 0" >> /etc/fstab
# 检查挂载是否正确
echo "检查 /etc/fstab 中的挂载配置..."
if mount -a 2>/tmp/mount_errors.log; then
echo "新硬盘已成功配置并挂载在 $mount_point 上。"
else
echo "挂载时遇到错误,请查看以下信息:"
cat /tmp/mount_errors.log
echo "请检查 /etc/fstab 配置并修正错误后重试。"
fi
# 清除日志文件
rm -f /tmp/mount_errors.log
echo '请再次执行 "cat /etc/fstab" 命令检查是否同一个硬盘分区被多次配置,如果有请删除旧内容。'
通过本文的介绍,大家学会了如何在信创终端上使用一条简单命令添加新数据硬盘。这个脚本不仅可以简化硬盘配置的过程,还可以根据自己的需求进行定制。
如果您觉得这篇文章对您有帮助,欢迎分享点赞,记得点个在看和关注哦!感谢大家的支持,我们下次再见!
扫码添加
添/加/好/友
进/群/交/流