磁盘和设备管理命令53~58

53.fdisk: 小磁盘分区

fdisk 只能对2T内的硬盘进行分区。

格式:fdisk [选项] /dev/sdb

-l :查看分区信息

root@localhost /data# fdisk -l /dev/sdb

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux
/dev/sdb3        20973568    31459327     5242880   83  Linux
/dev/sdb4        31459328    41943039     5241856    5  Extended
/dev/sdb5        31461376    35655679     2097152   83  Linux
/dev/sdb6        35657728    41943039     3142656   83  Linux

---------------------------------
#进入 fdisk 的交互模式(需要 root 权限)
fdisk /dev/sdb

选项:
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   -------------------------------------
   d   delete a partition			    #删除分区
   -------------------------------------
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   -------------------------------------
   l   list known partition types 		#显示分区类型
   -------------------------------------
   m   print this menu 					 #打印菜单
   -------------------------------------
   n   add a new partition 				#创建新分区
   -------------------------------------
   o   create a new empty DOS partition table
   -------------------------------------
   p   print the partition table  		#打印分区表
   -------------------------------------
   q   quit without saving changes      #不保存,直接退出
   -------------------------------------
   s   create a new empty Sun disklabel
   -------------------------------------
   t   change a partition's system id	#修改分区系统编号
   -------------------------------------
   u   change display/entry units
   v   verify the partition table
   -------------------------------------
   w   write table to disk and exit    #保存分区信息并退出
   -------------------------------------
   x   extra functionality (experts only)
--------------------------------------------------------
#创建新分区
#新建主分区1~3
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free) #主分区
   e   extended #扩展分区
Select (default p): p 或者直接回车
分区号 (1-4,默认 1): 1 或者直接回车
起始 扇区 (2048-41943039,默认为 2048):直接回车
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G #设置分区大小 +5G(就是给5G大小)
分区 1 已设置为 Linux 类型,大小设为 5 GiB 
-----------------------------
#创建扩展分区4(扩展分区不能直接使用,分给逻辑分区5,逻辑分区6)
命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e #扩展分区
已选择分区 4
起始 扇区 (31459328-41943039,默认为 31459328):
将使用默认值 31459328
Last 扇区, +扇区 or +size{K,M,G} (31459328-41943039,默认为 41943039):
将使用默认值 41943039
分区 4 已设置为 Extended 类型,大小设为 5 GiB

/dev/sdb4        31459328    41943039     5241856    5  Extended
------------------------------
#创建逻辑分区5
命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (31461376-41943039,默认为 31461376):
将使用默认值 31461376
Last 扇区, +扇区 or +size{K,M,G} (31461376-41943039,默认为 41943039):+2G
分区 5 已设置为 Linux 类型,大小设为 2 GiB
-------------------------------
#创建逻辑分区6

命令(输入 m 获取帮助):p

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux
/dev/sdb3        20973568    31459327     5242880   83  Linux
/dev/sdb4        31459328    41943039     5241856    5  Extended
/dev/sdb5        31461376    35655679     2097152   83  Linux
/dev/sdb6        35657728    41943039     3142656   83  Linux

54.lsblk:查看磁盘及分区信息

lsblk 常用参数示例:

# 1. 显示所有设备,包括未挂载的设备
lsblk -a

# 2. 只显示挂载点及文件系统信息
lsblk -f
#查看磁盘分区信息

root@localhost ~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   120G  0 disk 
├─sda1   8:1    0   512M  0 part /boot
├─sda2   8:2    0     3G  0 part [SWAP]
└─sda3   8:3    0 116.5G  0 part /
sdb      8:16   0    20G  0 disk 
├─sdb1   8:17   0     5G  0 part 
├─sdb2   8:18   0     5G  0 part 
├─sdb3   8:19   0     5G  0 part 
├─sdb4   8:20   0     1K  0 part 
├─sdb5   8:21   0     2G  0 part 
└─sdb6   8:22   0     3G  0 part 
sr0     11:0    1   4.1G  0 rom  
-------------------------------------------
#显示所有设备,包括未挂载的设备
root@localhost ~# lsblk -a
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   120G  0 disk 
├─sda1   8:1    0   512M  0 part /boot
├─sda2   8:2    0     3G  0 part [SWAP]
└─sda3   8:3    0 116.5G  0 part /
sdb      8:16   0    20G  0 disk 
├─sdb1   8:17   0     5G  0 part 
├─sdb2   8:18   0     5G  0 part 
├─sdb3   8:19   0     5G  0 part 
├─sdb4   8:20   0     1K  0 part 
├─sdb5   8:21   0     2G  0 part 
└─sdb6   8:22   0     3G  0 part 
sr0     11:0    1   4.1G  0 rom  
-------------------------------------------
#只显示挂载点及文件系统信息
root@localhost ~# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 xfs                     81926481-b0ff-4f23-ba32-2f3e53aabba3 /boot
├─sda2 swap                    a305319b-d22e-46ce-94ae-7c28092bb7fb [SWAP]
└─sda3 xfs                     a5fcbca5-434e-4c3d-86af-27e5b2a1bb99 /
sdb                                                                 
├─sdb1 xfs                     c2a72748-5d1f-4062-b4fa-8246753dc9f3 
├─sdb2 xfs                     7e536208-7593-47d8-8dfc-4bd8531bb4b8 
├─sdb3 ext4                    f12853e1-9b16-4067-8c47-ae5017fea961 
├─sdb4                                                              
├─sdb5 ext4                    266a29e2-d81c-4bab-9dc2-2ca8f845b3a6 
└─sdb6 swap                    a877ab22-cbd3-467a-bbe2-76bafdc6e71f 
sr0    iso9660 CentOS 7 x86_64 
						2016-12-05-13-55-45-00 

55.mkfs.xxx:格式化文件

#给分区格式化 
#扩展分区4 不能格式化
-------------------------------------------
#给分区格式化成 ext4 格式
mfks.ext4 /dev/sdb1

root@localhost ~# mkfs.ext4 /dev/sdb3
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

----------------------------------------
#给分区格式化成xfs 格式
mfks.xfs /dev/sdb2

root@localhost ~# mkfs.xfs /dev/sdb1
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=4096   blocks=0, rtextents=0
----------------------------------------

#为了防止系统由于内存不足而崩溃,将内存中的部分数据存放入磁盘。
# swap 交换分区
# 给分区格式成 交换分区swap
mkswap /dev/sdb1

oot@localhost ~# mkswap /dev/sdb6
正在设置交换空间版本 1,大小 = 3142652 KiB
无标签,UUID=a877ab22-cbd3-467a-bbe2-76bafdc6e71f
------------------------------------------

56.mountumount:挂载与卸载

mount:挂载设备

用法:mount [设备路径] [挂载点]

  • 设备路径:指设备在系统中的地址,比如 /dev/sdb1(U 盘或硬盘分区)。
  • 挂载点:指定一个目录,比如 /mnt,用来访问设备中的内容。

umount:卸载设备

用法:umount [挂载点或设备路径]

例子:卸载设备

#卸载磁盘
umount /dev/sdb1
umount /data/A
  • 卸载挂载点 /mnt,断开设备和系统的连接。
  • 卸载前确保设备中的文件没有被占用。

开机自动挂载

vim /etc/fstab 
硬件设备(设备名/UUID)                       挂载点             文件类型    磁盘设置       dump  磁盘检测 
UUID=a5fcbca5-434e-4c3d-86af-27e5b2a1bb99 /                    xfs     defaults        0      0 
UUID=81926481-b0ff-4f23-ba32-2f3e53aabba3 /boot                xfs     defaults        0      0
UUID=a305319b-d22e-46ce-94ae-7c28092bb7fb swap                 swap    defaults        0      0
/dev/sdb1                                 /data/A               xfs     defaults        0      0
/dev/sdb2                                 /data/B               xfs     defaults        0      0
/dev/sdb3                                 /data/C               ext4     defaults        0      0
/dev/sdb5                                 /data/D               ext4     defaults        0      0
/dev/sdb6                                 swap                 swap    defaults        0      0
#设备名:/dve/sdb1
#UUID:唯一编号
#通过lsblk -l 查看
#磁盘设置类型:
> auto - 在启动时或键入了 mount -a 命令是自动挂载。
> noauto - 只在你的命令下被挂载。
> exec - 允许执行此分区的二进制文件。
> noexec - 不允许执行此文件系统上的二进制文件。
> ro - 以只读模式挂载文件系统。
> rw - 以读写模式挂载文件系统。
> user - 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec,nosuid,nodev 参数。
> users - 允许所有 users 组中的用户挂载文件系统。
> nousers - 只能被 root 挂载。
> owner - 允许设备所有者挂载。
> sync - I/O 同步进行。
> async - I/O 异步进行。
> dev - 解析文件系统上的块特殊设备。
> nodev - 不解析文件系统上的块特殊设备。
> suid - 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序临时提升权                  限。
> nosuid - 禁止 suid 操作和设定 sgid 位。
> noatime - 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
> nodiratime - 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
> relatime - 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime                 相似,但不会打断 mutt 或其他程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见                 atime 参数)。
> flush - vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
> defaults - 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw,suid,dev,exec,auto,                               nouser,async。
#创建A,B,C,D目录
mkdir -p /data/{A,B,C,D}
#挂载磁盘到目录上
mount  /dev/sdb1 /data/A

root@localhost /data# mount /dev/sdb1 /data/A/
root@localhost /data# mount /dev/sdb2 /data/B/
root@localhost /data# mount /dev/sdb3 /data/C/
root@localhost /data# mount /dev/sdb5 /data/D/

#查看系统中所有已挂载文件系统的磁盘空间使用情况
root@localhost /data# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3       117G  2.2G  115G    2% /
devtmpfs        903M     0  903M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  8.6M  904M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda1       509M  125M  385M   25% /boot
tmpfs           183M     0  183M    0% /run/user/0
/dev/sdb1       5.0G   33M  5.0G    1% /data/A
/dev/sdb2       5.0G   33M  5.0G    1% /data/B
/dev/sdb3       4.8G   20M  4.6G    1% /data/C
/dev/sdb5       2.0G  6.0M  1.8G    1% /data/D
--------------------------------
#扩展分区4和交换分区6 不能挂载。
#swap交换分区

--------------------------------
#swapoff 关闭交换分区
root@localhost /data# swapoff /dev/sdb6

root@localhost /data# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G         87M        1.6G        8.6M        141M        1.5G
Swap:          3.0G          0B        3.0G

-------------------------------
#swapon 是打开交换分区  
swapon /dev/sdb6

root@localhost /data# swapon /dev/sdb6
root@localhost /data# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G         89M        1.6G        8.6M        140M        1.5G
Swap:          6.0G          0B        6.0G
--------------------------------
#free -h 是 Linux 中用于查看系统内存(物理内存和交换分区)

① Mem(物理内存)部分
列名	含义说明
total	物理内存总容量(你的系统是 1.8 GB)
used	已被实际使用的内存(87 MB,包括进程直接占用的内存)
free	完全空闲、未被任何程序使用的内存(1.6 GB,这部分内存完全未被利用)
shared	被多个进程共享的内存(8.6 MB,比如共享库占用的内存)
buff/cache	用于 “缓冲区(buffer)” 和 “缓存(cache)” 的内存(141 MB)
- 缓冲区(buffer):临时存储即将写入磁盘的数据(比如刚修改的文件);
- 缓存(cache):临时存储从磁盘读取的数据(比如频繁访问的文件);
这部分内存看似 “被使用”,但系统需要时可以快速释放给其他程序使用。
available	系统实际可用的内存(1.5 GB),包括:
- 完全空闲的 free 内存;
- 可释放的 buff/cache 内存(这部分是 “潜在可用” 的)。
这个值最能反映 “系统还能给新程序分配多少内存”,比 free 更实用。
② Swap(交换分区)部分
交换分区是硬盘上的一块空间,当物理内存不足时,系统会把暂时不用的内存数据 “挪” 到这里(类似 “虚拟内存”)。

你的输出中 Swap 总容量 3.0 GB,used 为 0B,说明目前物理内存充足,未使用交换分区。
----------------------------------
# df -h  用于查看磁盘空间使用情况
#df 是 disk free 的缩写,功能是显示系统中所有已挂载文件系统的磁盘空间使用情况
#-h 是最常用的选项之一,作用是将磁盘容量以 “人类易读” 的单位显示(如 GB、MB)
root@localhost /data# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3       117G  2.2G  115G    2% /
devtmpfs        903M     0  903M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  8.6M  904M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda1       509M  125M  385M   25% /boot
tmpfs           183M     0  183M    0% /run/user/0


-------------------------------
root@localhost /data# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3       117G  2.2G  115G    2% /
devtmpfs        903M     0  903M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  8.6M  904M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda1       509M  125M  385M   25% /boot
tmpfs           183M     0  183M    0% /run/user/0
/dev/sdb1       5.0G   33M  5.0G    1% /data/A
/dev/sdb2       5.0G   33M  5.0G    1% /data/B
/dev/sdb3       4.8G   20M  4.6G    1% /data/C
/dev/sdb5       2.0G  6.0M  1.8G    1% /data/D

磁盘分区

  • MBR 与 GPT 在 Linux 大硬盘分区中的应用
    在 Linux 系统中,对超过 2TB 的硬盘进行分区需使用 GPT(GUID Partition Table) 分区表,而非 MBR(Master Boot Record)。MBR 分区表存在 2TB 大小限制,而 GPT 无此限制且支持更多分区数量。
  • 基础概念
    • MBR(主引导记录):传统硬盘分区表格式,最大支持 2TB 分区,仅允许 4 个主分区3 个主分区 + 1 个扩展分区
    • GPT(全局唯一标识分区表):新型硬盘分区标准,支持 超过 2TB 的分区,且可创建更多分区(无 MBR 的数量限制)。

57.gdisk:大磁盘分区

#大于2TB的磁盘可以使用gdisk分区
#安装gdisk
yum install -y gdisk

#分区
gdisk /dev/adc
n 创建分区
w 保存
q 退出
p 查看

58.df/du:查看磁盘大小

  • df 查看分区挂载情况与磁盘占用率
    • -h 显示单位
  • du 查看目录中文件的大小
  • 选项:
    • -h 显示单位
    • -s 不显示每个目录,只显示总大小

磁盘文件系统与格式化

什么是磁盘文件系统,有哪些以及区别?

文件系统:是操作系统中负责管理磁盘(如硬盘、U 盘、SSD 等)上文件与数据的一套软件机制,它定义了文件的存储结构、命名规则、元数据格式、空间分配方式及访问控制逻辑,是用户与物理存储设备之间的 “翻译官”。

  • 文件系统中存放数据:
    • block (块数据):数据内容,每个块默认4kb
    • inode (元数据):文件的详细信息,名称、权限、大小

什么是磁盘格式化?

磁盘格式化(Disk Formatting)是对磁盘(如硬盘、U 盘、SSD 等)进行初始化处理的操作,其核心是建立文件系统,让磁盘能够被操作系统识别并用于存储文件。简单来说,格式化就像 “给空白磁盘划分存储空间规则”,让系统知道如何记录文件位置、大小等信息。

  • 建立文件系统
  • 创建并初始化 block,以及 inode

常见文件系统及特点

文件系统 适用场景 核心特点
FAT32 老旧设备、小容量 U 盘(≤32GB) 兼容性极强(多系统支持),但单文件≤4GB,无权限管理,易碎片化,空间利用率低(簇浪费)。
NTFS Windows 系统盘、企业存储 支持单文件 16EB、分区 256TB,带日志(防数据损坏),复杂权限(ACL)、加密 / 压缩,适合 Windows 环境,Linux 需驱动。
exFAT 大容量 U 盘、跨平台大文件(如 4K 视频) 无 4GB 文件限制,兼容多系统(Linux 需驱动),优化空间分配(减少碎片),适合移动设备大容量存储。
ext4 Linux 系统盘、服务器数据 日志功能(崩溃恢复),单文件 16TB、分区 1EB,延迟分配(减少碎片),Linux 原生支持,稳定高效。
XFS 高性能服务器(视频编辑、数据库) 擅长高并发 IO 和大文件,动态扩展分区,元数据管理高效,吞吐量高,企业级 Linux(如 Red Hat)首选。
APFS macOS/iOS 设备(如 Mac、iPhone) 针对 SSD 优化,支持快照(快速备份)、空间共享、加密,写时复制(COW)减少磨损,苹果生态专属。
posted @ 2025-07-16 16:44  落无一  阅读(18)  评论(0)    收藏  举报