Linux磁盘管理

Posted dugukeling

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux磁盘管理相关的知识,希望对你有一定的参考价值。

上一篇介绍了磁盘结构和分区结构,这一篇来介绍管理分区和管理文件系统

管理分区

1. 创建分区

(1)fdisk:创建MBR分区

fdisk -l [-u] [device...]     查看分区
fdisk /dev/sdb   管理分区
             子命令:
                  p 分区列表
                  t 更改分区类型
                  n 创建新分区
                  d 删除分区
                  v 校验分区
                  u 转换单位
                  w 保存并退出
                  q 不保存并退

技术分享图片

fdisk创建分区时是交互式的,因此写入脚本时需要

  echo -e "n
p
1

+1G
w
" | fdisk /dev/sdb

来实现非交互式创建分区

(2)gdisk: 创建GPT分区

gdisk创建分区与fdisk很相似

技术分享图片

(3)parted:高级分区操作

parted的操作都是实时生效的,不再使用w保存操作,因此要小心使用

parted用法 

parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]
parted /dev/sdb mklabel gpt|msdos     创建gpt或者mbr磁盘      
parted /dev/sdb print                 打印sdb信息   
parted /dev/sdb mkpart primary 1 200  创建主分区1,大小为200M(默认单位为M)
parted /dev/sdb rm 1                  删除分区1
parted –l                             列出分区信息

也可以用交互式

技术分享图片

 

2. 通知内核识别新分区

CentOS 5,7 : 使用 partprobe

CentOS 6使用 partx

  • 新增分区用: partx -a /dev/DEVICE
  • 删除分区用: partx -d --nr M-N /dev/DEVICE

查看内核是否已经识别新的分区: cat /proc/partations

列出分区 : lsblk

 

管理文件系统

1. 文件系统概述

(1)文件系统简介

  • 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统
  • 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等

查看系统支持的文件系统

[[email protected] ~]# ls /lib/modules/`uname -r`/kernel/fs
binfmt_misc.ko.xz  cifs    ext4     gfs2   mbcache.ko.xz  nls        udf
btrfs              cramfs  fat      isofs  nfs            overlayfs  xfs
cachefiles         dlm     fscache  jbd2   nfs_common     pstore
ceph               exofs   fuse     lockd  nfsd           squashfs

(2)文件系统类型

  • Linux文件系统:ext2,ext3,ext4,xfs,btrfs(Oracle), reiserfs, jfs(AIX), swap 等
  • 光盘:iso9660
  • Windows:FAT32, exFAT,NTFS
  • Unix: FFS(fast), UFS(unix), JFS2
  • 网络文件系统:NFS, CIFS
  • 集群文件系统:GFS2, OCFS2(oracle)
  • 分布式文件系统:fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
  • RAW:未经处理或者未经格式化产生的文件系统

根据其是否支持"journal"功能:

  • 日志型文件系统: ext3, ext4, xfs, ...
  • 非日志型文件系统: ext2, vfat

2. 创建文件系统

(1)mkfs命令

mkfs.FS_TYPE /dev/DEVICE
mkfs -t FS_TYPE /dev/DEVICE
          -L LABEL: 设定卷标
          -f :强制重建,如果这个设备已经分过其他格式的文件系统了

 

[[email protected] ~]# mkfs.ext4 -L "mydata" /dev/sdb1

(2)mke2fs:ext系列文件系统专用管理工具

-t {ext2|ext3|ext4}   
-b {1024|2048|4096}   block快大小
-L LABEL‘  卷标
-j: 相当于-t ext3
           mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3
-i # : 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
-N #: 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m #: 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...]:启用指定特性
-O ^FEATURE:关闭指定特性
[[email protected] ~]# mke2fs -t ext4 -b 2048 -i 8192 -N 10000 -m 3 /dev/sdc1

 3. 调整文件系统参数

(1)tune2fs:重新设定ext系列文件系统可调整参数的值

-l :查看指定文件系统超级块信息;super block
-L LABEL:修改卷标
-m # :修预留给管理员的空间百分比
-j : 将ext2升级为ext3
-O : 文件系统属性启用或禁用,例如–O ^has_journal
-o : 调整文件系统的默认挂载选项,例如–o ^acl
-U UUID: 修改UUID号

(2)e2label:管理ext系列文件系统的LABEL

e2label /dev/sd#                查看卷标
e2label /dev/sd# LABEL     重命名卷标

4. 信息查看

(1)blkid:块设备属性信息查看

blkid [OPTION]... [DEVICE]
       -U UUID: 根据指定的UUID来查找对应的设备
       -L LABEL:根据指定的LABEL来查找对应的设备

(2)findfs:查找分区

findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>

(3)dumpe2fs  查看文件系统信息,superblock信息及block group信息

    -h :查看超级块,不显示block group而只显示superblock 与 tune2fs  -l 一致

5. 文件系统检测和修复

发生于死机或者非正常关机之后,挂载为文件系统有几率标记为“no clean”

注意:一定不要在挂载状态下修复

(1)fsck

fsck.FS_TYPE DEVICE
fsck -t FS_TYPE DEVICE
      -p: 自动修复错误
      -r: 交互式修复错误

(2)e2fsck:ext系列文件专用的检测修复工具

e2fsck DEVICE
-y:自动回答为yes -f:强制修复

 



以上是关于Linux磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘管理的Linux管理命令

Linux磁盘管理系列 — 磁盘配额管理

【Linux命令】磁盘管理(逻辑卷与物理卷)

Linux 磁盘管理

Linux 下磁盘管理--逻辑卷--LV

Linux 磁盘管理