Red Hat Enterprise Linux release 8.0 (Ootpa)-使用fdisk管理分区
一、Linux磁盘设备的命名规则
Linux中的一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。
Udev设备管理器在引导时动态创建或删除设备节点文件,在创建设备节点时,Udev读取设备/sys目录中的属性,如标签、序列号、总线设备号。
Udev可以使用永久性设备名称来确保重新引导期间设备命名的一致,无论其发现顺序如何。在使用外部存储设备时,永久性设备的名称尤为重要。
Linux系统中常见的硬件设备的文件名称如下:
- IDE设备 /dev/hd[a-d]
- SCSI/SATA/SSD /dev/sd[a-p]
- 软驱 /dev/fd[0-1]
- 打印机 /dev/lp[0-15]
- 光驱 /dev/cdrom
- 鼠标 /dev/mouse
- 磁带机 /dev/st0或/dev/ht0
目前IDE设备已经很少见了,常见的硬盘都是串口的,所以设备名称会以“/dev/sd”开头。一台计算机有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配)。硬盘分区的编号规则是:主分区或扩展分区的编号从1开始到4结束;逻辑分区的编号从5开始,如/dev/sdb5。其中,/dev表示/dev目录包含设备的设备文件或设备节点,这些设备文件或设备节点为该设备提供硬盘等外围设备;sd 表示存储设备;b 表示系统同类接口中的第2个被识别到的设备;5表示该设备是逻辑分区。简单来说“/dev/sdb5”表示系统中第2块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件。
二、关于Linux磁盘分区
磁盘是由大量扇区组成的,每个扇区的容量为512B。其中,第一个扇区最重要,保存着主引导记录与分区表信息。对磁盘驱动器进行分区,将其划分为一个或多个分区,并将与这些分区有关的信息存储在磁盘中的分区表中。操作系统将每个分区视为可以包含文件系统的单独的磁盘。
Linux根文件系统需要一个分区,另外两个分区通常被用于交换空间和引导文件系统。在x86和x86_64系统上,BIOS在引导时通常只能访问磁盘的前1024个柱面。在磁盘上此区域配有一个单独的引导分区,可以使GRUB引导加载程序访问引导系统所需的内核映像和其他文件。可以通过创建其他分区来简化备份、增强系统安全性并满足其他需求,如设置开发沙箱和测试区域。通常将经常更改的数据(如用户主目录、数据库和日志文件目录)分配给单独的分区。以便备份,具有主引导记录(MBR)的硬盘分区方案最多允许创建 4个主分区。如果需要4个以上的分区,则可以将一个主分区最多划分为11个逻辑分区。包含逻辑分区的主分区被称为扩展分区。MBR方案最大支持2TB的磁盘。在具有GUID分区表(GPT)的硬盘上,最多可以配置128个分区,并且没有扩展分区或逻辑分区的概念。如果磁盘大于2TB,则应配置GPT。可以使用fdisk命令创建和管理MBR。如果要创建GPT,请改用 parted工具。
三、使用fdisk管理磁盘分区
1、fdisk命令参数
用户可以使用fdisk进行创建分区表、查看现有分区表、添加分区和删除分区操作,也可以使用cfdisk进行这些操作,cfdisk是fdisk基于文本的图形版本。由于fdisk命令的参数是交互式的,因此在管理硬盘设备时很方便,可以根据需求动态调整相应参数。fdisk命令中的参数及作用如下。
● m:查看全部可用参数。
● n:添加新分区。
● d:删除某个分区信息。
● l:列出所有可用分区类型。
● t:改变某个分区类型。
● p:查看分区表信息。
● w:保存并退出。
● q:不保存直接退出。
2、查看硬盘和分区情况
假定 Linux 系统上已安装新的物理或虚拟硬盘驱动器,并且对操作系统可见。添加硬盘后,操作系统应能自动检测到新驱动器。通常,系统中的硬盘驱动器会使用以 hd 或 sd开头的设备名称,后跟一个字母以表示设备编号。例如,第一个设备可能是/dev/sda,第二个设备是/dev/sdb,依次类推。安装第二个硬盘驱动器后,使用ls命令查看:
[root@servera student]# ls /dev/vd* // ls /dev/vd* 查看
/dev/vda /dev/vda1 /dev/vdb /dev/vdb1
[root@servera student]# fdisk -l // fdisk -l 查看具体分区情况
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors //第一块硬盘vda
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x16a1e057
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 20971486 20969439 10G 83 Linux //该硬盘已有一个分区vda1
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors //第二块硬盘vdb
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x27d1340b
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 1163263 1161216 567M 82 Linux swap / Solaris //第二块硬盘已有一个分区vdb1,用于交换分区
如上所示,新的硬盘驱动器已分配给设备文件/dev/sda、/dev/sdb。并且创建有分区/dev/sda1、/dev/sdb1,所以当前驱动器显示分区信息。下面可以选择在新驱动器上新增创建并安装分区和文件系统。
3、fdisk新增磁盘分区
[root@servera student]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):
First sector (1163264-10485759, default 1163264):
Last sector, +sectors or +size{K,M,G,T,P} (1163264-10485759, default 10485759): +100M
Created a new partition 2 of type 'Linux' and of size 100 MiB.
Command (m for help): w
The partition table has been altered.
Syncing disks.
[root@servera student]# ls /dev/vd*
/dev/vda /dev/vda1 /dev/vdb /dev/vdb1 /dev/vdb2 //新增的磁盘分区
4、partprobe重读分区表
[root@servera student]# partprobe //重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。如果删除文件后,仍然提示占用空间,可以用partprobe在不重启的情况下重读分区 。
[root@servera student]# fdisk -l
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x16a1e057
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 20971486 20969439 10G 83 Linux
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x27d1340b
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 1163263 1161216 567M 82 Linux swap / Solaris
/dev/vdb2 1163264 1368063 204800 100M 83 Linux
5、在新分区上创建分级系统
到此为止,已经安装了新硬盘,且 Linux 系统可以自动检测到它,并且我们已经在硬盘上配置了分区。下一步是在分区上创建文件系统,以便 Linux 操作系统可以使用它来存储文件和数据。在分区上创建文件系统的最简单的方法是使用mkfs.xfs命令:
[root@servera student]# mkfs.xfs /dev/vdb2 //这里创建了一个XFS文件系统
meta-data=/dev/vdb2 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
6、创建挂载点和挂载点自启动
在新硬盘驱动器的分区上创建一个新文件系统后,还需要对其进行挂载,以使其可访问和可用,因此需要创建一个安装点。就本示例而言,将创建一个/sword目录以匹配文件系统标签:
[root@servera student]# mkdir /sword //创建挂载点m
[root@servera student]# mount /dev/vdb2 /sword/ //mount挂载
为了在引导时自动挂载新文件系统,需要在/etc/fstab文件中添加一行:
/dev/vdb2 /sword xfs defaults 0 0
7、df -Th查看文件系统
[root@servera ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 388M 0 388M 0% /dev
tmpfs tmpfs 411M 0 411M 0% /dev/shm
tmpfs tmpfs 411M 11M 400M 3% /run
tmpfs tmpfs 411M 0 411M 0% /sys/fs/cgroup
/dev/vda1 xfs 10G 1.5G 8.6G 15% /
tmpfs tmpfs 83M 0 83M 0% /run/user/1000
/dev/vdb2 xfs 95M 6.0M 89M 7% /sword
[root@servera ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 407M 0 407M 0% /dev
tmpfs tmpfs 431M 0 431M 0% /dev/shm
tmpfs tmpfs 431M 12M 420M 3% /run
tmpfs tmpfs 431M 0 431M 0% /sys/fs/cgroup
/dev/vda1 xfs 11G 1.6G 9.2G 15% /
tmpfs tmpfs 87M 0 87M 0% /run/user/1000
/dev/vdb2 xfs 100M 6.3M 93M 7% /sword
df -Th
df -TH
附录1、mkfs命令-->make filesystem的缩写;用来在特定的分区建立Linux文件系统
附录2:格式化的可选类型有如下
[root@servera student]# mkfs
mkfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
附录3:各文件格式说明
Ext2 :Linux的第一个文件系统是MINIX文件系统。 后来,它被有史以来第一个专门为Linux编写的文件系统Ext所取代。 Ext2是Ext的后继者 。 Ext2不是日记文件系统。
Ext3 :这是Ext2的后继产品,可以看作是带有日志记录的Ext2,它可以保护文件系统免受崩溃和突然断电导致的数据损坏。
Ext4 :Ext4是May Linux发行版的标准文件系统。 它是一个可靠,可靠的可靠文件系统。 它具有减少文件碎片的功能,并且与Ext3相比,可用于更大的驱动器,分区和文件。
MINIX :最初由Andrew S. Tanenbaum创建,目的是作为一种教育工具, MINIX是一个“微型Unix”操作系统。 如今,它旨在提供一种自我修复和容错的操作系统 。 MINIX 文件系统被设计为Unix File System的简化版本。
CRAMFS : 压缩ROM文件系统是一个只读文件系统,设计用于嵌入式系统和专业只读用途,例如Linux计算机的引导过程中。 通常会先加载一个小型的临时文件系统,以便启动引导进程来为要安装的“实际”启动系统做准备。
XFS:XFS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。
附录4:如何选择文件系统?
ext文件系统(支持度最广、但格式化超慢):ext系列的文件系统,在文件格式化时,采用的是规划出所有的inode、区块、元数据等数据,未来系统可以直接使用,不需要再进行动态配置,但是这个做法在早期磁盘容量还不大的时候可以使用。如今,磁盘的容量越来越大,连传统的MBR都已经被GPT取代。当使用磁盘容量在TB以上的传统ext系列文件系统在格式化的时候,会消耗相当多的时间。
xfs文件系统(容量高,性能佳):由于虚拟化的应用越来越广泛,虚拟化磁盘来源的举行文件越来越常见,这些巨型文件在处理上考虑到刑恩那个问题,因此xfs比较适合高容量磁盘与巨型文件,且性能较佳的文件系统。
部分资料出自:https://www.joshua317.com/article/165
文件系统EXT3,EXT4和XFS的区别:
1. EXT3
(1)最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
(2)Ext3目前只支持32000个子目录
(3)Ext3文件系统使用32位空间记录块数量和i-节点数量
(4)当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块
2. EXT4
EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。
(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB
(2)理论上支持无限数量的子目录
(3)Ext4文件系统使用64位空间记录块数量和i-节点数量
(4)Ext4的多块分配器支持一次调用分配多个数据块
3. XFS
(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
(2)采用优化算法,日志记录对整体文件操作影响非常小
(3) 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间
(4)能以接近裸设备I/O的性能存储数据
补充:Red Hat Enterprise Linux 8.0默认文件系统为XFS。XFS支持Copy-on-write,这使得多个文件可以共享数据块,节约存储空间,也方便容器的应用。Copy-on-write可通俗地称为写时拷贝,也就是说读的时候并不需要拷贝 stratis 卷文件系统的支持,更方便支持文件快照、块存储池等特性需求。Virtual Data Optimizer(VDO)虚拟数据层可以管理、重用和压缩文件存储块设备。按照文档建议,虚拟机或者容器给虚拟文件系统预留的空间和物理尺寸的比例是10∶1,而对于对象存储系统,如Ceph,该比例也可以达到3∶1,也就是说,可以极大地减少实际物理空间的占用。
————————————————
版权声明:本文为CSDN博主「sdd220」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
部分原文链接:https://blog.csdn.net/sdd220/article/details/76216164
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具