Linux磁盘分区管理

一.磁盘

  1.磁盘的结构

盘片:硬盘有多个盘片,每盘片有2面

磁头:每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量

  2.磁盘的数据结构
  • 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大) 存放数据的最小单位 512字节

  • 磁道:同一盘片不同半径的同心圆

  • 柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)

  3.磁盘存储容量

硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数

可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

  4.为什么分区
  • 优化I/O性能 读写

  • 实现磁盘空间配额限制

  • 提高修复速度

  • 隔离系统和程序

  • 安装多个OS

  • 采用不同文件系统

mbr 分区 (老的技术) gpt分区(新技术)

MBR: 2T 以下 的硬盘 fdisk

GPT: 可以支持 2T 以上的硬盘 gdisk

MBR: 主引导记录, 是硬盘上的第一个扇区, 想要读数据得从这个扇区开始

MBR 一共 512 字节。前 446 字节 开机引导程序, 引导硬件 找到我们的操作系统,后 64 字节 分区表 表明了 分区的范围, 分区从哪里到那里结束,最后 两字节 代表MBR 结束位。

主分区分类

主分区: 可以直接使用 , 安装操作系统 存储文件 等

扩展分区:是特殊分区,不可以直接使用, 需要再划分逻辑分区, 让分区超过4个

逻辑分区:可以直接使用, 存储文件5+,逻辑分区的范围不能超过扩展分区的范围

扩展分区是特殊的主分区

主分区的序号为 1-4

逻辑分区的序号 从5 开始

5.MBR分区(最多只能分4个区)

  MBR磁盘采用MBR分区表,由于MBR用4个字节存储分区总扇区数,最大可以表示2的32次方,一个扇区512字节,那么分区的容量或者磁盘容量都不能超过2TB。 通常情况下主分区只有四个,而 扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般 用来安装操作系统,扩展分区多用来存储文件数据。

所以硬盘分区有 3 种,分别是主分区、扩展分区和逻辑分区。对于一个硬盘来说,主分区至少有 1 个,最多有 4 个;扩展分区可以没有,最多只能有 1 个,主分区+扩展分区总共不能超过 4 个;逻辑分区可以有若干个。

主分区可以直接存储数据

扩展分区不可以直接存储数据,还需要再分区

6.文件系统

文件系统是操作系统用于明确存储设备或分区上的文件的使用方法和数据结构;在存储设备上组织使用文件的方法。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进 行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的 存取,安全控制,日志,压缩,加密等。

centos6默认使用文件系统ext4

centos7默认使用文件系统xfs

二.分区

2.1分区工具
lsblk 列出块设备
fdisk 管理MBR分区
gdisk 管理GPT分区
parted 高级分区操作,可以是交互或非交互方式
partprobe 重新设置内存中的内核分区表版本,适合于除了CentOS 6 以外的其它版本 5,7,8



parted 命令
注意:parted的操作都是实时生效的,小心使用
parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print 
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1
parted -l   列出所有硬盘分区信息
2.2 fdisk(2t以下)

磁盘设备

格式:fdisk -l  [磁盘设备]

选项:

- m  打印出菜单

- p  打印出当前分区表

- n 新建一个分区

- d 删除一个分区

- t 改变分区的属性,系统ID

- w 保存

- q 不保存退出
2.3 blkid

查看块设备属性信息

[root@192 ~]# blkid 
/dev/sda1: UUID="dd924c21-db72-4fc2-bb50-a1b807e11707" TYPE="xfs" 
/dev/sda2: UUID="seCmIX-Qnsm-936E-LFi7-iycT-aW69-170SMy" TYPE="LVM2_member" 
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="a186c243-8403-4d1e-826a-668de463529f" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="ad062e10-f14a-4cd6-ae86-963bbcea5829" TYPE="swap"
2.4 mkfs

创建文件系统(格式化)常用选项

-t {ext2|ext3|ext4|xfs} 指定文件系统类型
-b {1024|2048|4096} 指定块 block 大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i 
-i    # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N  # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m  # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定

[root@192 ~]# mkfs         mkfs -t ext4=mkfs.ext4 
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat
2.5 mkswap

swap

特殊的文件系统,缓解内存不足,为了个别应为程序加内存有点浪费

添加交换分区的空间

mkswap + 分区

swapon +分区 开启 -a 全部

swapoff +分区 关闭 -a 全部

2.6 lsblk

[root@localhost ~]#lsblk -d -o name,rota#查看当前硬盘是什么模式   固态 机械    1 机械 0 固态NAME ROTAsda     1sr0     1​
三.挂载与解挂载
3.1 mount

mount [ -t 类型 ] 存储设备 挂载点目录

mount -o loop ISO镜像文件 挂载点目录

  • 一个挂载点同一时间只能挂载一个设备

  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏

  • 一个设备可以同时挂载到多个挂载点

  • 通常挂载点一般是已存在空的目录

-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r readonly,只读挂载
-w read and write, 读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有
auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔




[root@192 ~]# mount /dev/sr0 /opt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@192 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   37G  5.7G   32G   16% /
devtmpfs                 977M     0  977M    0% /dev
tmpfs                    993M     0  993M    0% /dev/shm
tmpfs                    993M  9.0M  984M    1% /run
tmpfs                    993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               1014M  161M  854M   16% /boot
tmpfs                    199M   12K  199M    1% /run/user/42
tmpfs                    199M     0  199M    0% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /opt

####查看是否为挂载点
# findmnt  查看 设备的详细信息
[root@localhost opt]# findmnt /sdb1 
TARGET SOURCE    FSTYPE OPTIONS
/sdb1  /dev/sdb1 xfs    rw,relatime,seclabel,attr2,inode64,noquota
3.2永久挂载

需要 将文件写入 /etc/fstab

UUID 可以确保唯一

[root@localhost opt]# blkid
/dev/sda1: UUID="e9364e9b-a85b-49d7-9652-3a56202e14c8" TYPE="xfs" 
/dev/sda2: UUID="2b3XJj-lWF0-peVn-pI09-xRPq-RF5D-1PCWHs" TYPE="LVM2_member" 
/dev/sda3: UUID="U6aPoo-6qm9-MdVr-Kdhx-ORuu-JCPK-7oRxlU" TYPE="LVM2_member" 
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="a0a45ee1-62c2-4107-895a-a0ad9d01e21f" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="9c443edd-5cd4-4b29-8f22-d7f935eff0af" TYPE="swap" 
/dev/sdb1: UUID="2a1e1ac7-7462-4fc3-b644-43813660276f" TYPE="xfs" 



[root@localhost opt]# vim /etc/fstab 
在/etc/fstab 文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述。
/dev/sdb1    /mnt                       xfs     defaults        0 0

第 1 字段:设备名或设备卷标名。
第 2 字段:文件系统的挂载点目录的位置。
第 3 字段:文件系统类型,如 XFS、Swap 等。
第 4 字段:挂载参数,即mount 命令“-o”选项后可使用的参数。例如,defaults、rw、ro、noexec 分别表示默认参数、可写、只读、禁用执行程序。
第 5 字段:表示文件系统是否需要 dump 备份(dump 是一个备份工具)。一般设为 1时表示需要,设为 0 时将被 dump 忽略
第 6 字段:该数字决定在系统启动时进行磁盘检查的顺序。0 表示不进行检查,1 表示优先检查,2 表示其次检查。根分区应设为 1,其他分区设为 2。
通过在/etc/fstab 文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。例如,执行以下操作将添加自动挂载分区/dev/sdb1 的配置记录
# /etc/fstab
# Created by anaconda on Fri Aug  6 20:57:12 2021
# 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/centos-root /                       xfs     defaults        0 0
UUID=e9364e9b-a85b-49d7-9652-3a56202e14c8 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=2a1e1ac7-7462-4fc3-b644-43813660276f /sdb1      xfs        defaults   0 0
~

:r!blkid /dev/sdb1
##使用vi编辑器功能读入UUID
[root@localhost opt]# mount -a


#####uuid写错了 可以直接等待进入系统后,出现ctrl+D 报错 输入root密码,后修改  /etc/fstab
3.3解挂载
umount 设备名|挂载点
卸载时:可使用设备,也可以使用挂载点
fuser -v MOUNT_POINT
查看正在访问指定文件系统的进程
fuser -km MOUNT_POINT
终止所有在正访问指定的文件系统的进程

你可能感兴趣的:(运维)