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硬盘)。

- 步骤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)