内容大纲
内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
1. fsck命令概述
fsck(file system check)命令用于检查和修复Linux文件系统。它可以在文件系统出现问题时进行诊断和修复,是系统管理员必备的工具之一。
学习交流加群风哥微信: itpux-com
# 检查和修复文件系统
# fsck [选项] 设备
# 查看fsck命令的帮助
# fsck –help
2. 基本用法
from PG视频:www.itpux.com
以下是fsck命令的基本用法:
# 1. 检查文件系统(不修复)
# fsck -n /dev/vdb1
fsck from util-linux 2.37.4
[/sbin/fsck.xfs (1) — /dev/vdb1]
XFS file system.
Phase 1 – find and verify superblock…
Phase 2 – using internal log
– zero log…
– scan filesystem freespace and inode maps…
– found root inode chunk
Phase 3 – for each AG…
– scan and clear agi unlinked lists…
– process known inodes and perform inode discovery…
– agno = 0
– agno = 1
– agno = 2
– agno = 3
done
Phase 4 – check for duplicate blocks…
– setting up duplicate extent list…
– check for inodes claiming duplicate blocks…
– agno = 0
– agno = 1
– agno = 2
– agno = 3
No modify flag set, skipping phase 5
Phase 6 – check inode connectivity…
– traversing filesystem …
– traversal finished …
– moving disconnected inodes to lost+found …
Phase 7 – verify link counts…
– verifying link counts …
done
# 2. 检查并修复文件系统
# fsck -y /dev/vdb2
e2fsck 1.46.5 (30-Dec-2021)
fsck.ext4: Checking for bad blocks (non-destructive read-only test)
fsck.ext4: Pass 1: Checking inodes, blocks, and sizes
fsck.ext4: Pass 2: Checking directory structure
fsck.ext4: Pass 3: Checking directory connectivity
fsck.ext4: Pass 4: Checking reference counts
fsck.ext4: Pass 5: Checking group summary information
/dev/vdb2: 11/3276800 files (0.0% non-contiguous), 200000/13107200 blocks
3. 常用选项详解
f
学习交流加群风哥QQ113257174
sck命令支持多种选项,用于定制检查和修复行为。
# -a:自动修复文件系统错误
# fsck -a /dev/vdb2
# -y:对所有问题自动回答yes
# fsck -y /dev/vdb2
# -n:不修复文件系统,只检查
# fsck -n /dev/vdb1
# -f:强制检查,即使文件系统标记为clean
# fsck -f /dev/vdb2
# -r:交互式修复
# fsck -r /dev/vdb2
# -V:显示详细信息
# fsck -V /dev/vdb2
# -t:指定文件系统类型
# fsck -t ext4 /dev/vdb2
# fsck -t xfs /dev/vdb1
# 查看所有可用选项
# fsck –help
4. 不同文件系统的检查
不同类型的文件系统需要使用不同的fsck工具。
# 1. ext2/ext3/ext4文件系统
# fsck.ext4 /dev/vdb2
# fsck.ext3 /dev/vdb2
# fsck.ext2 /dev/vdb2
# 2. XFS文件系统
# fsck.xfs /dev/vdb1
# 或者
# xfs_repair /dev/vdb1
# 3. Btrfs文件系统
# fsck.btrfs /dev/vdb3
# 或者
# btrfs check /dev/vdb3
# 4. 自动检测文件系统类型
# fsck /dev/vdb2
5. 实战案例
下面通过一个完整的实战案例来演示fsck命令的使用。
# 1. 查看设备信息
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
vda
├─vda1 xfs 12345678-90ab-cdef-1234-567890abcdef /boot
└─vda2 LVM2_member 87654321-0987-fedc-ba98-76543210fedc
├─rhel-root xfs 23456789-0abc-def1-2345-67890abcdef1 /
└─rhel-swap swap 34567890-12ab-cdef-3456-7890abcdef2 [SWAP]
vdb
├─vdb1 xfs 45678901-23ab-cdef-4567-890abcdef123
└─vdb2 ext4 56789012-34ab-cdef-5678-90abcdef234
# 2. 卸载文件系统
# umount /dev/vdb1
# umount /dev/vdb2
# 3. 检查XFS文件系统
# fsck -n /dev/vdb1
fsck from util-linux 2.37.4
[/sbin/fsck.xfs (1) — /dev/vdb1]
XFS file system.
Phase 1 – find and verify superblock…
Phase 2 – using internal log
– zero log…
– scan filesystem freespace and inode maps…
– found root inode chunk
Phase 3 – for each AG…
– scan and clear agi unlinked lists…
– process known inodes and perform inode discovery…
– agno = 0
– agno = 1
– agno = 2
– agno = 3
done
Phase 4 – check for duplicate blocks…
– setting up duplicate extent list…
– check for inodes claiming duplicate blocks…
– agno = 0
– agno = 1
– agno = 2
– agno = 3
No modify flag set, skipping phase 5
Phase 6 – check inode connectivity…
– traversing filesystem …
– traversal finished …
– moving disconnected inodes to lost+found …
Phase 7 – verify link counts…
– verifying link counts …
done
# 4. 检查ext4文件系统
# fsck -f /dev/vdb2
e2fsck 1.46.5 (30-Dec-2021)
fsck.ext4: Checking for bad blocks (non-destructive read-only test)
fsck.ext4: Pass 1: Checking inodes, blocks, and sizes
fsck.ext4: Pass 2: Checking directory structure
fsck.ext4: Pass 3: Checking directory connectivity
fsck.ext4: Pass 4: Checking reference counts
fsck.ext4: Pass 5: Checking group summary information
/dev/vdb2: 11/3276800 files (0.0% non-contiguous), 200000/13107200 blocks
# 5. 模拟文件系统错误并修复
# fsck -y /dev/vdb2
e2fsck 1.46.5 (30-Dec-2021)
/dev/vdb2: clean, 11/3276800 files, 200000/13107200 blocks
# 6. 重新挂载文件系统
# mount /dev/vdb1 /mnt/xfs
# mount /dev/vdb2 /mnt/ext4
# 7. 验证挂载
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.0M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 3.5G 42G 8% /
/dev/vda1 1014M 194M 821M 20% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/vdb1 50G 33M 50G 1% /mnt/xfs
/dev/vdb2 50G 61M 47G 1% /mnt/ext4
风哥经验总结
1. 在使用fsck命令检查和修复文件系统之前,必须先卸载文件系统,否则可能会导致数据损坏。
2. 对于XFS文件系统,fsck命令主要是检查功能,修复功能有限。如果需要修复XFS文件系统,应使用xfs_repair命令。
3. 对于ext2/ext3/e
更多学习教程公众号风哥教程itpux_com
xt4文件系统,fsck命令可以检查和修复文件系统,但应谨慎使用,因为错误的修复可能会导致数据丢失。
4. 在生产环境中,建议在维护窗口期间进行文件系统检查和修复,以避免影响业务。
风哥提示:>
5. 如果文件系统出现严重错误,应先备份数据,然后再进行修复操作。
6. 对于Btrfs文件系统,应使用btrfs check命令进行检查,而不是fsck命令。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
