文章目录
- 一、硬盘和分区
- 1.1 硬盘的概念
- 1.2 硬盘分区的类别
- 1.3 硬盘分区的方式
- 1.3.1 MBR分区
- 1.3.2 GPT分区
- 1.4 硬盘分区的意义
- 1.4.1 分区的作用
- 1.4.2 分区的缺点
- 二、如何建立分区
- 2.1 分区命令
- 2.1.1 fdisk命令
- 2.1.2 gdisk命令
- 2.2 建立分区
- 2.2.1 建立MBR分区
- 建立主分区
- 建立扩展分区
- 建立逻辑分区
- 建立swap分区
- 2.2.2 建立GPT分区
- 2.2.3 小结
- 2.3 创建文件系统
- 2.3.1 什么是文件系统
- 文件系统的作用
- 文件系统的类型
- 2.3.2 创建文件系统
- mkfs命令
- 2.4 挂载与解挂载
- 2.4.1 mount umount 命令
- 2.4.2 自动挂载
- 2.4.3 小结
- 2.5 总结
- 三、实验/问题
- 3.1 如何对硬盘进行分区?
- 3.2 如何删除已挂载分区?
一、硬盘和分区
1.1 硬盘的概念
硬盘是计算机的存储设备。存储数据主要使用机械硬盘。
机械硬盘由一个或者多个磁性的盘组成,可以在盘片上进行数据的读写。
硬盘的连接方式:内部设备与外部连接(移动硬盘、U盘等)。
硬盘的作用:存储操作系统、应用系统、文档、多媒体文件。
硬盘的工作方式:读取数据之后,先把数据传输到内存当中进行处理,
磁盘的类型:
- 软盘,已经没有了
- cdrom ,光驱,也基本淘汰了
- 机械硬盘
硬盘的最小存储单位:扇区,扇区的最小存储单位是512字节,连续的扇区组成磁道,读写都是围绕磁道进行的。
1.2 硬盘分区的类别
硬盘的分区类别有主分区,扩展分区,逻辑分区。
主分区和扩展分区一共只有4个。主分区一般用来存储操作系统。
扩展分区只能有一个,在扩展分区内才能创建逻辑分区,逻辑分区数量不受限制(实际有上限,但数字很大)。
扩展分区用来保存逻辑分区的数据信息。
逻辑分区不能存储操作系统,只能保存数据。
1.3 硬盘分区的方式
常用的硬盘分区方式有MBR分区和GPT分区。
1.3.1 MBR分区
MBR分区表:只能分不超过2T的磁盘,超过2T不能使用MBR分区。
MBR主引导记录一共446字节,一般在操作系统安装时写入主引导记录。MBR就是一个引导程序,检测磁盘分区是否合法(正常工作),并加载操作系统。MBR作用:识别可用分区,在系统开机时,识别操作系统。
1.3.2 GPT分区
GPT分区表:比MBR更加先进,GPT有128位的位置分区标识符来标识分区,可分128个区。不必再细分主分区、扩展分区、逻辑分区,所有分区都是主分区。
对2T以上的硬盘做分区时,只能使用GPT分区表。使用GPT分区需要64位系统。
1.4 硬盘分区的意义
1.4.1 分区的作用
- 优化I/O的性能,读写性能,查看读写性能:iostat
- 实现磁盘空间的配额,可以规定指定的用户使用磁盘空间的大小。
- 方便定位问题,可以提高修复速度。
- 隔离操作系统目录和一般程序目录。
- 可以采用不同的系统。操作系统的分区一般都使用同一的文件系统。
1.4.2 分区的缺点
- 一旦分区建立,保存之后,如果要修改,只能全部重来,硬盘格式化,数据丢失。
- 不够灵活,所有的空间都来自一块硬盘。
- 不具备冗余/高可用,没有备份能力,只能是工程师手动备份。
问:为什么硬盘要分区?
答:不分区就不能使用,只有分区才会创建分区表,不论是MBR还是GPT。有了分区表,系统才能识别到硬盘。
二、如何建立分区
2.1 分区命令
2.1.1 fdisk命令
fdisk命令用于建立MBR分区,只能对不超过2T的硬盘进行分区。
fdisk -l :显示硬盘的详细信息
lsblk :查看硬盘情况,找到没被分区的设备/dev/sdb,sd是设备类型,SCSI类型;b: 硬盘的序号,第二块
使用fdisk /dev/sdb
进入交互界面
常用交互选项
- m:帮助菜单
- n:新建分区
- p:查看分区情况
- d:删除分区
- t:更改分区类型
- w:保存分区操作并退出
- q:不保存并退出
对 p
查看分区情况的解释:
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 20973568 41943039 10484736 5 Extended
/dev/sdb5 20975616 31461375 5242880 83 Linux
/dev/sdb6 31463424 41943039 5239808 82 Linux swap / Solaris
-
Device boot:分区名称,带 * 的是系统盘。
-
Start:起始扇区
-
End:结束扇区
-
Blocks:分区大小,块,单位字节。
-
Id:分区的类型,默认是83,82是swap交换分区,8e是lvm逻辑卷。
-
System:系统类型:XFS,EXT4…
2.1.2 gdisk命令
gdisk命令对超过2T的硬盘使用,建立GPT分区。
gdisk的交互选项和fdisk几乎一样,交互步骤也基本一致。
特别的,gdisk需要声明分区类型的ID,键入L可以查看分区类型表。
2.2 建立分区
新建分区前,需要将硬盘添加到系统,先将下条命令添加到/etc/profile
alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" >
/sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'
//通知系统内核重新扫描已经连接到系统的scsi设备,这些设备可能是光驱,也可能是硬盘,
//系统会自动检测这些设备,然后系统会自动识别,自动添加,无需重启设备。
这样新添加硬盘后,scan
一下,就能获得硬盘信息了。
2.2.1 建立MBR分区
添加一个20G的硬盘到系统,lsblk
查看,新硬盘自动命名为sdb
建立主分区
在/dev/sdb下建立一个10Gb的主分区
fdisk /dev/sdb
进入交互界面
建立扩展分区
将sdb剩余空间分配给扩展分区
建立逻辑分区
在sdb的扩展分区里建一个5G的逻辑分区
此时用lsblk
查看硬盘信息:
问:明明给扩展分区分了10G,为什么显示只有1K?
答:因为扩展分区只保存逻辑分区的数据信息,实际占用的空间很小。但逻辑分区是建立在扩展分区基础之上的,扩展分区的大小决定了逻辑分区的总大小。
建立swap分区
swap分区,即交换分区不是虚拟的空间,是由真正的硬盘给出的空间,是实体的分区。
内存 和 交换分区 比例一般是1:1.5 ~ 1:2,即交换分区一般是内存的1.5~2倍之间。
将sdb2的剩余空间建立为swap分区。
默认建立分区类型为83,swap分区类型为82,需要改分区类型
对硬盘的分区进行修改后,内核的缓存表还没有更新。此时需要用partprobe
强制刷新。
partprobe
命令 :重新读取分区表,更新内核的分区信息
然后对swap分区进行如下设置:
partprobe //刷新缓存
mkswap /dev/sdb6 //把sdb6设置为swap分区
swapon /dev/sdb6 //启用该swap分区
swapoff /dev/sdb6 //停用该swap分区
在swapon /dev/sdb6
启用swap之后,使用free -h
查看swap变化
2.2.2 建立GPT分区
添加一个4T的新硬盘到系统,自动命名为sdc
在/dev/sdc中新建一个500G的分区。gdisk /dev/sdc
进入交互界面
建立GPT分区需要格式化分区。
如果用GPT分区建立swap分区,只要在声明类型的时候输入swap的code:8200即可。
2.2.3 小结
-
主分区和扩展分区加起来一共只有4个,MBR分区,只有4个。逻辑分区编号从5开始。
-
一般设置3个主分区,一个扩展分区。
-
扩展分区不能使用,不能挂载,只是用来记录逻辑分区信息数据的,一般单位为Kb。
-
所以只有先创建扩展分区,才能建立逻辑分区。扩展分区只能有一个。
-
扩展分区有多大,逻辑分区加起来只能有多大。
2.3 创建文件系统
创建分区后,要创建文件系统。
2.3.1 什么是文件系统
文件系统的作用
文件系统就是用来管理Linux操作系统中的文件和目录的。
- 数据组织和存储:文件系统提供了组织数据的结构,能够把文件分为不同的目录就是因为有文件系统。
- 数据保护:文件系统可以通过权限控制,使不同的用户对文件拥有不同的权限
- 数据访问:文件系统可以提供对存储设备的访问接口,用户通过访问接口访问存储设备的数据。
- 数据管理:文件系统提供了文件或者目录的增删改查等功能。
- 高级功能:压缩、快照、日志记录等等。
文件系统的类型
- xfs :CentOS-7以后默认使用的文件系统,大日志分析系统,可以对海量信息进行分析和存储。适用于大型文件和高性能需求。
- ext4 :Linux原生的文件系统,可以提高性能,提高稳定性。用的少了。
- ext3 :基本不用了。
- ext2 :同上。
- IFS :适用于大文件。
- NTFS :Windows文件系统。
- ISO-9660 :适用于光盘的只读文件系统。
- NFS :共享存储文件系统。
2.3.2 创建文件系统
mkfs命令
mkfs -t 文件系统类型 硬盘目录 ------对指定硬盘创建文件系统
mkfs.文件系统类型 硬盘目录 ------和 -t 效果一样,.后没有空格
mkfs -f 文件系统类型 硬盘目录 ------覆盖原有的文件系统
对/dev/sdb1,sdb2,sdb5,/dev/sdc1创建xfs文件系统,以sdb1为例
mkfs.xfs /dev/sdb1
mkfs -t /dev/sdb2 // -t 和 . 都可以
mkfs.xfs /dev/sdb5
mkfs.xfs /dev/sdc1
2.4 挂载与解挂载
挂载:硬件设备必须要和目录形成映射之后才能使用。
解挂载:顾名思义,就是解除设备与目录的映射。
2.4.1 mount umount 命令
mount 设备 挂载点 //挂载设备
umount 设备 挂载点 //解挂载设备
在根目录下建立空目录/data
,将 /dev/sdb1
挂载到/data
mount -a :刷新挂载信息
umount -l :lazy,立即卸载挂载点
umount -f :强制卸载,即使文件系统正在使用,也立即强制卸载。可能会导致数据丢失,慎用。
umount -lf :强制解挂载常用命令
2.4.2 自动挂载
mount是临时挂载,重启系统后mount挂载的信息就失效了。生产环境中需要配置自动挂载,即永久挂载。步骤如下:
vim /etc/fstab // 在/etc/fstab 中编辑自动挂载的配置
配置方法:
在fstab中插入行: /dev/sdb2 /data1 xfs defaults 0 0
对应位置的解释: 设备 挂载点 文件系统 默认权限 不备份 系统启动时不检查文件系统
例:
/dev/sdb1 /data xfs defaults 0 0
// 永久挂载/dev/sdb1 到 /data
/dev/sr0 /mnt iso9660 defaults 0 0
// 永久挂载光盘镜像
对defaults的解释:默认有所有权限(读写,磁盘配额)
-
rw/ro :是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权限;ro 表示只读权限。
-
async/sync:此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async。
-
dev/nodev 是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 nodev。
-
auto/noauto 是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。
-
suid/nosuid 设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。
-
exec/noexec 设定在文件系统中是否允许执行可执行文件,默认是允许。
-
user/nouser 设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是不允许(nouser),仅有 root 可以。
-
remount :重新挂载已挂载的文件系统,一般用于指定修改特殊权限。
-
defaults 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。
配置完自动挂载后,用mount -a
刷新一下挂载信息,使用df -hT
查看挂载情况。
2.4.3 小结
mount
挂载是临时挂载,永久挂载需要在/etc/fstab
中进行配置。- 对永久挂载的分区来说,如果分区被删除,需要把相应的永久挂载的配置一并删除,即修改
/etc/fstab
文件中的配置。否则系统启动时会出错,无法进入系统。
2.5 总结
一个新的磁盘加入到系统之后,使用的过程:
- 刷新获取磁盘信息,也可以重启
- 分区
- 给分区创建文件系统
- 挂载设备到目录
- 以上全部完成后才可以正常使用磁盘。
三、实验/问题
3.1 如何对硬盘进行分区?
- 获取磁盘信息并创建分区
-
添加新硬盘后,
scan
或者重启,获得新硬盘信息 -
根据硬盘大小和需求,选择分区方式是MBR还是GPT,
fdisk
或gdisk
+ /dev 目录下的硬盘目录 -
选择MBR分区的话:选择主分区p,还是扩展分区e,还是建立扩展分区后,新建逻辑分区l,并设置分区大小。
默认类型代号83,为Linux文件系统,如果要修改类型,选项
t
,代号82是swap
分区,代号8e是lvm逻辑卷,选项L
可以查看所有代号。修改分区类型后需要partprobe
,更新内核的分区信息。 -
选择GPT分区的话,默认都是主分区,设置分区大小,声明分区类型,默认类型是文件系统8300。
-
配置完成后选项
w
保存分区设置并退出。
-
创建文件系统
mkfs.xfs
+指定分区目录,对分区创建文件系统。 -
挂载
临时挂载
mount
自动挂载 在
/etc/fstab
中添加挂载配置。
3.2 如何删除已挂载分区?
对已挂载分区,进入交互界面,选项 d
删除,w
保存退出,出现报错,提示Device or resource busy.
这是因为分区处于挂载中,相当于Windows的正在使用中,不能进行删除操作。
需要先对分区解除挂载,再进行删除。
对临时挂载,使用umount
;对永久挂载,编辑/etc/fstab
,删除对应的配置。