17.磁盘分区管理

作者:码农 | 发布时间:

使用fdisk命令管理MBR分区

任务描述:vmware中添加一块scsi总线的20G硬盘,在不重启的情况下识别硬盘,硬盘分区参数是:2个主分区各5G,一个扩展分区10G,扩展分区再分为2个5G的逻辑分区,分区类型是两个主分区是Linux,两个逻辑分区是Linux Lvm

使用命令

分区

容量

分区类型

fdisk命令

/dev/sdb1

5G

Linux

/dev/sdb2

5G

Linux

/dev/sdb3

10G

Extended

/dev/sdb5

5G

Linux LVM

/dev/sdb6

5G

Linux LVM

1.添加新硬盘

  • 步骤1:为了不影响正在运行的服务业务,需要在不关闭或重启服务器的情况下添加新硬盘(实验环境下在虚拟机VMware中添加一块新的SCSI总线的20G硬盘)。

a65f2fd95d144637

  • 步骤2:使用lsblk命令显示所有可用块设备的信息及其依赖关系,由此可见,新硬盘还未加载而未被识别,需要将连接新硬盘的SCSI总线重新扫描后才可以被系统识别.

[root@dyzx ~]# lsblk

NAME    MAJ:MIN   RM  SIZE       RO             TYPE  MOUNTPOINT

sda             8:0        0  20G  0  disk

├─sda1           8:1       0  512M  0  part  /boot

└─sda2           8:2       0  19.5G  0  part

  ├─rhel_dyzx-root      253:0       0  17.5G  0  lvm  /

  └─rhel_dyzx-swap  253:1       0  2G  0  lvm  [SWAP]

sr0        11:0       1  3.5G  0  rom

  • 步骤3:使用ls命令显示主机总线号→使用echo命令依次扫描总线号为host1、host2…的SCSI设备→使用lsblk命令显示所有可用(可识别)的块设备,直至显示出了新的块设备,表明新添加的硬盘已被系统识别。

[root@dyzx ~]# ls  /sys/class/scsi_host/  //显示主机上所有SCSI总线号

host0   host12  host16  host2   host23  host27  host30  host5  host9

host1   host13  host17  host20  host24  host28  host31  host6

host10  host14  host18  host21  host25  host29  host32  host7

host11  host15  host19  host22  host26  host3   host4   host8

[root@dyzx ~]# echo  "- - -" > /sys/class/scsi_host/host1/scan

[root@dyzx ~]# echo  "- - -" > /sys/class/scsi_host/host2/scan

[root@dyzx ~]# lsblk

NAME    MAJ:MIN   RM  SIZE  RO  TYPE  MOUNTPOINT

sda             8:0        0  20G  0  disk

├─sda1           8:1       0  512M  0  part  /boot

└─sda2           8:2       0  19.5G  0  part

  ├─rhel_dyzx-root      253:0       0  17.5G  0  lvm  /

  └─rhel_dyzx-swap  253:1       0  2G  0  lvm  [SWAP]

sdb                            8:16       0           20G  0  disk

sr0        11:0       1  3.5G  0  ro

2.创建分区

  • 命令:fdisk 设备名
  • fdisk命令以交互方式进行操作的,在菜单中选择相应功能键即可

指令

作用

指令

作用

a

调整磁盘的启动分区

p

显示当前磁盘的分区信息

d

删除磁盘分区

t

更改分区类型

l

显示所有支持的分区类型

u

切换所显示的分区大小单位

m

查看所有指令的帮助信息

n

创建新分区

q

不保存更改,退出fdisk命令

w

把修改写入磁盘分区表,然后退出fdisk命令

g

新建一个空的GPT分区表

o

新建一个空的DOS分区表

  • 步骤3:对新增硬盘“/dev/sdb”执行分区命令,使用“n”指令和“p”指令创建容量为5G的第1个主分区(/dev/sdb1),使用同样的操作完成/dev/sdb2。

[root@dyzx ~]# fdisk   /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x7efe5e45 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n  //输入字符n,新建分区

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p  //输入字符p,新建主分区

分区号 (1-4,默认 1):1  //输入数字1,创建序号为1的主分区

起始 扇区 (2048-41943039,默认为 2048):2048  //输入数字2408,主分区的起始扇区号

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+512M

分区 1 已设置为 Linux 类型,大小设为 512 MiB

  • 步骤4:使用“n”指令和“e”指令创建容量为10G的第1个扩展分区(/dev/sdb3)

命令(输入 m 获取帮助):n  //输入字符n,新建分区

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): e  //输入字符p,新建主分区

分区号 (1-4,默认 1):3  //输入数字1,创建序号为1的主分区

起始 扇区 (2048-41943039,默认为 2048):回车  //输入数字2408,主分区的起始扇区号

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G

分区3 已设置为 Linux 类型,大小设为 512 MiB

  • 步骤5:使用“n”指令和“l”指令创建容量为5G的逻辑分区(/dev/sdb5和/dev/sdb6)。

命令(输入 m 获取帮助):n  //输入字符n,新建分区

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   l   logical(number from 5)

Select (default p):l  //输入字符p,新建主分区

添加逻辑分区:5  //逻辑分区的编号始终从数字5开始

起始 扇区 (2048-41943039,默认为 2048):回车  //逻辑分区的起始扇区号

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G

分区3 已设置为 Linux 类型,大小设为 512 MiB

  • 步骤6:使用“t”指令和“p”指令修改分区类型和查看分区信息。

命令(输入 m 获取帮助):t

分区号 (1-3,5,6,默认 6):5

Hex 代码(输入 L 列出所有代码):8e

已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

   设备 Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048    10487807     5242880   83  Linux

/dev/sdb2        10487808    20973567     5242880   83  Linux

/dev/sdb3        20973568    41943039    10484736    5  Extended

/dev/sdb5        20975616    31461375     5242880   8e  Linux LVM

/dev/sdb6        31463424    41943039     5239808   8e  Linux LVM

 

  • 步骤7:使用w指令保存分区信息,使用partprobe 设备名 命令,使操作系统内核获知新的分区表信息

命令(输入 m 获取帮助):w 

[root@linux ~]# partprobe /dev/sdb

任务描述:vmware中添加一块scsi总线的20G硬盘,按照下表分区方式进行分区,将硬盘分为3个区,大小分别是5G,5G,10G,分区类型是Linux,Linux,Linux LVM

使用命令

分区

容量

分区类型

gdisk命令

/dev/sdc1

5G

Linux

/dev/sdc2

5G

Linux

/dev/sdc3

10G

Linux LVM

gdisk命令工具默认将磁盘划分为GPT格式的分区

  • 步骤1:执行gdisk命令→输入n指令创建新分区。
  • 步骤2:指定分区编号(默认是未使用的最小分区编号)
  • 步骤3:指定新分区开始的位置和结束位置。
  • 步骤4:设置分区类型为Linux LVM。

[root@dyzx ~]# gdisk   /dev/sdc

GPT fdisk (gdisk) version 0.8.6

Partition table scan:

  MBR: not present

  BSD: not present

  APM: not present

  GPT: not present

Creating new GPT entries.

Command (? for help): n

Partition number (1-128, default 1): 1

First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 2048

Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +3G

Current type is 'Linux filesystem’

Hex code or GUID (L to show codes, Enter = 8300): 8e00

Changed type of partition to 'Linux LVM'

  • 步骤5:显示已创建的分区信息。
  • 步骤6:输入w子命令将分区设置写入分区表→当提示最终确认时,输入“y”
  • 步骤7: 执行partprobe命令,使操作系统内核获知新的分区表信息。

Command (? for help): p

Disk /dev/sdc: 41943040 sectors, 20.0 GiB

Logical sector size: 512 bytes

Disk identifier (GUID): 1C83756F-0779-4722-BE7F-7AD988268777

Partition table holds up to 128 entries

First usable sector is 34, last usable sector is 41943006

Partitions will be aligned on 2048-sector boundaries

Total free space is 35651517 sectors (17.0 GiB)

 

Number  Start (sector)    End (sector)  Size       Code  Name

   1          2048        6293503   3.0 GiB   8E00  Linux LVM

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING

PARTITIONS!!

Do you want to proceed? (Y/N): y

OK; writing new GUID partition table (GPT) to /dev/sdc.

The operation has completed successfully.

[root@dyzx ~]# partprobe  /dev/sdc

使用gdisk命令管理GPT分区

任务描述:对任务1和任务2中的7块分区按照下表中的文件系统类型进行格式化操作

使用命令

分区

容量

分区类型

文件系统

fdisk命令

/dev/sdb1

5G

Linux

xfs

/dev/sdb2

5G

Linux

xfs

/dev/sdb3

10G

Extended

/dev/sdb5

5G

Linux LVM

ext4

/dev/sdb6

5G

Linux LVM

ext4

gdisk命令

/dev/sdc1

5G

Linux

xfs

/dev/sdc2

5G

Linux

xfs

/dev/sdc3

10G

Linux LVM

ext4

使用文件系统格式化分区

  • 命令格式:

mkfs|mkfs.xfs|mkfs.ext4  [选项分区的设备名

  • 常用的选项有:
  • -t 文件系统类型——当命令名为mkfs时,指定要创建的文件系统的类型(如:xfs、ext4、vfat等)。当命令名为mkfs.xfs、mkfs.ext4等时,不需要该选项。
  • -c——建立文件系统前先检查坏块。
  • -V——输出建立文件系统的详细信息。

举例:建立的/dev/sdb1分区上创建xfs文件系统。

[root@dyzx ~]# mkfs  -t  xfs  /dev/sdb1  //此处也可用“mkfs.xfs  /dev/sdb5”命令代替

meta-data=/dev/sdb5  isize=512      agcount=4, agsize=393216 blks

   =  sectsz=512   attr=2, projid32bit=1

   =  crc=1         finobt=0, sparse=0

Data  =  bsize=4096   blocks=1572864, 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 cblks, lazy-count=1

realtime  =none  extsz=4096    blocks=0, rtextents=0

提示:

  • 如果已有其他文件系统创建在此分区,必须在mkfs.xfs 命令中加上选项-f强行进行格式化,:mkfs.xfs -f /dev/sdb5

挂载和卸载

任务描述:对任务1和任务2中的7块分区按照下表中的挂载信息进行挂载

使用命令

分区

容量

分区类型

文件系统

挂载点

fdisk命令

/dev/sdb1

5G

Linux

xfs

/disk2

/dev/sdb2

5G

Linux

xfs

/home/aa

/dev/sdb3

10G

Extended

/dev/sdb5

5G

Linux LVM

ext4

/data

/dev/sdb6

5G

Linux LVM

ext4

/mnt/sdb6

gdisk命令

/dev/sdc1

5G

Linux

xfs

/tmp/test

/dev/sdc2

5G

Linux

xfs

/tmp/test

/dev/sdc3

10G

Linux LVM

ext4

/tmp/test

1.挂载分区(或文件系统)

  • 挂载命令

mount  [-t  文件系统类型设备名   挂载点目录

创建“/data”目录,将分区“/dev/sdb5”挂载到该目录。

[root@dyzx ~]# mkdir  /data

[root@dyzx ~]# mount  /dev/sdb5  /data

插入一个U盘(FAT32分区格式),将其挂载到“/mnt/usb”目录下。

[root@dyzx ~]# mkdir  /mnt/usb

[root@dyzx ~]# mount  /dev/sdd1  /mnt/usb

1.挂载分区(或文件系统)

  • 插入光盘,将其挂载到“/mnt/cdrom”目录下,查看挂载的所有设备。

[root@dyzx ~]# mkdir  /mnt/cdrom

[root@dyzx ~]# mount  /dev/cdrom  /mnt/cdrom

mount: /dev/sr0 写保护,将以只读方式挂载

[root@dyzx ~]# df  -h  //显示所有文件系统的磁盘使用情况

文件系统          容量      已用       可用      已用%  挂载点

/dev/mapper/rhel-root  18G       3.1G       15G       18%               /

Devtmpfs                      977M   0           977M    0%  /dev

tmpfs                         993M   128K       993M    1%                  /dev/shm

tmpfs           993M   9.0M       984M    1%  /run

tmpfs                         993M   0          993M    0%  /sys/fs/cgroup

/dev/sda1           509M  149M      361M    30%  /boot

tmpfs                         199M   12K        99M      1%  /run/user/0

/dev/sr0           3.6G     3.6G       0         100%  /mnt/cdrom

/dev/sdb5           6.0G     33M       6.0G       1%  /data

/dev/sdd1                       6.9G    4.9G       2.0G       72%  /mnt/usb

2.卸载分区

要移除USB磁盘、U盘、光盘和硬盘时,需要先卸载。卸载磁盘分区的命令为:

umount  挂载点目录或存储设备名

卸载U盘、光盘。

[root@dyzx ~]# umount  /mnt/usb

[root@dyzx ~]# umount  /dev/cdrom

3.设置系统启动时的自动挂载

  • 手动挂载的分区会在系统重启后失效,若用户需要永久挂载分区,则需要通过编辑/etc/fstab文件来实现。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。

 

将新创建的“/dev/sdb5”设备,永久挂载于“/data”目录下。

步骤1:用vim编辑器在/etc/fstab配置文件中加入相应的配置行:

[root@dyzx ~]# vim  /etc/fstab

# /etc/fstab

# Created by anaconda on Sun Nov 13 21:43:43 2016

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

/dev/mapper/rhel-root          /          xfs  defaults  0  0

UUID=78085896-e253-47ca-82c5-9f3bc2ad8a33 /boot   xfs     defaults  0  0

/dev/mapper/rhel-swap          swap   swap  defaults  0  0

//在文件末尾添加下一行内容

/dev/sdb5                        /data    xfs      defaults 0  0

步骤2:使用mount或df -h命令查看是否将/dev/sdb5挂载于/data目录下。

[root@dyzx ~]# mount  -a      //重新读取etc/fstab文件,将文件系统挂载到设置的位置

[root@dyzx ~]# mount  | grep  -w  /data

/dev/sdb5  on  /data  type  xfs (rw,relatime,seclabel,attr2,inode64,noquota)