Linux磁盘分区总结

前言


关于磁盘的分区操作,是运维的必备技能,fdisk也应该是大家最常用的命令。因为fdisk命令可以解决大多数的磁盘分区问题,它可以将不大于2T的硬盘进行分区,而我们在生产中最常用的硬盘大小不超过2个T(视公司规模而定),当然有的时候,我们也会有对更大容量的需求,因此我们就会使用更大空间的硬盘,但是如果是用fdisk对2T以上的硬盘进行分区就会出现问题。下面介绍的就是Linux的磁盘分区,包含2T以上的磁盘的分区方法。



磁盘分区常识



【1】硬盘分区表基础概念


硬盘分区表是支持硬盘正常工作的架构。其意义在于操作系统会根据硬盘的分区表把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,使系统可以写入数据。不同的硬盘分区表就像是对一个房子的不同的装修方案。

到现在这篇文章为止,主要磁盘分区使用的分区表有MBR和GPT两种。



【2】MBR和GPT分区表的区别


MBR分区表

  • 主引导记录分区方案,是传统的分区方案;

  • 只能记录4个分区的信息,硬盘主分区数目不能超过4个。(MBR扇区每个分区项使用16个字节存储,总共只有64个字节用于分区表);

  • 无法支持超过2TB容量的磁盘,对超过2T的硬盘分区只能使用2T空间。



GPT分区表(又称GUID分区表)

  • 全局唯一标识分区表,是较新的分区机制;

  • 理论上每个磁盘的分区个数和大小几乎没有限制;
    (Windows系统最多只允许划分128个分区,所以windows系统磁盘分区时使用此分区方案,最多128分区)

  • 支持超过2T的磁盘;

  • 可兼容MBR。

  • 分区表自带备份。
    (会在磁盘的首尾部分,分别保存了一份相同的分区表。其中一份被破坏后,可以通过另一份恢复)



磁盘分区挂载操作


注意:
由于使用虚拟机演示,磁盘显示为vd。
虚拟机的磁盘一般显示为似vda的类型,真实机磁盘显示为sda的类型
fdisk命令对应MBR分区表
parted命令对应GPT分区表


【1】不大于2T的磁盘分区


<1>查看硬盘信息

方法一:lsblk

这里写图片描述


方法二:fdisk -l

中文版
Linux磁盘分区总结_第1张图片


英文版
Linux磁盘分区总结_第2张图片



<2>创建新硬盘分区

右上方可知新磁盘为vdb,其空间为100G,不大于2T,所以使用fdisk对其分区
磁盘默认都在/dev下,可用Tab补全


{1}fdisk /dev/vdb

Linux磁盘分区总结_第3张图片


{2}输入m,列出菜单

Linux磁盘分区总结_第4张图片

a   toggle a bootable flag                    设置可启动标记
b   edit bsd disklabel                        设置一个bsd磁盘标记
c   toggle the dos compatibility flag         设置dos兼容标记
d   delete a partition                        删除一个分区
l   list known partition types                列出已知分区类型
m   print this menu                           列出菜单
n   add a new partition                       添加一个分区
o   create a new empty DOS partition table    新建一个空的DOS分区表
p   print the partition table                 显示该磁盘当前分区信息
q   quit without saving changes               不保存退出
s   create a new empty Sun disklabel          创建一个空的SUN磁盘标签
t   change a partition's system id            修改分区ID
u   change display/entry units                修改显示单元
v   verify the partition table                检验分区表
w   write table to disk and exit              保存并退出
x   extra functionality (experts only)        额外的功能(专家模式)

{3}输入n,创建一个分区

这里写图片描述


{4}输入p,创建逻辑分区

Linux磁盘分区总结_第5张图片


Select (default p): p                                                         创建逻辑分区
Partition number (1-4, default 1): 1                                          划分逻辑分区1First sector (2048-209715199, default 2048):                                  回车默认从第一个柱面开始划分(一般都使用默认,直接回车)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):    划分分区大小(格式:+800M);直接回车,会默认将剩余空间全部划分给此分区
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set

Command (m for help): p                                                       显示该磁盘当前分区信息

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   209715199   104856576   83  Linux

Command (m for help): w                                                       保存并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

<3>创建后查看

lsblk

Linux磁盘分区总结_第6张图片

出现vdb1,即成功


<4>格式化分区

本次将其格式化为ext4的文件系统,可选其他文件系统


mkfs.ext4 /dev/vdb1

Linux磁盘分区总结_第7张图片


<5>挂载

可创建一个目录将其挂载,也可直接挂载到已有的目录
挂载方式有很多种,按需选择
本次,直接挂载到/mnt,使用永久挂载

挂载最好使用UUID,并进行永久挂载。可避免Linux系统重启后,磁盘设备名发生更导致的问题。


{1}写入文件
echo “/dev/vdb1 /mnt ext4 defaults 0 0” >>/etc/fstab

Linux磁盘分区总结_第8张图片


{2}刷新挂载并查看
mount -a
df -Th

Linux磁盘分区总结_第9张图片



【2】大于2T的磁盘分区


其查看磁盘、分区格式化、挂载操作都与小于2T的磁盘的操作是相同的,就不演示了,可参考上方的小于2T的磁盘分区操作。


<1>创建新硬盘分区

本次使用的是4T的磁盘演示,由于大于2T使用GPT分区表,使用parted 命令分区
如使用fdisk分区,将只有2T空间可用


parted /dev/sdb



Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt                                            创建分区表,磁盘类型为gpt

Warning: The existing disk label on /dev/sdx will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes                                                    选择yes,为清除磁盘原有信息

(parted) unit TB                                               设置单位为TB

(parted) mkpart primary 0 4                                    创建4T的分区(0 4分别意为起始点和结束点)

(parted) print                                                 查看分区信息

(parted) quit                                                  保存并退出

<2>分区及挂载后最终结果

lsblk

Linux磁盘分区总结_第10张图片



补充



【1】取消挂载命令


umount /mnt/

Linux磁盘分区总结_第11张图片



【2】fdisk取消分区命令


取消分区前该分区必先取消挂载


fdisk /dev//vdb

Command (m for help): d                                                删除分区(如果只有一个分区,就不会出现要删除的分区的选项) 

Command (m for help): p                                                列出此磁盘当前分区信息

Command (m for help): w                                                退出并保存 


【3】parted取消分区命令


取消分区前该分区必先取消挂载


parted /dev/sdb

(parted)    rm                                                          删除 

Partition number? 1                                                    删除第一个分区

parted)    print                                                        查看当前分区情况

你可能感兴趣的:(运维日常的FAQ,Linux常用命令使用技巧,服务器硬件)