之前介绍磁盘存储 这次来实现如何管理磁盘、怎么来分区、创建文件系统等

管理分区命令

1、lsblk 列出当前所有挂载设备

[root@centos6 ~]#lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  
sdb      8:16   0   20G  0 disk 
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 29.3G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    3G  0 part [SWAP]
sdc      8:32   0   20G  0 disk 

2、fdisk 创建mbr分区,也支持gpt分区,不过还在测试阶段,gpt分区有专门的分区命令 gdisk 用法和fdisk一样

fdisk -l [-u] [device....] 查看分区 fdisk /dev/sdb 管理分区
子命令(在用fdisk /dev/sdb进行分区时用到的选项) 1、p ----------分区列表
3、m----------获取帮助 2、t ----------更改分区类型
3、n ---------创建新分区
4、d ----------删除分区
5、v ----------校验分区
6、u ----------转换单位
7、w ----------保存并退出
8、q ----------不保存并退出

[root@centos6 ~]#fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x769c63d5.
........
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
	 Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +1G
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
.......
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  83  Linux

**3、parted 的操作都是实时生效的,小心使用 **

用法:parted [ 选项 ].....[ 设备 [ 命令 [参数]...]...]

# 要对当前设备/dev/sdb 做gpt格式分区
#parted /dev/sdb mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data
on this disk will be lost. Do you want to continue?
Yes/No? yes                                                               
Information: You may need to update /etc/fstab.  

# 查看当前/dev/sdb信息
[root@centos6 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number  Start  End  Size  File system  Name  Flags

# 直接对/dev/sdb 分主分区 立马生效
[root@centos6 ~]#parted /dev/sdb mkpart primary 1 200    

# 删除/dev/sdb 下的第2个分区
[root@centos6 ~]#parted /dev/sdb rm 2

# 列出分区信息
[root@centos6 ~]#parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1075MB  1074MB  primary   ext4            boot
 2      1075MB  53.5GB  52.4GB  primary   ext4
 3      53.5GB  85.0GB  31.5GB  primary   ext4
 4      85.0GB  215GB   130GB   extended
 5      85.0GB  88.2GB  3228MB  logical   linux-swap(v1)

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
..........

4、分区创建好之后,需要同步分区表,用到的命令有partx、partprobe

1、partx 用于CentOS6 系统

[root@centos6 ~]#partx -a /dev/sba
[root@centos6 ~]#kpartx -a -f /dev/sda 

# 删除其中某一个分区
[root@centos6 ~]#lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 29.3G  0 part /data
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    3G  0 part [SWAP]
├─sda6   8:6    0    1G  0 part 
└─sda7   8:7    0    1G  0 part 
sdb      8:16   0   20G  0 disk 
sdc      8:32   0   20G  0 disk 
sr0     11:0    1  3.7G  0 rom  
[root@centos6 ~]#partx -d --nr 7 /dev/sda
[root@centos6 ~]#lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 29.3G  0 part /data
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    3G  0 part [SWAP]
└─sda6   8:6    0    1G  0 part 
sdb      8:16   0   20G  0 disk 
sdc      8:32   0   20G  0 disk 
sr0     11:0    1  3.7G  0 rom  

2、partprobe centos5、7系统使用

Command (m for help): p

Disk /dev/sda: 214.7 GB, 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
Disk label type: dos
Disk identifier: 0x000bcc63

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   176179199    87040000   8e  Linux LVM
/dev/sda3       176179200   178276351     1048576    5  Extended
/dev/sda5       176181248   177205247      512000   83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

#直接使用partprobe命令
[root@centos7 ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  200G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   83G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0    3G  0 lvm  [SWAP]
  └─centos-data 253:2    0   30G  0 lvm  /data
sr0              11:0    1  8.8G  0 rom  
[root@centos7 ~]# partprobe 
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@centos7 ~]# lsblk     
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  200G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
├─sda2            8:2    0   83G  0 part 
│ ├─centos-root 253:0    0   50G  0 lvm  /
│ ├─centos-swap 253:1    0    3G  0 lvm  [SWAP]
│ └─centos-data 253:2    0   30G  0 lvm  /data
├─sda3            8:3    0  512B  0 part 
└─sda5            8:5    0  500M  0 part 
sr0              11:0    1  8.8G  0 rom  

文件系统

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

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

各种文件系统: https://en.wikipedia.org/wiki/Comparison_of_file_systems

文件系统分类

1、linux文件系统
  1.1、ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如/boot 分区。   1.2、ext3:是ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统   1.3、ext4:是ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升   1.4、xfs:SGI,支持最大8EB的文件系统   1.5、btrfs(Oracle), reiserfs, jfs(AIX), swap
2、光盘:ISO9660
3、Windows: FAT32,exFAT,NTFS
4、Unix: FFS(fast), UFS(unix), JFS2
5、网络文件系统:NFS, CIFS
6、集群文件系统:GFS2, OCFS2(oracle)
7、分布式文件系统:fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
8、RAW:未经处理或者未经格式化产生的文件系统

根据其是否支持"journal"功能:
  日志型文件系统: ext3, ext4, xfs, ...
   非日志型文件系统: ext2, vfat

文件系统的组成部分:   内核中的模块:ext4, xfs, vfat   用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat linux的虚拟文件系统:VFS
查前支持的文件系统:cat /proc/filesystems

[root@centos7 ~]# cat /proc/filesystems 
nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   dax
nodev   pipefs
nodev   anon_inodefs
nodev   configfs
nodev   devpts
nodev   hugetlbfs
nodev   autofs
nodev   pstore
nodev   mqueue
nodev   selinuxfs
        xfs
nodev   rpc_pipefs

VFS

文件系统选择

创建文件系统

mkfs 命令   mkfs.FS_TYPE/dev/DEVICE
    ext4     xfs     btrfs     vfat     -L 'LABEL' 添加卷标

#格式化成ext4文件系统
[root@centos6 ~]#mkfs.ext4 /dev/sda6
#格式化成vfat文件系统
[root@centos6 ~]#mkfs.vfat /dev/sda6
#指定文件系统后加卷标
[root@centos6 ~]#mkfs -t ext4 -L '/mnt/sda6' /dev/sda6
mke2fs 1.41.12 (17-May-2010)
Filesystem label=/mnt/sda6
OS type: Linux

# 查看卷标及文件系统类型
[root@centos6 ~]#blkid 
/dev/sda2: UUID="9d14df54-a9ce-4c41-bdbe-dc9d851d11d1" TYPE="ext4" 
/dev/sda1: UUID="eb942a01-ecc7-40f4-ac87-8a1dbb07841e" TYPE="ext4" 
/dev/sda3: UUID="e49f600c-7f88-4e84-aba2-bb85296647ad" TYPE="ext4" 
/dev/sda5: UUID="b92b7eda-51dc-4e22-a0fc-09f72a542158" TYPE="swap" 
/dev/sda6: LABEL="/mnt/sda6" UUID="201198ba-54ec-47ae-8b1f-bd0a2afa550f" TYPE="ext4" 
...........

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

选项:
		-t {ext2|ext3|ext4}
		-b {1024|2048|4096}
		-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:关闭指定特性
			
mke2fs  /dev/sda6  默认使用ext2文件系统
[root@centos6 ~]#mke2fs /dev/sda6
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65952 inodes, 263292 blocks
13164 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=272629760
9 block groups
32768 blocks per group, 32768 fragments per group
7328 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376
[root@centos6 ~]#blkid 
/dev/sda2: UUID="9d14df54-a9ce-4c41-bdbe-dc9d851d11d1" TYPE="ext4" 
/dev/sda1: UUID="eb942a01-ecc7-40f4-ac87-8a1dbb07841e" TYPE="ext4" 
/dev/sda3: UUID="e49f600c-7f88-4e84-aba2-bb85296647ad" TYPE="ext4" 
/dev/sda5: UUID="b92b7eda-51dc-4e22-a0fc-09f72a542158" TYPE="swap" 
/dev/sda6: UUID="8ca19e66-2024-4e30-ab12-6e07e2782793" TYPE="ext2" 

文件系统标签

 指向设备的另一种方法
 与设备无关

blkid:块设备属性信息查看
  blkid[OPTION]... [DEVICE]
    -U UUID: 根据指定的UUID来查找对应的设备

[root@centos6 ~]#blkid -U 8ca19e66-2024-4e30-ab12-6e07e2782793
/dev/sda6

    -L LABEL:根据指定的LABEL来查找对应的设备

[root@centos6 ~]#blkid -L /mnt/sda6
/dev/sda6

findfs:查找分区   findfs[options] LABEL=<label>

#根据卷标来查找
[root@centos6 ~]#findfs LABEL=/mnt/sda6
/dev/sda6

  findfs[options] UUID=<uuid>

#根据UUID查找
[root@centos6 ~]#findfs UUID=b92b7eda-51dc-4e22-a0fc-09f72a542158
/dev/sda5

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