引言
在现代计算机系统中,磁盘存储是不可或缺的部分,特别是在Linux操作系统中,磁盘的管理与使用对系统的稳定性和性能至关重要。理解磁盘的基本概念、分区方式、文件系统的组织以及如何有效管理磁盘空间,是每个系统管理员和开发人员必备的技能。本教程将通过详细的步骤,帮助读者理解Linux磁盘的基本概念、如何使用fdisk进行分区、格式化磁盘、创建挂载点并自动挂载磁盘。通过实际操作,读者将能够熟练掌握磁盘管理的关键技术,确保系统存储的高效与稳定。
一、Linux磁盘存储概述
(一)磁盘数据组织
1、磁盘寻址方式
- 物理块地址(Physical Block Address,PBA)
- 逻辑块地址(Logical Block Address,LBA)
- LBA是基于PBA换算出来的有序寻址方式
- HDD的数据可以直接覆盖,因此LBA与PBA的关系是一一对应的、固定不变的
- SSD需要闪存转换层(Flash Translation Layer,FTL)来维护LBA和PBA的映射表
2、低级格式化
- 将空白磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识区、间隔区(GAP)和数据区等。
- 低级格式化适合HDD,低级格式化对SSD来说没有意义。
3、磁盘分区
- 磁盘在系统中使用都必须先进行分区。
- 分区也有助于更有效地使用磁盘空间。
- 每个分区在逻辑上可视为一个磁盘。
4、高级格式化
在磁盘分区上建立相应的文件系统。
(二)磁盘设备命名
(三)磁盘分区
分区样式:MBR与GPT
- MBR最多可支持4个磁盘分区。
- 可通过扩展分区来支持更多的逻辑分区,在Linux中将该分区样式又称为msdos。
- 一个MBR磁盘最多有4个主分区,或者3个主分区加一个扩展分区。
- GPT最多支持128个主分区。
- 无需创建扩展分区或逻辑分区。
- GPT磁盘分区可以突破MBR的2TB容量限制。
这是磁盘分区和文件系统的原理示意图
(四)Linux文件系统
文件系统是磁盘或分区上文件的物理存放方法。
常用文件系统类型:
ext2:传统的 Linux 文件系统。
ext3:带日志功能的扩展文件系统。
ext4:最新的扩展文件系统,支持大文件和更大的分区。
xfs:高性能的文件系统,适用于大数据量。
vfat:用于兼容 Windows 的 FAT32 文件系统。
ntfs:用于 Windows 的 NTFS 文件系统。
1、分区类型:Linux与Linux Swap
Ubuntu至少需要一个Linux分区和一个Linux Swap分区。
Native分区是存放系统文件的地方,只能使用ext文件系统。
Swap分区是Linux暂时存储数据的交换分区。
2、磁盘分区规划
规划磁盘分区要考虑磁盘的容量、系统的规模与用途、备份空间。
建议采用多分区方案。
增加一个引导分区(/boot)。
按用途划分多个分区。
分区无论是系统磁盘上,还是非系统磁盘上,都要挂载到根目录下才能使用。
3、分区工具
系统安装过程中内置的可视化分区工具
命令行工具
fdisk——各种Linux发行版本中经典的分区工具
内置图形用户界面的磁盘管理器
专门的图形用户界面分区工具gparted
二、管理磁盘分区和文件系统
对磁盘进行分区实操
步骤:
①对磁盘进行分区。
②在磁盘分区上建立相应的文件系统。这个过程称为建立文件系统或者格式化。
③建立挂载点目录,将分区挂载到系统相应目录下,就可访问该文件系统。
(一)使用fdisk进行分区
fdisk
fdisk –l [<磁盘设备名>] fdisk [选项] <磁盘设备名>
fdisk磁盘分区工具在DOS、Windows和Linux中都有相应的应用程序。在Linux系统中,fdisk是基于菜单的命令。用fdisk对硬盘进行分区,可以在fdisk命令后面直接加上要分区的硬盘作为参数。
(二)查看现有分区
①查看现有分区
sudo fdisk -l
②添加新分区
1. sudo fdisk /dev/sda
2. 输入 n 添加新分区
3. 选择默认分区号(按“enter”键)
4. 如果出现:No enough free sectors available. 则输入q退出
会出现问题,20GB 大小的 Linux 文件系统分区,占用了磁盘的全部剩余空间。
③查看现有分区使用情况
sudo fdisk -l /dev/sda
只有两个分区:
/dev/sda1:1MB 大小的 BIOS 启动分区。
/dev/sda2:20GB 大小的 Linux 文件系统分区,占用了磁盘的全部剩余空间。
④解决方法
设置完毕后点击 启动虚拟机,继续对磁盘重新进行分区。
首先关闭虚拟机,不要挂起哦,然后对虚拟机进行扩容。
输入 :
sudo fdisk -l /dev/sda 查看磁盘
这个30是在刚刚虚拟机设置里面,我增加到30G的。
⑤再次进入主磁盘,添加新分区
sudo fdisk /dev/sda
输入 n 添加新分区
按 enter 直到出现新的分区
⑥输入 p 查看分区信息
⑦输入 w 保存分区信息并退出
⑧再次查看现有分区
sudo fdisk -l
(三)对分区设置文件系统类型
①完成分区后,需要格式化新的分区。
sudo mkfs.ext4 /dev/sda3
挂载文件系统的要点
一个文件系统不应该被重复挂载在不同的挂载点(目录)中。
一个目录不应该重复挂载多个文件系统。
作为挂载点的目录通常应是空目录。
(四)创建挂载点目录
①为新的分区创建一个挂载点。假设我们要挂载到 /mnt/zhdisk 目录,新建此目录。
sudo mkdir /mnt/zhdisk
②设置挂载(手动)
mount [选项] <设备> <挂载点>
【参数】
-t:指定要挂载的文件系统的类型。
-r:如果不想修改要挂载的文件系统,可以使用该选项以只读方式挂载。
-w:以可写的方式挂载文件系统。
-a:挂载/etc/fstab文件中记录的设备。
(五)查看挂载点
df -h 挂载点目录
这里是一些参数,大家根据需要进行选择。
那么 卸载挂载
的命令是
umount 挂载点目录
自动挂载(编辑 /etc/fstab 文件)
使分区在系统重启后自动挂载
文件末尾添加一行(假设挂载 /dev/sda3 到 /mnt/mydisk):
/dev/sda3 /mnt/mydisk ext4 defaults 0 0
输入:
sudo vim /etc/fstab
进入vim编辑器进行编辑文件,将这个自动挂载命令添加到文件的末尾。按 i 进入编辑模式,然后复制命令,再按ESC 退出编辑模式,再输入:wq!保存并退出。
查看是否添加成功,再次输入
sudo vim /etc/fstab
可以看到新加的一行在文件内,就可以了。
(六)验证分区和挂载
lsblk
df -h
总结
本教程详细介绍了Linux磁盘存储的基本概念与管理方法。从磁盘的寻址方式、低级格式化、分区类型到文件系统的选择,我们深入了解了磁盘在操作系统中的重要性及其管理。通过实践,读者掌握了如何使用fdisk进行磁盘分区、格式化分区并创建文件系统。同时,教程还讲解了如何手动挂载磁盘和设置自动挂载,确保系统在重启后能够保持磁盘挂载状态。这些技术是Linux系统管理中非常基础且重要的一部分,掌握了这些技能,读者能够更加高效地管理和维护Linux系统的存储资源,确保系统的正常运行和数据的安全。