Linux分区故障类型及排除方法
fdisk工具重新创建分区表。命令:sudo fdisk /dev/sdX(sdX为磁盘标识符,如sda),依次输入m(查看帮助)、o(创建新空分区表)、n(新建分区,按提示设置大小)、w(保存并退出)。操作前需备份数据。gdisk工具修复。命令:sudo gdisk /dev/sdX,输入r进入恢复菜单,选择recovery & transformation options中的“恢复分区表”。sudo testdisk,按向导操作,选择“Analyse”扫描分区,找到丢失分区后恢复。sudo umount /dev/sdXN,sdXN为分区,如sda1),然后运行sudo fsck -y /dev/sdXN(-y自动修复错误)。若超级块损坏,可通过dumpe2fs /dev/sdXN | grep superblock查找备用超级块(如Primary superblock at 0, Group descriptors at 1-3),再用sudo fsck -b 32768 /dev/sdXN(32768为备用超级块编号)修复。xfs_repair。命令:sudo xfs_repair /dev/sdXN(需卸载分区,若为根分区,可在救援模式下操作)。mount命令挂载分区时提示“wrong fs type”“bad option”“no such device”或“mount point does not exist”。/etc/fstab配置错误。lsblk或fdisk -l查看磁盘分区列表,确认目标分区(如/dev/sdb1)是否存在。sudo mkdir -p /mnt/mydisk),且为空目录(若非空,umount后会丢失数据)。blkid /dev/sdXN查看分区文件系统类型(如ext4、xfs、ntfs),挂载时需指定正确类型(sudo mount -t ext4 /dev/sdXN /mnt/mydisk)。/etc/fstab(sudo vim /etc/fstab),确保分区UUID(blkid获取)、挂载点、文件系统类型、挂载选项(如defaults)正确。可添加nofail选项避免启动时因分区不存在而报错(如UUID=1234-5678 /mnt/mydisk ext4 defaults,nofail 0 2)。df -h查看各分区使用率(重点关注/根分区),du -h --max-depth=2 /path(如/var、/home)定位占用大的目录。find /var/log -type f -name '*.log' -mtime +30 -exec rm -f {} \;),或使用logrotate工具轮换日志(默认配置在/etc/logrotate.conf)。/tmp目录下临时文件(rm -rf /tmp/*),或清理系统缓存(sync; echo 3 > /proc/sys/vm/drop_caches,临时生效)。find / -type f -size +100M -exec ls -lh {} \; | sort -n -r -k 5),删除不再需要的文件(如下载的附件、旧备份)。lvextend扩展逻辑卷,再用resize2fs调整文件系统大小(sudo lvextend -L +10G /dev/mapper/vg-lv_root;sudo resize2fs /dev/mapper/vg-lv_root)。非LVM分区需使用growpart(sudo growpart /dev/sda 1)扩展分区,再用resize2fs调整。lsblk或fdisk -l查看分区起始(Start)和结束(End)扇区,确认是否有重叠(如sda1结束扇区为1000,sda2起始扇区为900,则重叠)。parted或gparted(图形界面)工具调整分区边界。命令:sudo parted /dev/sdX,输入print查看分区表,resizepart 分区号 新结束位置(如resizepart 2 1500,将分区2结束位置调整为1500)。调整前需备份数据,避免操作失误导致数据丢失。rsync、tar或外部存储设备)。lsblk、fdisk -l检查设备是否被系统识别,若未识别,尝试重新扫描磁盘(echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan)。dmesg | tail -n 20或journalctl -xe查看内核日志,定位具体错误信息(如“I/O error”“Superblock corrupt”)。smartctl检查磁盘健康状态(sudo smartctl -a /dev/sdX),若存在坏道,需更换磁盘。