暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

详细解析fsck.ext2命令

75

Linux fsck.ext2命令详解

1. 语法

fsck.ext2 [-acdfFnprstvVy] [-b <分区第一磁区地址>] [-B <区块大小>] [-C <反叛减器>] [-I <inode缓冲区块数>] [-l/L <损坏区块文件>] [-P <处理inode大小>] [分区设备或文件名]

2. 参数详解

  1. -a 自动修复文件系统,不询问任何问题。

    • 示例
      fsck.ext2 -a /dev/sda1

      自动修复/dev/sda1
      上的文件系统。
  2. -b <分区第一磁区地址>
    指定分区的第一个磁区的起始地址,也就是Super Block。

    • 示例
      fsck.ext2 -b 8193 /dev/sda1

      使用位于8193块的Super Block修复/dev/sda1
  3. -B <区块大小>
    设置该分区区块的大小。

    • 示例
      fsck.ext2 -B 4096 /dev/sda1

      将区块大小设置为4096字节来修复/dev/sda1
  4. -c 检查指定的文件系统中,是否存在有损坏的区块。

    • 示例
      fsck.ext2 -c /dev/sda1

      检查/dev/sda1
      中的坏块。
  5. -C 反叛减器 显示进度。

    • 示例
      fsck.ext2 -C /dev/sda1

      显示修复/dev/sda1
      的进度。
  6. -d 详细显示指令执行过程,便于排错或分析程序执行的情形。

    • 示例
      fsck.ext2 -d /dev/sda1

      显示详细的调试信息。
  7. -f 强制对指定的文件系统进行完整检查,判断文件系统在检查下没有问题。

    • 示例
      fsck.ext2 -f /dev/sda1

      强制完全检查/dev/sda1
  8. -F 检查文件系统之前,先清理该保存设备中文件的数据。

    • 示例
      fsck.ext2 -F /dev/sda1

      检查前清理设备数据。
  9. -I <inode缓冲区块数>
    设置检查时缓冲的inode区块数目。

    • 示例
      fsck.ext2 -I 256 /dev/sda1

      设置缓冲256个inode区块进行检查。
  10. -l <损坏区块文件>
    把区块文件中的坏区块,视为损坏区块并标示出来,避免应用程序使用该区块。

    • 示例
      fsck.ext2 -l badblocks.txt /dev/sda1

      使用badblocks.txt
      中的坏块信息修复/dev/sda1
  11. -L <损坏区块文件>
    -l
    参数的效果相同,但会将原来的损坏区块标示区块信息覆盖。

    • 示例
      fsck.ext2 -L badblocks.txt /dev/sda1

      同样使用badblocks.txt
      修复,但覆盖原标示信息。
  12. -n 把检查的文件系统设成只读,并关闭互动模式,否决所有询问的问题。

    • 示例
      fsck.ext2 -n /dev/sda1

      以只读方式检查/dev/sda1
      ,并自动否决所有询问。
  13. -p 此参数的效果相当于指定-a
    参数相同。

    • 示例
      fsck.ext2 -p /dev/sda1

      自动修复/dev/sda1
  14. -P <处理inode大小>
    设置fsck.ext2指令所能处理的inode大小为多少。

    • 示例
      fsck.ext2 -P 256 /dev/sda1

      设置处理256字节大小的inode。
  15. -r 此参数将被忽略不予处理,仅负责解决兼容性的问题。

    • 示例
      fsck.ext2 -r /dev/sda1

      参数被忽略。
  16. -s 检查文件系统时,交换每对字节的内容。

    • 示例
      fsck.ext2 -s /dev/sda1

      检查时交换字节。
  17. -S 此参数的效果相当于指定-s
    参数相同,但不论该文件系统是否已是标准位顺序,一律交换每对字节的内容。

    • 示例
      fsck.ext2 -S /dev/sda1

      强制交换字节。
  18. -t 显示fsck.ext2指令的时序信息。

    • 示例
      fsck.ext2 -t /dev/sda1

      显示时序信息。
  19. -v 详细显示指令执行过程。

    • 示例
      fsck.ext2 -v /dev/sda1

      详细显示执行过程。
  20. -V 显示版本信息。

    • 示例
      fsck.ext2 -V

      显示fsck.ext2的版本信息。
  21. -y 关闭互动模式,并同意所有询问的问题。

    • 示例
      fsck.ext2 -y /dev/sda1

      自动同意所有修复询问。

3. 使用fdisk扩展磁盘100G的示例

/dev/sda
磁盘扩容100G,并在此磁盘上使用fsck.ext2检查和修复文件系统。

  1. 查看当前磁盘分区情况

    fdisk -l

    Disk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: A1B2C3D4-E5F6-7890-1234-56789ABCDE

    Device      Start       End   Sectors   Size Type
    /dev/sda1    2048 419428351 419426304   200G Linux filesystem

  2. 使用fdisk扩展磁盘

    fdisk /dev/sda

    • 交互命令:
    1. 输入d
      删除分区。
    2. 输入分区号1
    3. 输入n
      新建分区。
    4. 输入p
      新建主分区。
    5. 输入分区号1
    6. 按回车使用默认起始位置。
    7. 输入+300G
      分配300GB(原有200GB + 新增100GB)。
    8. 输入w
      保存分区表并退出。
  3. 重新读取分区表

    partprobe /dev/sda

  4. 扩展文件系统

    resize2fs /dev/sda1

    resize2fs 1.44.1 (24-Mar-2018)
    Filesystem at /dev/sda1 is mounted on /mnt; on-line resizing required
    old_desc_blocks = 25, new_desc_blocks = 37
    The filesystem on /dev/sda1 is now 78643200 (4k) blocks long.

  5. 使用fsck.ext2检查并修复文件系统

    fsck.ext2 -f -y /dev/sda1

    e2fsck 1.44.1 (24-Mar-2018)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/sda1: 11/5242880 files (0.0% non-contiguous), 524288/20971520 blocks

    非常感谢您读到这里!如果您觉得这篇文章对您有帮助,请不要忘记关注公众号。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。

    点击页面右上角的“关注”按钮,不错过任何精彩内容!

    扫码获取联系方式



文章转载自周同学带您玩AI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论