1. Linux磁盘管理基础概念
在Linux系统中,磁盘管理是系统管理员和开发人员必须掌握的核心技能之一。与Windows系统不同,Linux采用了一种更加灵活但也更复杂的磁盘管理方式。理解Linux磁盘管理的基本概念,是后续进行分区、格式化、挂载等操作的基础。
Linux系统中,所有的设备都被视为文件,存储在/dev目录下。对于磁盘设备,常见的命名规则是:
- /dev/sdX:SCSI、SATA、USB等接口的磁盘(如sda、sdb)
- /dev/hdX:老式IDE接口磁盘
- /dev/nvmeXnY:NVMe固态硬盘
- /dev/vdX:虚拟化环境中的虚拟磁盘
每个物理磁盘可以被划分为多个分区,分区的命名规则是在磁盘名称后加上分区号,例如:
- /dev/sda1:第一块SATA磁盘的第一个分区
- /dev/sdb2:第二块SATA磁盘的第二个分区
注意:在Linux中,分区编号从1开始,而不是0。主分区编号为1-4,扩展分区中的逻辑分区从5开始。
Linux系统使用挂载(mount)的概念来访问磁盘分区。与Windows的盘符(C:, D:)不同,Linux将所有分区挂载到统一的目录树结构中的某个目录下。例如,根分区挂载到/,用户主目录可能挂载到/home,这种设计提供了极大的灵活性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 磁盘分区实战操作
2.1 分区工具选择与比较
Linux下常用的分区工具有:
- fdisk:传统的命令行分区工具,适用于MBR分区表
- gdisk:fdisk的GPT版本,适用于GPT分区表
- parted:更强大的分区工具,支持MBR和GPT
- cfdisk:基于ncurses的交互式分区工具
对于现代系统,特别是使用UEFI启动和大于2TB磁盘的情况,建议使用GPT分区表。以下是使用gdisk进行分区的典型流程:
bash复制# 查看当前磁盘情况
lsblk
# 使用gdisk对/dev/sdb进行分区
sudo gdisk /dev/sdb
# 在gdisk交互界面中常用命令:
# n - 新建分区
# d - 删除分区
# p - 打印分区表
# w - 写入并退出
# q - 退出不保存
2.2 分区方案设计
合理的分区方案应考虑以下因素:
- 系统用途(桌面/服务器)
- 磁盘大小
- 数据安全需求
- 性能需求
对于桌面系统,一个简单的分区方案可能是:
- /boot:300MB (EFI系统分区)
- /:30-50GB
- /home:剩余空间
- swap:内存大小的1-2倍(如果内存足够大,可以不要swap)
对于服务器,更推荐将以下目录单独分区:
- /var:日志和可变数据
- /tmp:临时文件
- /usr:应用程序
- /opt:第三方软件
提示:对于数据库服务器,应将数据目录放在单独的分区或磁盘上,便于性能优化和备份。
2.3 分区操作示例
以下是在/dev/sdb上创建GPT分区表的完整示例:
bash复制# 安装gdisk工具(如果未安装)
sudo apt install gdisk # Debian/Ubuntu
sudo yum install gdisk # CentOS/RHEL
# 启动gdisk
sudo gdisk /dev/sdb
# 创建新的GPT分区表(会清除所有现有数据)
Command: o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y
# 创建第一个分区(EFI系统分区)
Command: n
Partition number (1-128, default 1):
First sector (34-20971486, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}: +300M
Current type is 'Linux filesystem'
Hex code or GUID (L to show cod
