4.8 磁盘管理

115 阅读9分钟

1.三步使用硬盘

1.分区 fdisk 设备名

2.格式化(安装文件系统软件帮你翻译) mkfs.分区类型 分区

3.挂载 mount mount 设备 挂载点

2.磁盘的硬件架构

磁盘中一个扇区512字节,是磁盘的最小单位。

磁道:以盘片中心为圆心;用不同的半径;划分出不同的很窄的圆环形区域,称为磁道。

柱面:上下一串盘片中,相同半径的磁道所组成的一个圆柱型的环壁,就称为柱面。

磁盘的接口类型决定了数据的传输快慢。

3.分区

分区方式:

mbr(主引导记录)分区:只支持2t以下的硬盘,最多4分区(可以通过拓展分区和逻辑分区来扩充分区),适配性强,是目前主流的分区方式。

gpt(全局唯一标识分区表)分区:可以支持2t以上的硬盘,128分区,部分老机器可能不适用。

3.1.分区工具

分区工具作用
fdisk可以分2t及以下
gdisk全支持
parted全支持(不推荐使用,分完立即生效,没有反悔的机会)

3.1.1.fdisk

fdisk -l 查看所有磁盘分区信息

fdisk -l 设备名 查看该磁盘分区信息

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00011e0a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-root:39.7 GB, 39720058880 字节,77578240 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/vg02-ga:6442 MB, 6442450944 字节,12582912 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@localhost ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

fdisk 设备名(必须是一整块磁盘) 对磁盘进行分区

3.2.1.MBR分区表

1.位于磁盘第一个扇区,512字节

mbr作用

A.主引导程序 ------引导硬件找到操作系统---446字节

B.分区表------明确分区的范围(每16字节标识一个分区,最多4分区)---64字节

C.结束位------2字节

3.2.2.主引导程序过程

加电,主板bios检测硬件是否有故障,启动硬件,根据bios中的设置去找操作系统。

启动默认优先级别:

本地硬盘-本地光驱-外接设备-网卡

在linux中将硬盘、分区等设置均表示为文件

举例

/dev/hda5 含义:
   dev:硬件设备
   hd:代表IDE设备,已经被淘汰,(目前主流接口类型为sd代表scsi设备)
   a:代表硬盘的顺序,为第一块磁盘,依次是a b c d e...
   5:代表分区的顺序号,为第5个分区

3.2.3.MBR分区类型

1.主分区(id1-4):可以直接使用。

2.扩展分区(id1-4):有了扩展分区可以配合逻辑分区来超过4个分区,不可以直接使用。

3.逻辑分区(id5+):可以直接使用,逻辑分区的空间必须从扩展分区得到。

注:扩展分区是特殊的主分区,他记录了逻辑分区的分区表。

3.文件系统

文件系统需要安装在磁盘上

文件系统介绍
xfscentos7默认文件系统
ntfswin默认系统
ext4
swap

4.格式化

格式化的目的就是在磁盘上安装文件系统。

mkfs. 指定文件系统类型(可以补全) 分区 =mkfs -t 指定文件系统类型(可以补全) 分区

[root@localhost ~]# mkfs.
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.fat     mkfs.minix   mkfs.msdos   mkfs.vfat    mkfs.xfs

5.磁盘命令

命令功能描述
lsblk显示磁盘信息(块设备),显示的比较详细。
partprobe刷新分区表(分完区后,系统未识别)
reboot重启
blkid查看设备的唯一标识符,也就是uuid
fdisk分区 和 查看分区情况
gdisk分区

6.挂载

挂载:mount 设备 挂载点

解挂:umount 挂载点

[root@localhost ~]# mount /dev/sr0 /mnt #将/dev/sr0 挂载到/mnt上
mount: /dev/sr0 写保护,将以只读方式挂载 
[root@localhost ~]# umount /mnt         #解卦/mnt

一个设备同时挂载多个设备,只显示挂载的最后一个设备,其他的将被隐藏。

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

mount命令含义
mount查看所有挂载情况
mount -a刷新/etc/fstab 下挂载情况
mount -o ro/rw 设备 挂载点设置只读/读写权限
mount -o rw,remount 设备 挂载点重置读写权限

7.设备永久挂载

正常情况下mount 挂载重启后会失效

想要永久挂载需要将加载写入/etc/fstab文件中

[root@localhost ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu Mar 21 04:41:24 2024
#
# 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=c41c7050-5429-469b-ba2a-59bb2c7b2423 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
#/dev/vg02/123         /mnt   xfs defaults 0 0
/dev/vg02/ga /mnt/ga ext4 defaults 0 0

如上

/dev/mapper/centos-root / xfs defaults 0 0 #用绝对路径挂载 UUID=c41c7050-5429-469b-ba2a-59bb2c7b2423 /boot xfs defaults 0 0 #用uuid挂载

推荐使用uuid挂载,因为使用绝对路径挂载,文件发生变化可能会导致系统启动不了。

8.举例

将/dev/sdb1分区永久挂载到/mnt中

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x1b03b3af 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n    #新建分区   
Partition type:
   p   primary (0 primary, 0 extended, 4 free)        #主分区
   e   extended                                       #拓展分区
Select (default p): p     
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G        #分区sdb1大小为5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p      #展示分区

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x1b03b3af

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux

命令(输入 m 获取帮助):w               #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkfs.xfs  /dev/sdb1      #格式化/dev/sdb1 文件系统为xfs
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, 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 blks, lazy-count=1
realtime =none                   extsz=096   blocks=0, rtextents=0
[root@localhost ~]#blkid /dev/sdb1 #查看/dev/sdb1的uuid
/dev/sdb1: UUID="81eb5e68-886e-46e3-95fe-0b749bee1a05" TYPE="xfs" 
[root@localhost ~]# vim /etc/fstab       #永久挂载

#
# /etc/fstab
# Created by anaconda on Thu Mar 21 04:41:24 2024
#
# 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=c41c7050-5429-469b-ba2a-59bb2c7b2423 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=81eb5e68-886e-46e3-95fe-0b749bee1a05 /mnt xfs defaults 0 0 #写入设备分区uuid 挂载点 文件系统类型等消息后把保存
[root@localhost ~]# mount -a #刷新/etc/fstab