Linux如何磁盘分区

发布时间:2026/7/5 21:31:19
Linux如何磁盘分区 需知一Linux对磁盘分区的解决方案MBR分区方案寄存器GPT分区方案全局唯一标识磁盘分区表需知二MBR分区方案特点最多支持四个主分区在Linux上使用扩展分区和逻辑分区最多可以创建15个分区由于分区中的数据以32位存储使用MBR分区是最大支持单盘 2T 空间fdisk管理工具只能创建MBR分区但是在较新的发行版系统重 fdisk 命令已经不默认自带了也通常不直接去专程创建 MBR 分区工作中多数使用 PV 操作服务器储存介质的管理需知三GPT分区方案特点GPT的优势是分区列表中单个分区逻辑上最大支持 18 EB1 EB 1,048,576 TB可以定义128个分区分区的限制是不同系统决定的没有主分区、扩展分区和逻辑分区的概念所有分区都能格式化。通常使用 parted 管理工具创建GPT分区需知四如何区分MBR和GPT分区注意linux中的磁盘接口一般都在 /dev/ 下 格式为 sda、sdb、sdc 这种接口文件分区会存在对应的 sda1 、sda2 这种接口文件方法一[rootnode3 ~]# fdisk -l----------主磁盘 sda 的信息 Disk /dev/sda:53.7GB,53687091200bytes,104857600sectors Unitssectors of1*512512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes Disk label type: dos ---------这里就是该磁盘用的分区方式 gpt 或者 dos(MBR)Disk identifier: 0x0008f1dc -----------------它下面有两个分区 Device Boot Start End Blocks Id System /dev/sda1 *204841164720480083Linux /dev/sda2411648104857599522229768e Linux LVM -----------新磁盘未分区时也会展示在这里 Disk /dev/sdb:21.5GB,21474836480bytes,41943040sectors Unitssectors of1*512512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes ------------下面展示的是所有系统现在有的逻辑卷分区 Disk /dev/mapper/centos-root:51.3GB,51325698048bytes,100245504sectors Unitssectors of1*512512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes Disk /dev/mapper/centos-swap:2147MB,2147483648bytes,4194304sectors Unitssectors of1*512512bytes Sector size(logical/physical):512bytes /512bytes I/O size(minimum/optimal):512bytes /512bytes方法二[rootnode3 ~]# parted -l--------------------开头这部分指的是主磁盘信息主磁盘叫 sda Model: VMware, VMware Virtual S(scsi)Disk /dev/sda:53.7GB 《----磁盘大小 Sector size(logical/physical): 512B/512B Partition Table: msdos 《----分区方式MBR Disk Flags: ------------主磁盘有两个分区展示了它们的扇区位置还有他们的类型(boot内核引导分区、lvm是逻辑卷)Number Start End Size Type File system Flags11049kB 211MB 210MB primary xfs boot2211MB53.7GB53.5GB primary lvm -----------------这个是未分区的新盘只展示大小其他的同时识别不到 Error: /dev/sdb: unrecognised disk label Model: VMware, VMware Virtual S(scsi)Disk /dev/sdb:21.5GB Sector size(logical/physical): 512B/512B Partition Table: unknown Disk Flags: -----------------系统逻辑卷分区 Model: Linux device-mapper(linear)(dm)Disk /dev/mapper/centos-swap: 2147MB ----------centos-swap意思是这个分区是个交换分区 Sector size(logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags10.00B 2147MB 2147MB linux-swap(v1)Model: Linux device-mapper(linear)(dm)Disk /dev/mapper/centos-root:51.3GB ------------centos-root 是默认挂在根路径的总空间 Sector size(logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags10.00B51.3GB51.3GB xfs注意除了磁盘信息下方带序号的分区外。较新的 Linux 发行版已经不在显示逻辑卷了它的信息确实对运维有影响信息素比较乱。甚至 AlmaLinux 这些较新的发行版已经默认不带fdisk命令了如果你想看一个磁盘具体的分区信息需要通过lsblk命令[rootcore opt]# lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sdb8:160931.5G0disk ├─sdb18:1701K0part └─sdb58:210931.5G0part /opt/wy顺便说一个补充知识当你将一个 Windows 上用的移动硬盘插在 linux 系统上默认是不能用的需要安装一个兼容插件# 先启用 EPEL 源如果还没启用yuminstallepel-release-y# 安装 ntfs-3gyuminstallntfs-3g-y# 两种挂载方式都可以mount-tntfs-3g /dev/sdb5 ./wymount/dev/sdb5 ./wy# 用完后卸载umount/dev/sdb5下面我们开始分区分区前你首先要知道当前服务器有几块盘以及那些盘现在没有被使用可以用来分区的。运行fdisk -l命令可以看到如下图的输出信息上图中的信息可以看到目前总计有两块盘/dev/sda由于已经在使用所以它有了标签类型和标识符以及可以看到它被分了三个区且挂载在了不同的地方而/dev/sdb由于是刚插到服务器上没有使用因此没有相关的信息。我们直接使用parted工具该工具可以操作多种不同的分区方式下面演示如何用它操作gpt分区1、使用parted 加目标磁盘命令进行分区[roothdp3 opt]# parted /dev/sdbGNU Parted3.1使用 /dev/sdb Welcome to GNU Parted!Typehelpto view a list of commands.(parted)2、输入mklabel指令定义分区格式之后随着输入提示输入gpt末尾可能有的时候会出现一个警告输入y确定进行(parted)mklabel New disk label type? gpt Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? y3、mkpart定义磁盘分区名称和文件系统类型这里演示只分一个实际操作时3、4两步需要多次重复完成多个分区(parted)mkpart Partition name?[]? gpt1 File system type?[ext2]? ext44、定义当前分区盘符大小同时此步完成之后会在/dev自动生成对应的类似于/dev/sdb1这样的配置文件。这一步你可以写百分比或者是具体的扇区大小地址Start?0% End?100%一定要带百分比符号不带的话按照磁盘指点扇区识别会报如下提示输入 Cancel 后重新执行 mkpart 即可Warning: The resulting partition is not properly alignedforbest performance. Ignore/Cancel?5、使用print命令进行查看(parted)print Model: VMware, VMware Virtual S(scsi)Disk /dev/sdb:21.5GB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志11049kB21.5GB21.5GB gpt1此时要说一点parted操作到这里如果你操作觉得不对想要从新来过需要执行umount /dev/sdb1命令先取消已经挂载的分区。如果你是分区文件类型写的不满意并不需要去取消挂载后期格式化时使用实际的命令就行标签会自动更新。如果某个分区没分对在parted交互窗口中执行p得到分区号后rm即可。如果你是在给一块已经有分区且已经对分区做了文件系统类型格式化的老盘重新分区需要先执行parted /dev/sdb mklabel gpt/msdos格式化它6、quit退出并使用mkfs.分区格式格式化你建好的所有分区注意mkfs后面的分区格式是linux根据不同的分区类型有不同的格式化命令你分区时设置的什么类型就用什么命令你可以输入“mkfs.”时用tab查看一下你能用的命令(parted)quit Information: You may need to update /etc/fstab.[roothdp3 opt]# mkfs.ext4 /dev/sdb1meta-data/dev/sdb1isize512agcount4,agsize1310592blkssectsz512attr2,projid32bit1crc1finobt0,sparse0databsize4096blocks5242368,imaxpct25sunit0swidth0blks namingversion2bsize4096ascii-ci0ftype1loginternal logbsize4096blocks2560,version2sectsz512sunit0blks, lazy-count1realtimenoneextsz4096blocks0,rtextents07、为刚才的所有分区做挂载[roothdp3 opt]# mkdir /opt/oracleData[roothdp3 opt]# mount /dev/sdb1 /opt/oracleData8、将挂载信息添加到配置文件/etc/fstab中这样就可以随着系统启动自动挂载注意这个文件里面内容标准是制表符tab分隔不过你可以用空格UUID1aa586ac-c177-4037-a587-e965192b95fe /opt/oracleData ext4 defaults00注意第一列是磁盘分区对应的标识一定一定要使用 UUID 不要使用磁盘分区名称会导致重启时可能无法正常识别测盘而导致系统起不来可以用如下的命令查看磁盘分区的 UUID[rootwangyang ~]# lsblk -fNAME FSTYPE LABEL UUID MOUNTPOINT vda └─vda1 ext4 c8b5b2da-5565-4dc1-b002-2a8b07573e22 / vdb └─vdb1 ext4 1aa586ac-c177-4037-a587-e965192b95fe /opt/gpt1总计六列信息从左到右分别为磁盘标识(配置路径/UUID)、挂载路径、该分区文件系统类别、文件系统参数、能否被dump备份命令作用、是否检验扇区这六列信息的配置可选项可以看如下博文中的配置项详情