当前位置: 首页 > news >正文

linux常见文件系统+用户管理+常见故障

一、文件系统管理常用命令

1. 查看磁盘空间和文件系统状态

命令功能示例
df -h查看磁盘空间使用情况(人类可读格式)df -h /dev/sda1
du -sh /path查看目录总大小du -sh /var/log
df -i查看 inode 使用情况df -i /
tune2fs -l /dev/sda1查看 ext 文件系统元数据(如超级块信息)tune2fs -l /dev/sda1
xfs_info /dev/sda1查看 XFS 文件系统信息xfs_info /dev/sda1

2. 检查和修复文件系统

命令功能示例
fsck -y /dev/sda1自动修复文件系统错误(需卸载分区)sudo umount /dev/sda1 && sudo fsck -y /dev/sda1
e2fsck -f /dev/sda1强制检查 ext 文件系统sudo e2fsck -f /dev/sda1
xfs_repair /dev/sda1修复 XFS 文件系统sudo xfs_repair /dev/sda1
badblocks -v /dev/sda1扫描磁盘坏块sudo badblocks -v /dev/sda1
fsck -l bad_sectors.txt /dev/sda1将坏块标记为不可用sudo fsck -l bad_sectors.txt /dev/sda1

3. 挂载和卸载文件系统

命令功能示例
mount /dev/sda1 /mnt挂载分区到指定目录sudo mount /dev/sda1 /mnt
umount /dev/sda1卸载分区sudo umount /dev/sda1
mountgrep /mnt查看挂载状态
mount -a根据 /etc/fstab 挂载所有分区sudo mount -a

4. 格式化和调整文件系统

命令功能示例
mkfs.ext4 /dev/sda1格式化为 ext4 文件系统sudo mkfs.ext4 /dev/sda1
mkfs.xfs /dev/sda1格式化为 XFS 文件系统sudo mkfs.xfs /dev/sda1
resize2fs /dev/sda1 20G调整 ext 文件系统大小sudo resize2fs /dev/sda1 20G
xfs_growfs /mnt调整 XFS 文件系统大小sudo xfs_growfs /mnt

5. 文件和目录操作

命令功能示例
find /path -type f -size +1G查找大于 1GB 的文件find /var/log -type f -size +1G
find /path -mtime +7 -delete删除 7 天前的文件find /tmp -mtime +7 -delete
lsblk查看磁盘分区结构lsblk
fdisk -l查看磁盘分区表sudo fdisk -l
chown user:group file修改文件所有者sudo chown root:root /path/to/file
chmod 755 file修改文件权限sudo chmod 755 /path/to/file

6. 性能监控和日志分析

命令功能示例
iostat -x 1实时监控磁盘 I/O 性能iostat -x 1
smartctl -a /dev/sda查看硬盘 SMART 状态sudo smartctl -a /dev/sda
`dmesggrep -i error`查看内核日志中的错误
journalctl -u systemd-udevd查看特定服务日志sudo journalctl -u systemd-udevd

二、Linux 用户管理命令

命令功能常用参数及示例
useradd创建用户

useradd -m username(自动创建主目录)

useradd -g group -G group1,group2 username(指定主组和附加组)

passwd修改密码

passwd username(设置用户密码)

passwd(修改当前用户密码)

userdel删除用户

userdel -r username(删除用户及主目录)

userdel username(仅删除用户)

groupadd创建用户组groupadd groupname
su切换用户

su - username(切换并加载环境变量)

su(切换到root)

id查看用户信息id username(显示UID、GID及所属组)

二、权限管理

命令描述示例
chown修改文件/目录所有者

chown user:group file.txt 

chown -R user:group dir_name(递归修改)

chmod修改权限

chmod 755 file.txt(设置权限为rwxr-xr-x)

chmod u+x file.txt(用户增加执行权限)

chgrp修改所属组chgrp group file
chattr设置文件属性chattr +i file(锁定文件)
lsattr查看文件属性lsattr file(查看不可变标志)
umask设置默认权限umask 022(默认权限掩码)
chmod设置 SUID/SGID/粘滞位

chmod +s file(SUID/SGID)

chmod +t dir(粘滞位)

find查找特殊权限文件

find / -perm -4000(SUID)

find / -perm -2000(SGID)

三、常见文件系统故障及处理办法

1. 磁盘空间不足

现象
  • df -h 显示某个分区使用率接近 100%。
  • 创建新文件时报错 No space left on device
处理步骤
  1. 定位大文件
    find /path -type f -size +1G -exec ls -lh {} \;
  2. 清理日志或缓存
    find /var/log -type f -name "*.log" -mtime +30 -delete
  3. 释放 inode
    find /path -type f -size 0 -delete  # 删除空文件
  4. 扩展文件系统(如 LVM):
    lvextend -L +10G /dev/vg0/lv_root
    resize2fs /dev/vg0/lv_root

2. 文件系统损坏

现象
  • 挂载失败,提示 I/O error 或 Read-only file system
  • dmesg 显示 Filesystem check or mount failed
处理步骤
  1. 卸载分区
    sudo umount /dev/sda1
  2. 强制检查并修复
    sudo fsck -y /dev/sda1  # ext4/XFS
    sudo xfs_repair /dev/sda1  # XFS
  3. 扫描坏块
    sudo badblocks -v /dev/sda1 > bad_sectors.txt
    sudo fsck -l bad_sectors.txt /dev/sda1

3. 权限错误

现象
  • Permission denied 错误,无法访问文件或目录。
  • ls -l 显示权限为 ----------(无权限)。
处理步骤
  1. 修改文件权限
    sudo chmod 755 /path/to/file
  2. 修改文件所有者
    sudo chown user:group /path/to/file
  3. 检查 SELinux/AppArmor
    getenforce  # 查看 SELinux 状态
    sudo setenforce 0  # 临时关闭 SELinux

4. 挂载失败

现象
  • mount 报错 No such device 或 Invalid argument
  • 系统启动时无法挂载根分区。
处理步骤
  1. 检查设备是否存在
    lsblk  # 确认设备名称(如 /dev/sda1)
  2. 手动挂载测试
    sudo mount /dev/sda1 /mnt
  3. 修复 /etc/fstab 配置
    • 检查 UUID 或设备名是否正确:
      blkid  # 查看设备 UUID
    • 修改 /etc/fstab 中的条目。

5. 硬盘物理故障

现象
  • smartctl -a 显示 Reallocated_Sector_Ct 高于 0。
  • dmesg 显示 end_request: I/O error
处理步骤
  1. 备份数据
    dd if=/dev/sda of=/backup/sda.img bs=4M
  2. 更换硬盘
    • 使用 fdisk 和 mkfs 重新分区格式化。
  3. 监控 SMART 状态
    sudo smartctl -a /dev/sda | grep -i error

6. 文件系统只读

现象
  • 挂载后无法写入文件,提示 Read-only file system
  • mount 显示 ro 标志。
处理步骤
  1. 尝试重新挂载为可写
    sudo mount -o remount,rw /dev/sda1 /mnt
  2. 检查文件系统错误
    sudo fsck /dev/sda1
  3. 检查硬件问题
    sudo dmesg | grep -i error

7. 日志文件过大

现象
  • /var/log 占用大量空间。
  • journalctl 日志未轮转。
处理步骤
  1. 清理旧日志
    sudo journalctl --vacuum-size=500M  # 保留 500MB 日志
  2. 配置 logrotate
    • 修改 /etc/logrotate.conf 或 /etc/logrotate.d/* 文件。
http://www.dtcms.com/a/331904.html

相关文章:

  • Redis面试精讲 Day 21:Redis缓存穿透、击穿、雪崩解决方案
  • 纸箱拆垛:物流自动化中的“开箱密码”与3D视觉的智能革命
  • JavaScript方法借用技术详解
  • 【软件安装|1】CentOS7最新可用国内 yum 镜像源配置和Linux版MySQL8.0安装及其相关知识
  • 6、C 语言指针初阶知识点总结
  • 金融新政激活工业“智脑”,鸿道操作系统筑基新型工业化
  • 70亿参数让机器人“开窍“:英伟达Cosmos Reason如何让AI理解物理世界
  • 批量标准化、模型的保存和加载
  • 20道DOM相关前端面试题
  • CLAM复现问题记录
  • flutter3.7.12版本设置TextField的contextMenuBuilder的文字颜色
  • 水印消失术!JavaAI深度学习去水印技术深度剖析
  • 在启智平台使用A100对文心开源大模型Ernie4.5 0.3B微调(失败)
  • vector 认识及使用
  • Docker 入门与实战:从环境搭建到项目部署
  • Java构造器与工厂模式(静态工程方法)详解
  • 20道JavaScript相关前端面试题及答案
  • 2025.8.24复习总结
  • WAF 与 SIEM 联动:攻击事件的实时告警与溯源分析流程
  • 3D-R1、Scene-R1、SpaceR论文解读
  • C#:TryGetValue
  • C语言零基础第16讲:内存函数
  • 技术速递|通过 GitHub Models 在 Actions 中实现项目自动化
  • linux 下第三方库编译及交叉编译——MDBTOOLS--arm-64
  • 使用Docker安装Gitea自托管的Git服务
  • 零基础从头教学Linux(Day 12)
  • python+vue扫盲
  • 智能制造综合实训平台数据采集物联网解决方案
  • 备忘录模式及优化
  • 多窗口多烧蚀(Multi-window, Multi-Burn-Rate, MWMBR)