温馨提示×

Linux分卷有哪些方法

小樊
55
2025-09-18 07:29:38
栏目: 智能运维

Linux分卷的主要方法

一、传统磁盘分区方法(静态分配)

传统分区是通过工具将物理磁盘划分为固定大小的分区,适合对磁盘空间需求明确且无需频繁调整的场景。常用工具包括:

1. fdisk

适用于MBR(主引导记录)分区表的磁盘,是Linux下最基础的分区工具。操作步骤:

  • 查看磁盘信息:sudo fdisk -l
  • 进入交互界面:sudo fdisk /dev/sdX(X为磁盘标识,如sda);
  • 创建分区:输入n选择分区类型(主分区/扩展分区/逻辑分区),设置起始/结束扇区或大小;
  • 保存退出:输入w将更改写入磁盘。
    需注意,fdisk不支持GPT分区表,且操作前需备份重要数据。

2. parted

支持MBR和GPT分区表,功能更强大,适合新手交互式操作或脚本自动化。操作步骤:

  • 启动工具:sudo parted /dev/sdX
  • 创建分区表(若需转换):mklabel gpt(GPT)或mklabel msdos(MBR);
  • 创建分区:mkpart primary ext4 1MiB 100GiB(指定分区类型、文件系统和大小);
  • 退出:quit
    parted支持实时查看分区变化,适合需要灵活调整的场景。

3. gdisk

fdisk的GPT版本,专门用于GPT分区表(现代Linux系统推荐),支持更大容量磁盘(超过2TB)。操作步骤与fdisk类似,但命令略有不同:

  • 进入交互界面:sudo gdisk /dev/sdX
  • 创建分区:n选择分区号,设置起始/结束扇区,输入分区类型(如8300表示Linux文件系统);
  • 保存退出:w
    gdisk会自动校验分区表合法性,避免误操作。

4. cfdisk

基于文本的图形化分区工具,界面更友好,适合不熟悉命令行的用户。操作步骤:

  • 启动工具:sudo cfdisk /dev/sdX
  • 选择“New”创建新分区,设置大小和类型;
  • 确认操作:选择“Write”保存并退出。
    cfdisk通过菜单操作,降低了分区出错概率。

二、LVM(逻辑卷管理)方法(动态分配)

LVM是Linux下灵活的磁盘管理解决方案,通过“物理卷-卷组-逻辑卷”的层级结构,支持动态扩展、快照、合并等功能,适合需要频繁调整磁盘空间的场景(如服务器、数据库)。

1. 核心步骤

  • 创建物理卷(PV):将物理磁盘或分区初始化为PV,命令:sudo pvcreate /dev/sdX(X为磁盘或分区标识);
  • 创建卷组(VG):将多个PV合并为一个VG(逻辑存储池),命令:sudo vgcreate vg_name /dev/sdX /dev/sdY(vg_name为卷组名称);
  • 创建逻辑卷(LV):从VG中分配空间创建LV(虚拟分区),命令:sudo lvcreate -L 50G -n lv_name vg_name(-L指定大小,-n指定名称);
  • 格式化与挂载:将LV格式化为文件系统(如ext4/xfs),并挂载到指定目录:sudo mkfs.ext4 /dev/vg_name/lv_namesudo mount /dev/vg_name/lv_name /mnt/data

2. 动态扩展操作

LVM支持在线扩展LV和文件系统,无需卸载:

  • 扩展LV:sudo lvextend -L +20G /dev/vg_name/lv_name(增加20G空间);
  • 扩展文件系统:
    • 若为ext4:sudo resize2fs /dev/vg_name/lv_name
    • 若为xfs:sudo xfs_growfs /mount/point(mount/point为LV挂载点)。
      动态扩展无需停机,极大提升了运维效率。

三、分卷压缩(大文件拆分)

若需将大文件(如日志、备份)拆分为多个小分卷,便于存储或传输,可使用以下命令:

1. split命令

将文件按指定大小拆分为多个小文件,默认以aaabac…命名:
split -b 500M large_file.tar.gz large_file_part.(-b指定大小,如500M;最后一个参数为输出前缀)。
合并分卷:cat large_file_part.* > large_file.tar.gz

2. tar结合split

先使用tar打包并压缩文件,再用split拆分为分卷,适合需要压缩的场景:
tar -zcvf - /data/logs | split -b 500M - logs_split.tar.gz.(-z表示gzip压缩,-c表示创建归档,-v表示显示过程)。
解压时,先合并分卷:cat logs_split.tar.gz.* > logs_merged.tar.gz,再用tar解压:tar -zxvf logs_merged.tar.gz

3. zip分卷

原生支持分卷压缩,自动生成z01z02…前缀(最后一个为.zip):
zip -r -s 100m project_split.zip project/(-r递归压缩目录,-s指定分卷大小)。
解压时,直接解压最后一个分卷(如project_split.zip),unzip会自动识别并合并前置分卷。

0