磁盘管理及维护

本文详细介绍磁盘的构成与工作原理,包括磁盘分区、文件系统管理、磁盘挂载及交换分区的相关命令和操作。同时,深入解析MBR与GPT分区表的区别,以及如何使用fdisk、mkfs等工具进行磁盘分区与格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、磁盘的构成:

组成:磁盘盘(数据存储,有扇区、柱面、最小存储单元:一个扇区,)、机械手臂、磁头、转动马达

作用:存储数据

磁盘分区表的两种格式:

​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​  MBR格式:四个主分区

​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​  GPT格式

1、磁盘文件名:

实体磁盘(U盘)的文件名: /dev/sd[a-p] [1-128] (数字表示分区号)

IDE磁盘的文件名: /dev/hd[a-d]

虚拟磁盘的文件名:/dev/vd[a-d] [1-128]

2、磁盘构成:

盘面

​ ​ ​ ​ ​ ​  硬盘上有一个或者多个盘片,每个盘片可以有两个面,第一个盘片的正面称为0面,反面称为1面;第二个盘片的正面称为2面,反面称为3面…以此类推。

磁头

​​ ​ ​ ​ ​ ​  每一个盘面都有两个磁头,第一块盘片 正面的磁头称为0磁头,反面的称为1磁头;第二块盘片的正面称为2磁头,背面称为3磁头…以此类推,在盘面读取数据。(磁头数与盘面数是一样的)

磁道

​ ​ ​ ​ ​ ​  由圆心开始向外画圆,每个圆环称为磁道,用于存储数据。当电脑关机时磁头放在离盘心近的位置,称为着陆区,着陆区不存储任何数据。(离盘心最远的磁道称为0磁道)

扇区

​ ​ ​ ​ ​ ​  每个磁道上划分多个块(像一个弧断),这些弧段称为扇区,每个扇区可以存放512个字节。扇区上有编号,顺序为:磁盘,磁道,第几扇区(磁道从0开始,依次递增)

数据存放顺序: 不是扇区编号存储数据,是交叉存储数据,避免空转现象。(软盘的磁道上扇区号是按序排列的,而硬盘的磁道上的扇区号是按照某种间隔跳跃编排的)

柱面

​ ​ ​ ​ ​ ​  是抽象的逻辑概念,实际上数据读取是按照柱面顺序读取的。

寻道时间

​ ​ ​ ​ ​ ​  各不相同,划过扇区读取数据的时间。硬盘寻道采用CHS的方式:柱面,磁头,扇区

硬盘容量=柱面数(磁道数) * 磁头数 * 单磁道扇区数 * 单个扇区容量大小(一般为512字节)

Linux文件系统: 权限和属性数据存放在 inode 中,实际上数据存放在 data block 中,文件系统的整体信息放在 superblock 中。

3、MBR:

MBR信息:位于整个硬盘的0磁道0柱面1扇区,共512个字节

        446个字节:主引导记录(加载启动项,分区信息,加载信息位置)

        64个字节:分区信息

​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 4个主分区(最小有1个,最大有4个):引导分区的信息和数据

​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​  ​ ​ ​ ​ ​ ​  ​ ​ ​ ​ ​ ​  ​ ​ ​ ​ ​主1,主2,主3,主4(第四个主分区可分为:扩展分区(最大有1个),逻辑分区(最小0个,最大无数个))

        2个字节:结束标志

注: 引导分区的信息:16字节。它包括:1引导标志,2-4分区的起始位置,5分区类型,6-8分区结束位置,9-12逻辑起始扇区号,13-16总的扇区数
在这里插入图片描述

二、磁盘分区命令:

1、fdisk:查看系统分区详细信息

[root@localhost ~]# fdisk /dev/sd*
//*指的是对哪个硬盘进行分区,就写哪个硬盘。eg:fdisk /dev/sda 表示对a这一块磁盘进行分区

eg:
[root@localhost ~]# partx  -a /dev/sda
//表示对硬盘进行更新
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkfs.ext4	/dev/sda4
[root@localhost ~]# mount /dev/sda4 /mnt
//进行挂载使用
[root@localhost ~]# df -h
文件系统				  容量	已用	可用	已用%	 挂载点
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   19G   12G  6.8G  64% /
devtmpfs                 223M     0  223M   0% /dev
tmpfs                    235M     0  235M   0% /dev/shm
tmpfs                    235M  5.7M  229M   3% /run
tmpfs                    235M     0  235M   0% /sys/fs/cgroup
/dev/sda1                497M  149M  349M  30% /boot
tmpfs                     47M     0   47M   0% /run/user/0
//查看挂载情况,根下,boot,swap不能动

-a:设置启动分区

-b:编辑分区标签

-d:删除一个分区

-l:列出已知分区

-m:打印这个菜单

-n:新增分区

-o:新建新的空白DOS分区表

-p:打印分区表

-q:退出不保存

-t:修改分区类型

-u:改变显示单位

-v:校验分区表

-w:保存退出

格式化:

[root@localhost ~]# mkfs.ext4	/dev/sda*
//只有格式化后才能进行挂载使用
[root@localhost ~]# mkfs.xfs  /dev/sda*

2、文件系统管理类命令:

mkfs:查看属性工具

​ mkfs.ext2,mkfs.ext3,mkfs.ext4,

​ xfs

​ btrfs

mkfs.ext2      分区

​ -t:指定创建的文件系统类型

​        mkfs -t ext4 =mkfs.ext4

​ -b:创建文件系统指明块大小

​        1024 2048 4096

​ -L    label标签:指明卷标

​ -j:创建有日志功能的文件系统

​ -i:指明 inode 与字节的比率

​ -N:直接指定创建的文件系统的 inode 数量

​ -m:指定预留空间

e2label:设定与查看卷标

​ 设定 :e2label device label

​ 查看 :e2label device

[root@localhost ~]# e2label  /dev/sdb  TEST

[root@localhost ~]# e2label  /dev/sdb
fsck.ext2:检查文件系统的工具

        -c:显示检查进度

3、查看属性的工具:

dumpe2fs:显示ext系列文件系统的属性信息

​ 格式: dumpe2fs device

tune2fs 修改文件系统属性(ext系列)

​ 文件系统的块大小

​ -l:查看块内容

​ -j:修改指定的文件系统类型

​ -L:修改卷标

​ -m:调整预留空间的百分比

resize2fs:调整 ext 系列的文件系统的大小

​ -f:强制执行

​ -M:将文件系统缩小至最小值

​ -P:直接显示文件系统可以缩小的最小值

e2fsck:磁盘修复(修复前需要卸载挂载点)

​ -a:检查分区,若发现问题可自动修复

​ -b:设定superblock的位置

​ -B size:设定区块大小

​ -c:检查分区是否有坏道

​ -f:强制检查

blkid:获取文件系统类型,UUID,卷标

​ blkid device
        -U     UUID,根据 UUID 定位设备

        -L     label:根据 label 定位设备

[root@localhost ~]# blkid -U 22b94295-e3e7-4111-927b-0b6d6ed64e40
/dev/sdb1
//查看当前分区挂在哪里

4、交换分区: swap

            作用:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

fdisk device

                t         82

1.准备分区
[root@localhost ~]# fdisk /dev/sdb
//输入t,将转换分区的ID为  82
[root@localhost ~]# partprobe   /dev/sdb
[root@localhost ~]# ll  /dev/sdb
mkswap:格式化
2.初始化
[root@localhost ~]# mkswap /dev/sdb1	
3.挂载
[root@localhost ~]# blkid  /dev/sdb1
/dev/sdb1: UUID="b8e2b21c-40c7-4d83-97e1-2deeefa8a5c6" TYPE="swap"

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

[root@localhost ~]# swapon -a

[root@localhost ~]# swapon -s
dd: if=/dev/zero of=/dir/filename bs=1【K,M,G】 count=N

​ (bs表示1个快大小)

/etc/fstab
UUID="4a3d5ab7-4e3e-4baa-a3a3-f0386901a12f"   		 swap    swap    defaults        0       0
swapon -a:根据文件挂载swap分区(查看当前分区)
swapoff device:关闭
swapon -s:显示激活的swap分区
[root@localhost ~]# dd if=/dev/zero of=/mnt/swap bs=1M  count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 14.0015 s, 38.3 MB/s

[root@localhost ~]# ls /mnt/
swap  user3

[root@localhost ~]# ls -l /mnt/
total 524288
-rw-r--r--. 1 root  root  536870912 Aug  5 15:36 swap
drwx------. 2 user4 user3        62 Jul 28 16:06 user3

[root@localhost ~]# mkswap /mnt/swap
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=b8e2b21c-40c7-4d83-97e1-2deeefa8a5c6

[root@localhost ~]# vi /etc/fstab
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sr0      /media    iso9660  defaults       0       0
UUID=22b94295-e3e7-4111-927b-0b6d6ed64e40      swap    swap    0       0
/mnt/swap     swap      swap     defaults       0       0

[root@localhost ~]# swapon -a
[root@localhost ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       1048572 0       -2
/mnt/swap                               file    524284  0       -3

5、磁盘挂载等相关核心工具:

mount:查看当前系统的挂载情况

​ mount -t 系统类型 -o 选项 设备 挂载点

                ro:只读

                rw:读写

                acl:支持ACL功能

                -n:默认情况下,设备挂载或卸载的操作会同步更新到/etc/mtab文件中;-n用于禁止此操作。

                -L label:挂载时以卷标的方式指明设备

                -U UUID:挂载时以UUID的方式指明设备

mount  -o  ro:只读挂载
umount :卸载挂载点

umount 设备

umount 挂载点

       查看哪些进程占用挂载点:

                      lsof 挂载点

                      fuser -v 挂载点

        终止挂载点使用:

                      fuser -km 挂载点

lsof:列出所有被打开的文件,指进程

​ lsof -c process :显示进程打开的文件

​ losf -p 进程号(eg:1234):列出进程1234打开的文件

​ losf -i :显示符合条件的进程

​ losf -u 用户名:某一用户打开

[root@localhost ~]# lsof -c  crond

[root@localhost ~]# lsof     /proc
//列出某一目录或文件正在被谁使用

[root@localhost ~]# lsof   -u   root
//列出root用户打开的文件

[root@localhost ~]# lsof 	-i
//打开所有网络连接

[root@localhost ~]# lsof   -i   tcp
//通过tcp打开的网络连接

[root@localhost ~]# lsof  -i   :8080
//列出通过端口8080打开的文件
df:显示磁盘分区上可使用的空间

​ -h:原本以字节显示,加上-h后以KB,MB,GB单位显示,以1024为单位

​ -H:以1000为单位,而不是1024

​ -i:显示 inode 使用情况

[root@localhost a]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   19G   13G  6.2G  67% /
devtmpfs                 223M     0  223M   0% /dev
tmpfs                    235M     0  235M   0% /dev/shm
tmpfs                    235M  5.7M  229M   3% /run
tmpfs                    235M     0  235M   0% /sys/fs/cgroup
/dev/sr0                  11G   11G     0 100% /media
/dev/sda1                497M  149M  349M  30% /boot
tmpfs                     47M     0   47M   0% /run/user/0

[root@localhost a]# df -i
Filesystem               Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/centos-root 9703424 57703 9645721    1% /
devtmpfs                  56996   400   56596    1% /dev
tmpfs                     59977     1   59976    1% /dev/shm
tmpfs                     59977   774   59203    2% /run
tmpfs                     59977    16   59961    1% /sys/fs/cgroup
/dev/sr0                      0     0       0     - /media
/dev/sda1                256000   334  255666    1% /boot
tmpfs                     59977     1   59976    1% /run/user/0
du:显示文件大小

​ -h:以K,M,G为单位显示

​ -a:显示目录中的文件大小

​ -c:显示目录中文件大小,并且显示总和

​ -S:显示文件大小,并且显示当前目录大小

​ -s:只显示当前目录大小

​ -k:以KB形式显示

​ -m:以MB形式显示

[root@localhost a]# du -a
0       ./file1
0       ./file2
0       ./file3
0       ./file4
0       ./file5
0       .

[root@localhost a]# du -s
4   
挂载配置文件:/etc/fstab

磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。

1.fstab文件中的参数

第一列:device 设备文件(UUID 或 设备文件 或 卷标),建议使用UUID

第二列:挂载点

第三列:filesystem磁盘文件格式,xfs ext4 swap iso9660

第四列:文件系统的参数(默认defaults)

第五列:能不能备份

​ 0:不备份

​ 1:每天都要备份

​ 2:不定期备份

第六列:是否校验扇区

​ 0:不校验

​ 1:最先校验

​ 2:在1之后校验

2.挂载限制:

        根目录必须挂载,而且比其他挂载点优先挂载。
        挂载点必须是已经存在的目录。

        每一个分区只能挂载一次

        所有挂载点在同一时间只能挂载一次。

        所有分区在同一时间只能挂载一次。

        卸载挂载时,必须将工作目录退出挂载点(及其子目录)之外

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值