06_磁盘管理习题记录

06.磁盘管理课后习题详细解答

一、基础命令操作问题

1. 如何查看 /etc/ 目录大小

du -sh /etc/

参数解释

  • du:磁盘使用情况统计命令
  • -s:对目录进行汇总统计
  • -h:以易读的格式显示(如 K、M、G)

使用场景:系统管理员需要监控 /etc/ 目录的大小,防止配置文件过多占用空间。

输出示例

123M    /etc/

2. 如何查看磁盘使用分区情况

df -h

参数解释

  • df:显示文件系统的整体磁盘使用情况
  • -h:以易读的格式显示(如 K、M、G)

使用场景:检查系统中各个分区的磁盘使用情况,监控是否有分区即将用满。

输出示例

文件系统       容量  已用  可用  已用% 挂载点
/dev/sda1       50G   20G   28G    41%   /
/dev/sda2       10G   5G    4G     53%   /data

3. 如何查看 inode 使用情况

df -i

参数解释

  • df:显示文件系统的整体磁盘使用情况
  • -i:显示 inode 使用情况

使用场景:当无法创建新文件时,可能是 inode 已用完,此时需要检查 inode 使用情况。

输出示例

文件系统      Inode 总数  已用 Inode  可用 Inode  已用% 挂载点
/dev/sda1     1000000     50000     950000    5%   /
/dev/sda2     500000      480000     20000    96%   /data

4. 如何查看磁盘 block 使用情况

df

参数解释

  • df:默认以 block(块)为单位显示磁盘使用情况

使用场景:查看系统默认的磁盘 block 使用情况。

输出示例

文件系统      1K-blocks  已用   可用   已用% 挂载点
/dev/sda1     51200000   20480000  28672000  41%   /
/dev/sda2     10240000   5120000   4096000   53%   /data

说明

  • 默认以 1KB 为一个 block 单位显示磁盘使用情况

5. 如何查看分区使用格式

命令 1

lsblk -f

参数解释

  • lsblk:列出所有块设备信息
  • -f:显示文件系统类型

命令 2

blkid

参数解释

  • blkid:显示块设备的 UUID 和文件系统类型

使用场景:需要了解分区的文件系统类型,例如在挂载分区或配置 /etc/fstab 时。

输出示例

NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
sda                                                      
├─sda1 ext4         a1b2c3d4-e5f6-7g8h-9i0j-kl1mno2pq3r4 /
├─sda2 ext4         a5b6c7d8-e9f0-1g2h-3i4j-kl5mno6pq7r8 /data

6. 如何查看一个设备的 UUID

命令

blkid /dev/sda1

参数解释

  • blkid:显示块设备的 UUID 和文件系统类型
  • /dev/sda1:指定要查询的分区设备

使用场景:在配置 /etc/fstab 时需要使用分区的 UUID 进行挂载。

输出示例

/dev/sda1: UUID="a1b2c3d4-e5f6-7g8h-9i0j-kl1mno2pq3r4" TYPE="ext4"

说明

  • 显示指定分区的 UUID 和文件系统类型

7. 请解释 /etc/fstab 中每段含义

/etc/fstab 文件示例

UUID=a1b2c3d4-e5f6-7g8h-9i0j-kl1mno2pq3r4 /       ext4    defaults        0 1
UUID=a5b6c7d8-e9f0-1g2h-3i4j-kl5mno6pq7r8 /data   ext4    defaults        0 2

字段解释

  1. 第一列:分区的 UUID 或设备路径(推荐使用 UUID)
  2. 第二列:挂载点路径
  3. 第三列:文件系统类型(如 ext4、xfs 等)
  4. 第四列:挂载选项(如 defaults 表示使用默认选项)
  5. 第五列:备份选项(通常设置为 0,表示不备份)
  6. 第六列:文件系统检查顺序(根分区为 1,其他分区为 2)

使用场景:配置系统开机自动挂载分区。

#场景描述(系统启动时磁盘分区加载失败)
假设你在 /etc/fstab 中写入了一条磁盘挂载信息,但在实际操作中删除了该磁盘。系统在启动时会尝试挂载该磁盘,但由于磁盘不存在,导致启动失败。

#解决问题步骤
进入单用户模式:按照上述方法进入单用户模式,系统会直接进入root用户环境。

在单用户模式下需要编辑 /etc/fstab 文件来修复挂载问题,但文件系统默认为只读模式,你无法直接编辑文件。此时,你需要先将文件系统重新挂载为读写模式,然后才能进行编辑。
mount -o remount,rw /


确认问题:使用 mount 或 df -h 命令检查当前挂载的文件系统,确认问题。
编辑 /etc/fstab:使用文本编辑器(如 vi 或 nano)编辑 /etc/fstab 文件,删除或注释掉错误的磁盘挂载信息。例如:

# 备份文件:在编辑 /etc/fstab 文件之前,建议先备份该文件:
cp /etc/fstab /etc/fstab.bak

vi /etc/fstab
找到类似以下的行:
/dev/sdb1 /data ext4 defaults 0 0
删除或注释掉该行:

# /dev/sdb1 /data ext4 defaults 0 0
保存并退出:保存文件并退出编辑器。
重启系统:执行以下命令重启系统:
reboot

8. ext4 文件分区创建文件报磁盘已满,但 df -h 显示只用了 60%

可能原因

  1. inode 已用完
    • ext4 文件系统不仅限制磁盘空间,还限制 inode 数量
    • 每个文件都需要占用一个 inode,即使文件大小为 0
    • 当 inode 用完时,无法创建新文件

排查方法

df -i /挂载点

解决方法

  • 删除不必要的小文件释放 inode
  • 如果经常存储大量小文件,可以重新格式化分区并指定更大数量的 inode

示例场景

# 创建大量小文件
for i in {1..1000000}; do echo "test" > /data/test$i.txt; done

# 此时即使磁盘空间充足,也会因 inode 用完而无法创建新文件

二、磁盘分区方案

方案描述:

在虚拟机中添加一块 10GB 的 SCSI 磁盘,创建两个分区并挂载。

步骤

  1. 添加磁盘:在虚拟机设置中添加一块 10GB 的 SCSI 磁盘(假设为 /dev/sdb

  2. 分区操作

    fdisk /dev/sdb
    
    • 创建一个 5GB 的主分区(分区 1)
    • 创建一个 5GB 的主分区(分区 2)
  3. 格式化分区

    # 格式化为 ext4
    mkfs.ext4 /dev/sdb1
    
    # 格式化为 xfs
    mkfs.xfs /dev/sdb2
    
  4. 创建挂载目录

    mkdir /mnt/ext4_part
    mkdir /mnt/xfs_part
    
  5. 挂载分区

    mount /dev/sdb1 /mnt/ext4_part
    mount /dev/sdb2 /mnt/xfs_part
    
  6. 配置开机自动挂载
    编辑 /etc/fstab 文件,添加以下内容:

    # blkid /dev/sda1
    UUID=分区1的UUID /mnt/ext4_part ext4 defaults 0 2
    UUID=分区2的UUID /mnt/xfs_part xfs defaults 0 2
    

验证

df -h

输出示例

文件系统       容量  已用  可用  已用% 挂载点
/dev/sdb1       5G    50M   4.7G    2%   /mnt/ext4_part
/dev/sdb2       5G    50M   4.7G    2%   /mnt/xfs_part

三、LVM 磁盘管理方案

方案描述:

在虚拟机中添加两块 SCSI 硬盘,使用 LVM 技术创建逻辑卷并挂载,最后进行扩容操作。

步骤

  1. 添加硬盘

    • 添加第一块硬盘(假设为 /dev/sdc
    • 添加第二块硬盘(假设为 /dev/sdd
  2. 创建物理卷

    pvcreate /dev/sdc /dev/sdd
    
  3. 创建卷组

    vgcreate mbvg /dev/sdc /dev/sdd
    
  4. 创建逻辑卷

    # 创建 1G 的 ext4 逻辑卷
    lvcreate -L 1G -n box mbvg
    
    # 创建 1G 的 xfs 逻辑卷
    lvcreate -L 1G -n xfs mbvg
    
  5. 格式化逻辑卷

    mkfs.ext4 /dev/mbvg/box
    mkfs.xfs /dev/mbvg/xfs
    
  6. 创建挂载目录

    mkdir /box
    mkdir /xfs
    
  7. 挂载逻辑卷

    mount /dev/mbvg/box /box
    mount /dev/mbvg/xfs /xfs
    
  8. 配置开机自动挂载
    编辑 /etc/fstab 文件,添加以下内容:

    /dev/mbvg/box /box ext4 defaults 0 2
    /dev/mbvg/xfs /xfs xfs defaults 0 2
    
  9. 扩容逻辑卷

    • 扩展 /box 到 2.8G

      # 扩展逻辑卷
      lvextend -L 2.8G /dev/mbvg/box
      
      # 扩展文件系统(ext4 需要先卸载)
      umount /box
      resize2fs /dev/mbvg/box
      mount /dev/mbvg/box /box
      
    • 扩展 /xfs 到 2G

      # 扩展逻辑卷
      lvextend -L 2G /dev/mbvg/xfs
      
      # 扩展文件系统(xfs 无需卸载)
      xfs_growfs /xfs
      

验证

df -h

输出示例

文件系统          容量  已用  可用  已用% 挂载点
/dev/mapper/mbvg-box 2.8G   50M   2.7G    2%   /box
/dev/mapper/mbvg-xfs  2G     50M   1.9G    3%   /xfs
posted @ 2025-05-23 22:41  FangNing  阅读(34)  评论(0)    收藏  举报