在linux系统上编写一段自动识别不是ext4文件格式并且挂载在ssddisk上的ssd分区的代码,并将各硬盘的名称,文件格式和是否挂载早ssd上显示出来,并输入不是ext4文件格式并且挂载在ssddisk上的ssd分区格式化的命令,然后然操作者判断是否继续执行
时间: 2024-09-24 08:19:18 浏览: 51
在Linux系统上,你可以使用`blkid`, `lsblk`, 和 `mount` 命令来获取磁盘信息和检查挂载状态。下面是一个简单的bash脚本示例,它会扫描所有设备,找出不是EXT4格式且挂载在SSD上的分区,然后提示用户是否继续格式化:
```bash
#!/bin/bash
# 获取所有块设备
devices=$(lsblk -o NAME,FSTYPE,TYPE | grep '^sd' | awk '{print $1}')
# 遍历设备,查找EXT4格式且挂载在SSD上的
for device in $devices; do
if [[ "$device" == "sdd" ]]; then
format_type=$(sudo blkid -o value -s TYPE $device)
file_format=$(sudo blkid -o value -s FSTYPE $device)
# 如果不是EXT4,且未挂载
if [[ "$format_type" != "disk" && "$file_format" != "ext4" && ! $(mount | grep $device) ]]; then
echo "发现非EXT4格式的SSD分区:$device"
echo "当前格式:$file_format"
echo "是否需要格式化?(yes/no): "
read -p "请输入你的选择: " user_input
# 用户确认格式化
case $user_input in
yes|y)
sudo mkfs.ext4 -F $device
echo "已开始格式化..."
;;
no|n)
echo "格式化操作已取消."
;;
*)
echo "无效的选择,请输入 'yes' 或 'no'"
;;
esac
fi
fi
done
# 结束脚本
exit 0
```
在这个脚本中,你需要确保已经对sudo有权限,因为格式化操作通常需要root权限。运行这个脚本时,它会询问用户是否要格式化非EXT4的SSD分区,如果用户选择“yes”,则会进行格式化;如果选择“no”或其他,则会停止格式化操作。
阅读全文