Linux 文件系统检查与修复:使用fsck、e2fsck等命令
#!/bin/bash
# 检查并修复指定的Linux文件系统
# 参数1:文件系统的设备名称,如 /dev/sda1
DEVICE=$1
# 检查是否提供了文件系统设备名称
if [ -z "$DEVICE" ]; then
echo "错误:需要提供文件系统设备名称作为参数。"
exit 1
fi
# 检查文件系统是否已经挂载
if mount | grep -q " on $DEVICE"; then
echo "警告:文件系统 $DEVICE 已挂载。"
echo " 请在执行修复操作前卸载文件系统。"
exit 1
fi
# 使用fsck命令检查和修复文件系统
echo "正在检查和修复文件系统 $DEVICE ..."
fsck -y $DEVICE
# 检查fsck命令的返回值
if [ $? -ne 0 ]; then
echo "警告:fsck命令执行失败,可能需要专业工具修复。"
exit 1
fi
# 如果是ext2/ext3/ext4文件系统,可以使用e2fsck进行更详细的检查
if [ `df -T $DEVICE | tail -n1 | awk '{print $2}'` = "ext2" ] ||
[ `df -T $DEVICE | tail -n1 | awk '{print $2}'` = "ext3" ] ||
[ `df -T $DEVICE | tail -n1 | awk '{print $2}'` = "ext4" ]; then
e2fsck -y $DEVICE
if [ $? -ne 0 ]; then
echo "错误:e2fsck命令执行失败。"
exit 1
fi
fi
echo "文件系统 $DEVICE 检查和修复完成。"
这段代码首先检查是否提供了文件系统设备名称作为参数,并确认该文件系统是否已挂载。然后,它使用fsck
命令和e2fsck
命令(针对ext2/ext3/ext4文件系统)检查并修复文件系统。如果检查失败,脚本将输出错误信息并退出。
评论已关闭