磁盘结构及概念 | 使用fdisk分区工具 | 格式化分区 | 开机自动挂载 | LVM逻辑卷 |
磁盘结构及概念
一个硬盘有255个盘片(磁盘)
盘片 每个盘片有458个磁道
磁道 track 把磁盘分为一圈一圈的,每个磁道划分是63个扇区
扇区 sector 把一圈一圈的磁道,分成扇区 ,一个扇区是512字节
磁头 head 一个磁盘一个读写磁头
柱面 cylinder 硬盘有多个磁盘,两个磁盘最里面的磁道(最里面的一圈),的相距画上虚线,形成一个圆柱体,就叫做柱面,柱面大小大约为8MB
#######################################################################################################################################
一块硬盘的艺术之旅
识别硬盘 => 分区规划 => 格式化 => 挂载使用
MBR/msdos分区模式
- 1~4个主分区,或者0~3个主分区+1个扩展分区(n个逻辑分区)
- 最大支持容量为2.2TB的磁盘
- 扩展分区不能格式化
##############################################################################################################
使用fdisk分区工具
查看分区表
- fdisk -l /dev/sda
修改硬盘分区表
- fdisk /dev/sda
m | 列出指令帮助 |
p | 查看现有的分区表 |
n | 新建分区 |
d | 删除分区 |
q | 放弃更改并退出 |
w | 保存更改并退出 |
补充命令
lsblk #查看本机所有的磁盘信息
[root@localhost ~]# fdisk -l
Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 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: 0x000ac327
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 6293503 2097152 82 Linux swap / Solaris
/dev/sda3 6293504 216008703 104857600 83 Linux
Start 2048 End 2099199 数值表示的是扇区
案例1:硬盘分区及格式化
1.在磁盘/dev/vdb上按以下要求建立分区
1) 采用默认的msdos分区模式
2) 第1个分区/dev/vdb1的大小为200MIB
3) 第2个分区/dev/vdb2的大小为2000MIB
4) 第4个分区/dev/vdb3的大小为1000MIB
扇区是从2048开始,因为前面需要存放硬盘分区信息和引导文件
[root@localhost ~]# fdisk /dev/sdb #开始格式化/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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xdcd15570.
Command (m for help): p #按p查看硬盘分区信息
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 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: 0xdcd15570
Device Boot Start End Blocks Id System
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-629145599, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): +200M #第一个分区分200M,需要有加号
###################/dev/sdb2 /dev/sdb3 两个分区都是2000M
Command (m for help): p
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 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: 0xdcd15570
Device Boot Start End Blocks Id System
/dev/sdb1 2048 411647 204800 83 Linux
/dev/sdb2 411648 4507647 2048000 83 Linux
/dev/sdb3 4507648 8603647 2048000 83 Linux
Command (m for help): w #按w保存文件信息
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#fdisk /dev/sdb
n 创建新的分区--->p(回车)--->1(回车)--->回车-->+200M
p 查看分区表
d 删除分区
w 保存并退出
#ls /dev/sdb[1-3]
刷新分区表
使用partprobe命令
-当硬盘的分区表被更改以后,需要将分区表的变化及时通知linux内核,最好reboot一次
-否则在访问分区时可能会找不到准确的设备
#partprobe /dev/sdb
##############################################################################
2.实现开机自动挂载/dev/vdb2分区
1) 文件系统类型为ext4
2) 将其挂载到/mnt/part2目录
格式化分区
常用格式化工具
mkfs工具集
- mkfs.ext3 分区设备路径
- mkfs.ext4 分区设备路径 #linux常用分区
- mkfs.xfs 分区设备路径 #linux常用分区
- mkfs.vfat -F 32 分区设备路径 #兼容windows分区格式
[root@localhost /]# mkfs.ext4 /dev/sdb2
[root@localhost /]# mkfs.xfs /dev/sdb3
查看uuid和文件系统
[root@localhost /]# blkid
/dev/sda1: UUID="4822f06f-42b7-4448-87be-301d61ea53a4" TYPE="xfs"
/dev/sda2: UUID="97eddddc-c753-4b20-a33d-62ca25b4e6a4" TYPE="swap"
/dev/sda3: UUID="db1d0122-1729-4c02-9099-6a9e4fd30360" TYPE="xfs"
/dev/sdb2: UUID="de9c4e7b-e447-4321-8c56-4fde8d2bcdc2" TYPE="ext4"
/dev/sdb3: UUID="4e2ed410-961d-4743-be33-db4d154fb678" TYPE="xfs"
/dev/sr0: UUID="2018-05-03-20-55-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
[root@localhost /]# blkid /dev/sdb2 #查看是否格式化成功,有UUID 输出信息表示成功 blkid /dev/sdb1 就没有输出信息
/dev/sdb2: UUID="de9c4e7b-e447-4321-8c56-4fde8d2bcdc2" TYPE="ext4"
挂载使用:
# mkdir /mnt/mypart2
# mkdir /mnt/mypart3
# mount /dev/sdb2 /mnt/mypart2
# mount /dev/sdb3 /mnt/mypart3
# echo 123 > /mnt/mypart2/1.txt
[root@localhost /]# df -h #查看正在挂载使用的分区信息
[root@localhost /]# du -sh /etc #统计etc目录的大小
##############################################################################################
思路:
1.lsblk #磁盘是否识别
2.fdisk #划分新的分区
3.partprobe #刷新新的分区
4.mkfs.xfs #格式化新的分区
5.mount #挂载
##############################################################################################
开机自动挂载
配置文件/etc/fstab的记录格式
-- 设备路径 挂载点 类型 参数 备份表记 检测顺序
[root@localhost ~]# cat /etc/fstab
UUID=db1d0122-1729-4c02-9099-6a9e4fd30360 / xfs defaults 0 0
UUID=4822f06f-42b7-4448-87be-301d61ea53a4 /boot xfs defaults 0 0
UUID=97eddddc-c753-4b20-a33d-62ca25b4e6a4 swap swap defaults 0 0
[root@localhost ~]# blkid
/dev/sdb2: UUID="de9c4e7b-e447-4321-8c56-4fde8d2bcdc2" TYPE="ext4"
/dev/sdb3: UUID="4e2ed410-961d-4743-be33-db4d154fb678" TYPE="xfs"
/dev/sda1: UUID="4822f06f-42b7-4448-87be-301d61ea53a4" TYPE="xfs"
/dev/sda2: UUID="97eddddc-c753-4b20-a33d-62ca25b4e6a4" TYPE="swap"
/dev/sda3: UUID="db1d0122-1729-4c02-9099-6a9e4fd30360" TYPE="xfs"
/dev/sr0: UUID="2018-05-03-20-55-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
[root@localhost ~]# blkid /dev/sdb3
/dev/sdb3: UUID="4e2ed410-961d-4743-be33-db4d154fb678" TYPE="xfs"
补充vim命令 按o另起一行插入
################用uuid和设备路径都可以
vim /etc/fstab
UUID=de9c4e7b-e447-4321-8c56-4fde8d2bcdc2 /mnt/mypart2 ext4 defaults 0 0
UUID=4e2ed410-961d-4743-be33-db4d154fb678 /mnt/mypart3 xfs defaults 0 0
/dev/sdb2 /mnt/mypart2 ext4 defaults 0 0
/dev/sdb3 /mnt/mypart2 ext4 defaults 0 0
[root@localhost ~]# mount -a
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中书写完成,但当前没有挂载的设备,进行挂载
#####################################################################################################
综合分区规划
应用需求
硬盘/dev/sdb剩余空间的分区调整
-MBR分区模式,已有三个主分区/dev/sdb[1-3]
-需要新增三个分区/dev/sdb[5-7]
分区大小依次为500MIB、2000MIB、512MIB
-分别用于后续的逻辑卷扩展,新建逻辑卷、交换分区
# fdisk /dev/sdb
p 查看分区表
n 创建新分区
---->e ---->起始回车---->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区--->起始回车---->+500M
....
w 保存并退出
[root@localhost ~]# partprobe #刷新新的分区表
[root@localhost ~]# ls /dev/sdb[1-7] #
##########################################################################################################
综合分区练习
lsblk查看是否加载硬盘成功
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 100G 0 part /
sdb 8:16 0 300G 0 disk
├─sdb1 8:17 0 200M 0 part
├─sdb2 8:18 0 2G 0 part /mnt/mypart2
├─sdb3 8:19 0 2G 0 part /mnt/mypart3
├─sdb4 8:20 0 1K 0 part
├─sdb5 8:21 0 500M 0 part
├─sdb6 8:22 0 2G 0 part
└─sdb7 8:23 0 512M 0 part
sdc 8:32 0 60G 0 disk
划分6个分区
/dev/sdc1 10G
/dev/sdc2 10G
/dev/sdc3 10G
/dev/sdc4 剩余所有空间
/dev/sdc5 8G
/dev/sdc6 10G
[root@localhost ~]# ls /dev/sdc[1-6]
###########################################################################################
LVM逻辑卷
为什么要用逻辑卷?
1.整合分散的空间
2.空间可以扩大或者减小
新建逻辑卷
lvm工作方式
.在"分区-->格式化"中间增加的一个逻辑层
--零散空闲存储----整合的虚拟磁盘-----虚拟的分区
物理卷 Physical Volume
卷组 Volume Group
逻辑卷 Logical Volume
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan扫描 | pvscan | vgscan | lvscan |
Create创建 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 | / | vgextend | lvextend |
#####################################################################################################
新建一个逻辑卷
使用/dev/sdc构建lvm存储
1)新建一个名为systemvg的卷组
2)在此卷组中创建名为vo的逻辑卷,大小180MIB
3)将逻辑卷vo格式化为ext4文件系统
4)将逻辑卷vo挂载到/vo目录,并在此目录下建立一个测试文件votest.txt,内容为"I AM KING"
# pvs 和pvscan
# vgs 和vgscan
[root@localhost ~]# pvcreate /dev/sdc[1-2] #把sdc1和sdc2做成一个物理卷
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc1 lvm2 --- 10.00g 10.00g
/dev/sdc2 lvm2 --- 10.00g 10.00g
[root@localhost ~]# vgcreate systemvg /dev/sdc[1-2]
Volume group "systemvg" successfully created
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdc1 systemvg lvm2 a-- <10.00g <10.00g
/dev/sdc2 systemvg lvm2 a-- <10.00g <10.00g
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
systemvg 2 0 0 wz--n- 19.99g 19.99g
####删除pv和vg
[root@localhost ~]# vgremove systemvg
Volume group "systemvg" successfully removed
[root@localhost ~]# pvremove /dev/sdc[1-2]
Labels on physical volume "/dev/sdc1" successfully wiped.
Labels on physical volume "/dev/sdc2" successfully wiped.
重点
######################同时创建pv和vg
[root@localhost ~]# vgcreate systemvg /dev/sdc[1-2]
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdc2" successfully created.
Volume group "systemvg" successfully created