Linux操作系统磁盘管理

本文详细介绍了磁盘的物理和数据结构,包括MBR和GPT分区的区别与应用,以及各种文件系统如XFS、EXT4和SWAP的特性。还讨论了分区工具如fdisk和mkfs的使用,以及挂载与解挂载的操作。此外,文章还涵盖了磁盘分区的实际操作步骤,包括硬件添加、分区、格式化和永久挂载。
摘要由CSDN通过智能技术生成

目录

一.磁盘结构

1.1.磁盘物理结构

1.2.磁盘数据结构

1.3.硬盘存储容量

二.MBR与磁盘分区

2.1.分区的优缺点

2.2.MBR分区

2.3.GPT分区

三.文件系统

3.1.XFS、ext4

3.2.swap

3.3.FAT16、FAT32

3.4.NTFS(xfs)

3.5.EXT4

3.6 JFS

四.分区工具

4.1.fdisk

4.2.blkid

4.3.mkfs

4.4.mkswap

4.5.lsblk

4.6.df

4.7.lsblk

4.8.du

五.挂载与解挂载

5.1.mount

5.2.永久挂载

5.3.解挂载

六.磁盘分区实操

6.1.实操磁盘命令

6.2.添加磁盘(硬件)

6.3.磁盘分区

6.4.格式化分区

 6.5.挂载分区及使用

 6.6.永久挂载


一.磁盘结构

1.1.磁盘物理结构

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

磁头:每面一个磁头

1.2.磁盘数据结构

扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据

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

柱面:不同盘片相同半径构成的圆柱面

1.3.硬盘存储容量

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

    1柱面=512 * 扇区数/磁头数×磁道=51263255=7.84M

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

二.MBR与磁盘分区

windows 当中是可以不分区的

linux 当中一定要分区 才可以使用硬盘

2.1.分区的优缺点

分区的优点:

优化I/O性能 读写

实现磁盘空间配额限制

提高修复速度

隔离系统和程序

安装多个OS

采用不同文件系统

分区的缺点:

1.必须是连续空间

2.一旦分好区后,无法增加减少空间,空间就固定

3.一旦分好区后,inode号就会固定

2.2.MBR分区

MBR容量

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

MBR 一共 512 字节

前 446 字节 开机引导程序, 引导硬件 找到我们的操作系统

66 /16 =4 ............ 2

后 64 字节 分区表 表明了 分区的范围, 分区从哪里到那里结束

最后 两字节 代表MBR 结束位

MBR与GPT区别

MBR分区(老技术)、GPT分区(新技术)

MBR:只支持2T以下的硬盘,分区只可以分4个分区,一个分区表要占 16字节,3个主分区,一个扩展分区           fdisk(程序软件、工具)

GPT:可以支持2T以上的硬盘,可以分128个分区         gdisk(程序软件、工具)

分区的分类:

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

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

逻辑分区:可以直接使用, 存储文件

扩展分区是特殊的主分区

主分区的序号为 1-4

逻辑分区的序号 从5 开始

2.3.GPT分区

GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)

使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动

三.文件系统

文件系统的组成

  • 内核中的模块:ext4, xfs, vfat

  • Linux的虚拟文件系统:VFS

  • 用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

文件系统:用来管理(增删改查恢复)文件的程序

3.1.XFS、ext4

  • 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

  • 用优化算法,日志记录对整体文件操作影响非常小

  • 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB(这里才到TB1TB=1024GB

  • 而支持单个文件则达到8EB能以接近裸设备I/O的性能存储

  • Centos 7系统中的默认使用的文件系统是xfs

  • Centos 6系统中的默认使用的文件系统是ext4

3.2.swap

当内存不足时,将硬盘空间转化成内存使用

3.3.FAT16、FAT32

且最大只能支持32GB分区,单个文件也只能支持最大4GB。

3.4.NTFS(xfs)

NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB

3.5.EXT4

Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分 区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件 (16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024*1024TB

3.6 JFS

主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB

四.分区工具

4.1.fdisk

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

fdisk [磁盘设备]

  • m 打印出菜单

  • p 打印出当前分区表

  • n 新建一个分区

  • d 删除一个分区

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

  • w 保存

  • q 不保存退出

命令fdisk -l
        命令 fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。

-l:列出所有分区表:

4.2.blkid

可以查看块设备属性信息

4.3.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 关闭指定

mkfs -t {ext2|ext3|ext4|xfs} 指定文件系统类型
mkfs -t ext4=mkfs.ext4
mkfs -t xfs=mkfs.xfs

#文件系统检测和修复
fsck.FS_TYPE
fsck -t FS_TYPE

-a 自动修复
-r 交互式修复错误

e2fsck:ext系列文件专用的检测修复工具
xfs_repair:xfs文件系统专用检测修复工具

4.4.mkswap

swap

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

添加交换分区的空间

mkswap + 分区

swapon +分区 开启 -a 全部

swapoff +分区 关闭 -a 全部

swapoff -a 全部关掉

swapon -a 全部开启

4.5.lsblk

[root@localhost ~]#lsblk -d -o name,rota
#查看当前硬盘是什么模式   固态 机械    1 机械 0 固态
NAME ROTA
sda     1
sr0     1

4.6.df

 命令df(disk filesystem的简写)用于查看已挂载磁盘的总容量、使用容量、剩余容量等。示例命令如下:

  • -h:表示使用合适的单位显示,例如GB。
  • -T:表示显示文件系统类型

4.7.lsblk

lsblk命令:是“List block device”的缩写,即列为出所有存储设备。

4.8.du

   命令du(disk useage)用来查看某个目录或文件所占空间的大小,其格式为 du [-abckmsh] [文件或者目录名]。该命令常用的参数有如下几个。

    -a:表示全部文件和目录的大小都列出来。如果后面不加任何选项和参数,则只会列出目录(包含子目录)的大小。如果du命令不指定单位的话,默认显示单位为“KB”。示例命令如下:
    -b:表示列出的值以B为单位输出。
    -k:表示以KB为单位输出,这和默认不加任何选项的输出值是一样的。
    -m:表示以MB为单位输出。
    -h:表示系统自动调节单位。例如,如果文件太小,可能就几千字节,就以KB为单位显示;如果文件大到千兆字节,就以GB为单位显示。
    -s:表示只列出总和。这个选项小编用得最多,示例命令如下:
 

五.挂载与解挂载

5.1.mount

mount  [ -t 类型 ]  存储设备  挂载点目录
mount  -o loop  ISO镜像文件  挂载点目录
       -a 自动挂载所有支持自动挂载的设备
       -o options:(挂载文件系统的选项)

 df -h    查看是否为挂载点

[root@192 ~]# mount /dev/sr0 /opt
mount: /dev/sr0 写保护,将以只读方式挂载
# findmnt  查看 设备的详细信息
[root@localhost opt]# findmnt /sdb1 
TARGET SOURCE    FSTYPE OPTIONS
/sdb1  /dev/sdb1 xfs    rw,relatime,seclabel,attr2,inode64,noquota
选项功能
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 可以。
defaults定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。
remount重新挂载已挂载的文件系统,一般用于指定修改特殊权限。

挂载规则:

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

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

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

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

#重新挂载

[root@localhost data]#mount -o ro /dev/sdc1 /mnt/
[root@localhost data]#mount
/dev/sdc1 on /mnt type xfs (ro,relatime,seclabel,attr2,inode64,noquota)


#如果有人在使用  挂载文件夹 无法先解挂载再 去挂载
[root@localhost data]#mount -o remount,ro /mnt/



[root@localhost data]#fuser -v /mnt/
                     用户     进程号 权限   命令
/mnt:                root     kernel mount /mnt
                     root      20480 ..c.. bash
[root@localhost data]#fuser -km /mnt/
/mnt:                20480c

5.2.永久挂载

需要 将文件写入 /etc/fstab

UUID 可以确保唯一

blkid 可以查看UUID

5.3.解挂载

umount 设备名|挂载点
卸载时:可使用设备,也可以使用挂载点
fuser -v MOUNT_POINT
查看正在访问指定文件系统的进程
fuser -km MOUNT_POINT
终止所有在正访问指定的文件系统的进程

六.磁盘分区实操

6.1.实操磁盘命令

①/sys/class/scsi_host/host0/scan;/sys/class/scsi_host/host1/scan;/sys/class/scsi_host/host2/scan 用于添加硬件后刷新槽位让服务器识别到新添加的硬盘。

②lsblk   用于查看分区情况
③df -h 人性化显示挂载情况

④mkfs.xfs   +分区,用于格式化分区

⑤partprobe  用于分区完成后分区不显示刷新分区情况

⑥fdisk  +硬盘  用于硬盘分区2TB以下磁盘划分

⑦blkid 查看设备的uuid号

⑧gdish  +硬盘  用于硬盘分区2TB以上磁盘划分

6.2.添加磁盘(硬件)

1.在虚拟机的设置中点击添加,一直点下一步直到完成,点击确定再关闭页面。如下图是添加成功的页面。

2.添加完成后进入虚拟机执行命令使服务器识别新加的硬盘

echo "- - -" >/sys/class/scsi_host/host0/scan;

echo "- - -" >/sys/class/scsi_host/host1/scan;

echo "- - -" >/sys/class/scsi_host/host0/scan;

6.3.磁盘分区

1.fdisk  /dev/sdb  对sdb磁盘进行分区进入人机交互界面,如下图。

 2.输入n表示添加分区,选择分区类型,p为主分区,e为扩展分区,l为逻辑分区

6.4.格式化分区

 1.划分分区完成后首先使用lsblk命令查看分区是否同步到系统中,如果没显示划分的分区则使用partprobe命令刷新分区表,然后再使用lsblk查看是否显示划分的分区,如下图是直接显示扩展分区sdb2和逻辑sdb5的。

 2.分区显示出来以后对分区进行格式化,使用mkfs.xfs +分区名,如下图

 6.5.挂载分区及使用

格式化分区完成后就可以进行挂载使用了,注意挂载的目录最好是一个空目录,如果不是空目录会将原目录里的内容隐藏,可能会导致数据丢失,同一挂载点不要挂载多个磁盘。挂载命令  mount  +挂载分区   +挂载点(空目录),挂载完成后使用df  -h 查看挂载情况,如下图。

 6.6.永久挂载

 1.以上挂载是临时挂载,若重启服务器则挂载失效,所以需要永久挂载即使服务器重启后挂载依然生效。首先使用命令blkid查看磁盘的uuid,然后进入/etc/fstab将挂载信息写入其中。不建议写分区名,一定要写uuid,只有uuid是唯一的。

①使用blkid查看磁盘的UUID号。

②输入vim /etc/fstab进入配置文件,将uuid号(挂载信息)写入其中,放入其中永久挂载。

 

 ③配置文件修改完成后需要使用mount  -a 检查一下配置文件是否有问题,若有问题则会进行提示,无问题则不提示。有问题会进行提示,若提示有问题一定要进行修改,否则会影响系统下次开机,会出control  d 错误。

 ④df -h 看一下挂载情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值