博客
关于我
Linux--磁盘管理
阅读量:792 次
发布时间:2023-02-02

本文共 2934 字,大约阅读时间需要 9 分钟。

磁盘管理与文件系统学习之磁盘识别与分区

在与同学一起学习Linux系统管理时,我们最近聚焦于磁盘管理这一重要模块。通过本文逐步了解磁盘识别、磁盘分区以及文件系统的创建与管理。


一、设备识别

在虚拟环境中管理磁盘,首先需要让系统识别新增的硬盘。在我的CentOS 7虚拟机中,我尝试通过以下步骤进行验证:

  • 添加虚拟硬盘:在虚拟化管理工具中,添加一个新的硬盘磁盘。体系不需要详细解释每一步操作。

  • 使用lsblk命令查看设备:在终端输入lsblk查看当前块设备,但发现新的磁盘并未被识别。原因在于lsblk需要先更新内核分区信息。

  • 手动触发设备扫描:作为一种临时解决方案,我尝试通过以下命令 manually 导致硬盘扫描:

    echo '- - -' > /sys/class/scsi_host/host2/scan

    注意:host2的编号可能因CentOS版本不同而变化,如CentOS 7为host2,CentOS 6则为host0

  • 重新查看磁盘设备:执行lsblk后,新磁盘已成功识别并显示在列表中。


  • 二、设备分区

    磁盘(hard disk)分区是将大容量的物理磁盘划分为多个逻辑空间的过程。常见的分区方法有MBR(Master Boot Record)和GPT( GUID Partition Table)。


    1. 分区方式对比
    • MBR(主分区表)

      • 使用32位表示扇区容量,适用于小容量磁盘。
      • 支持最多4个主分区,或3个主分区加1个扩展分区(包含逻辑分区)。
      • 存储分区表的空间位于磁盘头,但更容易受损,常需要定期备份。
    • GPT(统一唯一标识符分区表)

      • 使用128个分区,支持大容量磁盘(超过2TB)。
      • 分区表存储在磁盘的开头和结尾,彼此验证,防止数据丢失。
      • tagging 更强的容错能力,UFN(统一文件名)标识分区,支持UEFI。

    2. 分区命令

    在实践中,常用fdisk工具管理磁盘分区。以下是fdisk的基本操作:

  • 查看分区信息

    fdisk -l /dev/sdb

    返回当前分区情况,用于定位需要操作的分区。

  • 新建分区

    fdisk /dev/sdb

    进入fdisk界面,输入以下命令创建新分区:

    • p: 查看现有分区列表。
    • t: 更改分区类型(多时不需要更改分区类型,除非需要指定特定文件系统类型)。
    • n: 创建新分区,按提示输入分区大小。
    • w: 保存并退出保存分区信息。
  • 删除分区

    fdisk /dev/sdb

    输入d选择要删除的分区编号。

  • 校验分区

    fdisk -v /dev/sdb

    检查分区是否有误。

  • 转换单位(有时需要):

    fdisk /dev/sdb -u
  • 挂载分区(后续操作准备):

    mount /dev/sdb1 /mnt/usb

  • 3. 查看分区信息

    在完成分区操作后,为了确认内核是否正确识别新分区,可以执行以下命令:

    cat /proc/partitions

    在CentOS7及以后的版本中,使用partprobe命令重新加载分区信息:

    partprobe /dev/sdb

    三、创建文件系统

    文件系统是Linux操作系统用于存储和组织文件的核心技术。在本节将介绍常用的文件系统类型及其管理工具。


    1. 文件系统类型
    • ext2:早期使用的双层文件系统,支持-read-only-。
    • ext3:基于ext2的开发版本,支持日志功能。
    • ext4: ext3的改进版,支持大型文件系统和更快的元数据性能。
    • xfs: elongation File System,由SGI开发,具有高性能和扩展性。
    • swap: 交换分区,用于虚拟内存管理。

    2. 文件系统管理工具

    文件系统管理工具主要用于创建、格式化和维护文件系统。以下是常用的命令和工具:

  • 创建文件系统

    • 全局命令:mkfs.$FS_TYPE /dev/DEVICE
    • 示例:mkfs.ext4 /dev/sda1(创建第一个分区为ext4文件系统)
  • 挂载文件系统

    mount /dev/sda1 /mnt/boot
    • 选项-r: 只读挂载。
    • 选项-w: 读写挂载。
    • 选项-n: 不更新/etc/mtab,影响mountdf命令。
  • 查看文件系统信息

    df -h /dev/sda2

    查看指定分区的存储情况。

  • 修改文件系统属性

    • tune2fs: 调整文件系统参数。
    • e2fsck: 适用于ext系列文件系统的文件系统检查工具。
  • 搜索文件系统

    findfs LABEL=hello

    查询挂载了指定卷标的分区。


  • 四、文件系统检测和修复

    文件系统偶尔可能因系统崩故或闪电等原因导致无法正常启动,需要通过检测和修复工具进行恢复。

  • 检测文件系统状态

    tune2fs -l /dev/sda1

    如果显示"no clean",表明文件系统在最后一次关闭时未正常退出。

  • 修复文件系统

    fsck.ext4 /dev/sda1

    -p: 自动修复错误(推荐使用)。

    e2fsck /dev/sda1 -y

    选项-y: 自动回答是。

  • 强制修复(不推荐):

    fsck -f /dev/sda1

  • 五、挂载新文件系统

    挂载新文件系统是文件系统管理的重要步骤。以下是常用挂载选项和命令:

  • 常见挂载选项

    • ro: 只读挂载。
    • rw: 读写挂载(默认)。
    • exec:Support执行权限(默认为root有权限)。
    • noexec:禁止执行权限。
    • dev:允许访问设备文件。
    • nodev:禁止访问设备文件。
    • nosuid:禁止suid/sgid权限生效。
    • user:允许普通用户挂载/卸载。
    • async/sync: 同步模式(默认为异步)。
  • 挂载命令示例

    mount /dev/sda2 /mnt/root  --options async,noatime
    • /dev/sda2:挂载设备。
    • /mnt/root:挂载目录。
    • --options async,noatime: 挂载选项。
  • 查找挂载状态

    findmnt /mnt/root

    查看指定挂载点对应的设备和挂载状态。


  • 六、扩展swap空间

    在某些情况下,系统内存不足需要扩展swap空间,以处理内存不足的场景。

  • 手动扩展分区

    fdisk /dev/sdb

    创建一个新的分区,并记住其分区编号。

  • 扩展文件(物理内存)

    dd if=/dev/zero of=/swap.img bs=1M count=512

    创建一个大小为1GB的swap文件。

  • 格式化swap文件

    mkswap /dev/sdb5
  • 激活swap空间

    swapon /dev/sdb5

    -p 0-32767: 优先级(数字越大越高)。

  • 挂载swap文件(可选):

    mount /dev/sdb5 /mnt/swap
  • /etc/fstab中配置swap

    echo UUID=68ab2b89-f8e3-4bf0-9939-edc7a07aea03 swap defaults 0 0 >> /etc/fstab

  • 通过本文的学习和实践,希望大家能够掌握磁盘管理的基本技能,能够熟练进行硬盘识别、分区管理以及文件系统的创建和维护。对于更深入的操作需要结合实际场景练习,并反复巩固。

    转载地址:http://uwzfk.baihongyu.com/

    你可能感兴趣的文章
    Linux C/C++ 学习路线(已拿腾讯、百度 offer)
    查看>>
    Linux cat 命令的进化版:Bat 0.25 正式发布,行压缩功能亮点十足!
    查看>>
    linux centos tomcat8配置apr模式
    查看>>
    linux centos 安装 docker-compose 1.27.4
    查看>>
    linux centos6.4 php连接sql server2008
    查看>>
    Linux centos7 防火墙设置
    查看>>
    Linux CFSSL 生成证书
    查看>>
    linux core文件设置
    查看>>
    Linux CPU管理及监控与性能评估
    查看>>
    Linux CPU负载状态分析实战
    查看>>
    Linux Dev Enviroment
    查看>>
    linux df -h卡成狗
    查看>>
    Linux DHCP服务器
    查看>>
    Linux Driver 入门 - Allocating Device Numbers
    查看>>
    LINUX du/df/free查看内存/磁盘剩余空间
    查看>>
    Linux find 匹配文件内容
    查看>>
    Linux find命令使用详解
    查看>>
    Linux GCC常用命令总结
    查看>>
    Linux ip命令:网络的瑞士军刀
    查看>>
    linux jar包启动脚本
    查看>>