Linux分卷的主要方法
传统分区是通过工具将物理磁盘划分为固定大小的分区,适合对磁盘空间需求明确且无需频繁调整的场景。常用工具包括:
适用于MBR(主引导记录)分区表的磁盘,是Linux下最基础的分区工具。操作步骤:
sudo fdisk -l;sudo fdisk /dev/sdX(X为磁盘标识,如sda);n选择分区类型(主分区/扩展分区/逻辑分区),设置起始/结束扇区或大小;w将更改写入磁盘。支持MBR和GPT分区表,功能更强大,适合新手交互式操作或脚本自动化。操作步骤:
sudo parted /dev/sdX;mklabel gpt(GPT)或mklabel msdos(MBR);mkpart primary ext4 1MiB 100GiB(指定分区类型、文件系统和大小);quit。fdisk的GPT版本,专门用于GPT分区表(现代Linux系统推荐),支持更大容量磁盘(超过2TB)。操作步骤与fdisk类似,但命令略有不同:
sudo gdisk /dev/sdX;n选择分区号,设置起始/结束扇区,输入分区类型(如8300表示Linux文件系统);w。基于文本的图形化分区工具,界面更友好,适合不熟悉命令行的用户。操作步骤:
sudo cfdisk /dev/sdX;LVM是Linux下灵活的磁盘管理解决方案,通过“物理卷-卷组-逻辑卷”的层级结构,支持动态扩展、快照、合并等功能,适合需要频繁调整磁盘空间的场景(如服务器、数据库)。
sudo pvcreate /dev/sdX(X为磁盘或分区标识);sudo vgcreate vg_name /dev/sdX /dev/sdY(vg_name为卷组名称);sudo lvcreate -L 50G -n lv_name vg_name(-L指定大小,-n指定名称);sudo mkfs.ext4 /dev/vg_name/lv_name,sudo mount /dev/vg_name/lv_name /mnt/data。LVM支持在线扩展LV和文件系统,无需卸载:
sudo lvextend -L +20G /dev/vg_name/lv_name(增加20G空间);sudo resize2fs /dev/vg_name/lv_name;sudo xfs_growfs /mount/point(mount/point为LV挂载点)。若需将大文件(如日志、备份)拆分为多个小分卷,便于存储或传输,可使用以下命令:
将文件按指定大小拆分为多个小文件,默认以aa、ab、ac…命名:
split -b 500M large_file.tar.gz large_file_part.(-b指定大小,如500M;最后一个参数为输出前缀)。
合并分卷:cat large_file_part.* > large_file.tar.gz。
先使用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。
原生支持分卷压缩,自动生成z01、z02…前缀(最后一个为.zip):
zip -r -s 100m project_split.zip project/(-r递归压缩目录,-s指定分卷大小)。
解压时,直接解压最后一个分卷(如project_split.zip),unzip会自动识别并合并前置分卷。