一.查看分区状态

lsblk<列出系统上所有磁盘列表>

lsblk [-dfimpt] [device]

-d :仅列出磁盘本身,不会列出该磁盘的分区数据;
-f :同时列出该磁盘内的文件系统名称;
-i :使用 ASCII 的线 段输出;
-m :同时输出该设备在 /dev 下面的权限数据;
-p :列出该设备的完整文件名;
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等

实例演示

[[email protected] ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  120G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0  119G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  3.8G  0 lvm  [SWAP]
  └─centos-home 253:2    0 65.2G  0 lvm  /home
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  9.6G  0 rom  

输出字段解释
NAME:设备的文件名;
MAJ:MIN:主要设备代码:次要设备代码;
RM:是否为可卸载设备,如光盘、USB 磁盘等;
SIZE:容量;
RO:是否为只读设备;
TYPE:是磁盘 (disk)、分区 (partition) 还是只读存储器 (rom) 等类型 ;
MOUTPOINT:挂载点

blkid<列出磁盘的UUID>

实例演示

[[email protected] ~]# blkid 
/dev/sr0: UUID="2020-04-22-00-55-24-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sda1: UUID="7e3605fa-6edc-4aa1-a3e9-eef9153c204e" TYPE="xfs" 
/dev/sda2: UUID="pWc0m4-rN73-Gfco-TzFm-V0iZ-fUJM-UjCKc3" TYPE="LVM2_member" 
/dev/mapper/centos-root: UUID="52c0275b-acd1-4491-be74-4285ccaeab63" TYPE="xfs" 
/dev/sdb: PTTYPE="dos" 
/dev/mapper/centos-swap: UUID="2d8e0a34-26a1-4ffa-98b2-d00bf86dc18a" TYPE="swap" 
/dev/mapper/centos-home: UUID="5430386c-23ec-4bcf-99c2-e3e19ea8552e" TYPE="xfs" 

输出字段解释
磁盘名称:UUID 文件系统类型

parted<列出磁盘的分区表类型与分区信息>

实例演示

[[email protected] ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 129GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  129GB   128GB   primary               lvm

输出字段解释:
Model:磁盘的模块名称/厂商
Disk xxx/xxx:该磁盘的总容量
Sector size:磁盘的每个逻辑/物理扇区容量
Partition Table:分区表格式
Number:分区序号ID
Srart:分区开始位置
End:分区结束位置
Size:分区大小
Type:分区类型
File system:分区系统类型

二.管理分区
通过parted命令我们可以知道分区格式(Partition Table字段,如是msdos则是MBR分区,如是gpt则是GPT分区)
fdisk<MBR分区工具>

[[email protected] ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


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    #删除分区
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types    #打印系统ID清单
   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    #更改分区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): 

实例演示

1.创建分区

[[email protected] ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  120G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0  119G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  3.8G  0 lvm  [SWAP]
  └─centos-home 253:2    0 65.2G  0 lvm  /home
sdb               8:16   0   10G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sr0              11:0    1  9.6G  0 rom  

2.磁盘格式化

[[email protected] ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655296 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: UUID="3a2174bd-fd94-442c-9fc4-e04963da6f23" TYPE="xfs" 

其实,mkfs不止vfs文件系统的格式化,还支持以下系统

[[email protected] ~]# mkfs
mkfs         mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs

3.挂载分区

mount [-altno] LABEL/UUID=' ' 挂载点

常用参数解释:

-a :依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来 
-l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称
-t :可以加上文件系统种类来指定欲挂载的类型。常见的 Linux 支持类型有:xfs, ext3, ext4, reiserfs, vfat, iso9660(光盘格式), nfs, cifs, smbfs (后三种为网络文件系统类型) 
-n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。 但在某些情况下(例如单人维护模式)为了避免问题会刻意不写入。此时就得要使用-n 选项。 
-o :后面可以接一些挂载时额外加上的参数,比方说帐号、密码、读写权限等: 
    async, sync: 此文件系统是否使用同步写入 (sync) 或非同步 (async) 的 内存机制,默认为 async。 
    atime,noatime: 是否修订文件的读取时间(atime)。为了性能,某些时刻可使用 noatime 
    ro, rw: 挂载文件系统成为只读(ro) 或可读写(rw) 
    auto, noauto: 允许此 filesystem 被以 mount -a 自动挂载(auto) 
    dev, nodev: 是否允许此 filesystem 上,可创建设备文件,dev为可允许 
    suid, nosuid: 是否允许此 filesystem 含有 suid/sgid 的文件格式
    exec, noexec: 是否允许此 filesystem 上拥有可执行 binary 文     
    user, nouser: 是否允许此 filesystem 让任何使用者执行 mount,一般来说, mount 仅有 root 可以进行,但下达 user 参数,则可让 一般 user 也能够对此 partition 进行 mount 。 
    defaults: 默认值为:rw, suid, dev, exec, auto, nouser, and async 
    remount: 重新挂载,这在系统出错,或重新更新参数时使用
#以上命令执行为临时挂载,重启后会消失,修改/etc/fstab添加配置则为开机自动挂载
文件修改格式:[设备/UUID等] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]
文件系统参数:
async/sync 非同步/同步 设置磁盘是否以非同步方式运行,默认为 async(性能较佳)
auto/noauto 自动/非自动 当下达 mount -a 时,此文件系统是否会被主动测试挂载,默认为 auto。
rw/ro 可读 写/只读 让该分区以可读写或者是只读的型态挂载上来
exec/noexec 可执行/不可 执行 限制在此文件系统内是否可以进行“执行”的工作
user/nouser 允许/不允许 使用者挂载 是否允许使用者使用 mount指令来挂载呢
suid/nosuid 具有/不具有 suid 权限 该文件系统是否允许 SUID 的存在
defaults 同时具有 rw, suid, dev, exec, auto, nouser, async 等参数,默认情况使用 defaults

实例演示

[[email protected] ~]# mount /dev/sdb1 /tmp/test/
[[email protected] ~]# mount
/dev/sdb1 on /tmp/test type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[[email protected] ~]# vim /etc/fstab(验证可先umount之前挂载的系统,直接mount -a读取配置挂载)
/dev/sdb1       /tmp/test/      xfs     defaults        0 0

4.卸载分区

umount [-fn] 设备文件名或挂载点

常用参数解释:
-f :强制卸载;
-l :立刻卸载文件系统;
-n :不更新 /etc/mtab 情况下卸载

实例演示

[[email protected] ~]# umount /tmp/test/

5.删除分区

[[email protected] ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d
Selected partition 1
Partition 1 is deleted

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  120G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0  119G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  3.8G  0 lvm  [SWAP]
  └─centos-home 253:2    0 65.2G  0 lvm  /home
sdb               8:16   0   10G  0 disk 
sr0              11:0    1  9.6G  0 rom  

gdisk<GPT分区工具>

分区操作和fdisk一致,除了指令介绍是字符?,没有GPT分区,仅演示命令字符

[[email protected] ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition    #删除分区
i	show detailed information on a partition
l	list known partition types    #打印分区ID清单
n	add a new partition    #新增分区
o	create a new empty GUID partition table (GPT)
p	print the partition table    #打印分区表
q	quit without saving changes    #不存储更改,退出管理界面
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code    #更改分区ID
v	verify disk
w	write table to disk and exit    #存储更改,退出管理界面
x	extra functionality (experts only)
?	print this menu

Command (? for help): 

三.文件系统检验

1.xfs_repair处理xfs文件系统
xfs_repair [-fnd] 设备名称

常用参数解释:
-f :后面的设备其实是个文件而不是实体设备
-n :仅检查不修复
-d :通常用在单人维护模式下面,针对根目录进行检查与修复的动作

2.fsck.ext4处理ext4文件系统
fsck.ext4 [-pf] [-b superblock] 设备名称

常用参数解释:
-p :当文件系统在修复时,若有需要回复 y 的动作时,自动回复 y 来继续进行修复动作。
-f :强制检查
-D :针对文件系统下的目录进行最优化配置。
-b :后面接 superblock 的位置!一般来说这个选项用不到。但是如果你的 superblock 因故损毁时, 通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。一般来说,superblock 备份在: 1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768
四.磁盘/文件系统参数更改mknod<修改major和minor参数>
mknod 设备文件名 [bcp] [Major] [Minor]

常用参数解释:
设备种类:
b :设置设备名称成为一个周边储存设备文件,例如磁盘等;
c :设置设备名称成为一个周边输入设备文件,例如鼠标/键盘等;
p :设置设备名称成为一个 FIFO 文件; Major :主要设备代码;
Minor :次要设备代码;

xfs_admin<修改xfs文件系统的UUID和Label name>
xfs_admin [-lu] [-L label] [-U uuid] 设备文件名

常用参数解释:
-l :列出这个设备的 label name
-u :列出这个设备的 UUID
-L :设置这个设备的 Label name
-U :设置这个设备的 UUID 新的UUID可由uuidgen产生

tune2fs<修改ext4文件系统的UUID和Label name>
tune2fs [-l] [-L Label] [-U uuid] 设备文件名

常用参数解释:
-l :将 superblock 内的数据读出来
-L :修改 LABEL name
-U :修改 UUID

Reference URL:《鸟哥的linux私房菜》