转载,资料来自网络。
fdisk
fdisk 相关链接。
fdisk 分区,格式化,挂载。
https://blog.csdn.net/yangzhengquan19/article/details/83788277?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
fdisk 命令详解
https://www.cnblogs.com/xiaofengkang/archive/2011/06/06/2073579.html
合理规划硬盘分区
https://blog.csdn.net/weixin_33989780/article/details/89994386
扩展分区容量
https://blog.csdn.net/chengxuyuanyonghu/article/details/51746234
分区等基础 概念。
硬盘种类、物理几何结构
硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目的是替换IDE; 硬盘的物理几何结构是由盘、磁盘表面、柱面、扇区组成,一个张硬盘内部是由几张碟片叠加在一起,这样形成一个柱体面;每个碟片都有上下表面;磁头和磁盘表 面接触从而能读取数据;
硬盘分区的划分标准
硬盘分区由主分区、扩展分区和逻辑分区组成
在一块硬盘上,如果是MBR分区方式,那么它的主分区最多只能有4个,或者3个主分区和1个扩展分区;在扩展分区上我们可以创建多个逻辑分区
分区编号:主分区1-4 ,逻辑分区5.。。。。。
LINUX规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上
分区作用:
主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上
扩展分区不能使用的,它只是做为逻辑分区的容器存在的;我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中
如果你用的是GPT的分区方式,那么它没有限制主分区个数
注意:从MBR转到GPT分区或者说从GPT转到MBR会导致数据全部丢失
文件系统的一个使用流程
存储介质选择—》硬盘分区操作;创建分区来容纳文件系统;创建分区,这个分区可以是整个硬盘也可以是部分硬盘----》创建文件系统(我们在存储数据之前,你必须使用文件系统对其分区进行格式化)----》把它挂载到虚拟目录----》写入配置文件/etc/fstab
扩展分区也算作主分区,且一个硬盘基本只能有一个扩展分区。
合理的的分区方式
最合理的分区结构:主分区在前,扩展分区在后,然后在扩展分区中划分逻辑分区;主分区的个数+扩展分区个数要控制在四个之内;比如下面的分区是比较好的;
[主|分区1] [主|分区2] [主|分区3] [扩展分区]
[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
[主|分区1] [主|分区2] [扩展分区]
[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
[主|分区1] [扩展分区]
[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
不合理的分区结构: 主分区包围扩展分区;比如下面的
[主|分区1] [主|分区2] [扩展分区] [主|分区4] [空白未分区空间]
[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
这样 [主|分区2] 和 [主|分区4] 之间的 [扩展分区] 是有自由度,但[主|分区4]后的[空白未分区空间]怎么办?除非把主分区4完全利用扩展分区后的空间,否则您想在主分区4后再划一个分区是不可能的,划分逻辑分区更不可能; 虽然类似此种办法也符合一个磁盘四个主分区的标准,但这样主分区包围扩展分区的分区方法不可取
fdisk - Partition table manipulator for Linux
fdisk linux下的分区工具
fdisk基础命令
fdisk -l 查看硬盘及分区信息
fdisk -l
可以看到有三个硬盘(使用的VMware Workstations创建的虚拟机),第一块硬盘 /dev/sda 是创建系统时自动划分的。/dev/sdb /dev/sdc是后来新增的两块硬盘。其中/dev/sdb 已经做了分区,一块主分区,一块扩展分区,扩展分区上又创建了一个逻辑分区。/dev/sdc 未创建分区。
单独看某一块硬盘 硬盘分区情况 如 /dev/sdb
fdisk -l /dev/sdb
硬盘大小 21.5GB,(其实新增硬盘时时设置的了20G,显示21.5G应该是换算方式吧2010241024*1024/1000/1000/1000)。一共有4194304 个扇区,每个扇区 大小512 bytes。
Start 一个分区从 X扇区开始
End 一个分区到Y扇区结束。
Blocks 分区大小,单位K。
Id 感觉就是分区的类型Id,在创建分区时使用 l 命令可查看对应列表
System 分区类型
创建分区基本命令
现在,假设要对一个硬盘 /dev/sdb 进行操作,创建分区
fdisk /dev/sdb
会进入创建分区的命令行。输入m 查看帮助
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #删除一个分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types # 查看分区类型
m print this menu # 查看帮助信息
n add a new partition # 添加一个分区
o create a new empty DOS partition table
p print the partition table # 查看分区表
q quit without saving changes # 不保存修改退出
s create a new empty Sun disklabel
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)
基本上常用的就是上面带有中文注释的几个命令。
创建,添加分区的例子。
已经知道,每个硬盘如果是MBR格式分区,那么最大只能有四个主分区(如果有扩展分区,扩展分区也算作主分区),如果是GPT格式,那么不受限制。parted 工具命令似乎可以设置分区格式,这个自行查阅。。。
现在准备将 /dev/sdc 进行分区,两个主分区,一个扩展分区。在扩展分区上创建两个逻辑分区。
进入创建分区命令
fdisk /dev/sdc
使用p 命令查看分区情况
当前没有任何分区
n命令创建一个主分区
输入命令n 表示创建一个分区。
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
现在有0个主分区 0个扩展分区 4个空闲分区。(空闲分区一词不准确,应该是可以再创建的主分区数为4.)
提示输入分区类型Select (default p) p 表示主分区,e 表示扩展分区,默认是主分区。
Partition number (1-4, default 1)输入分区编号 默认就好。自动会按照1,2,3,4顺序设置
First sector (2048-62914559, default 2048): 起始扇区,这个最好按默认设置,不然很容易造成空间浪费。
Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559):设置j结束扇区,默认是硬盘末尾扇区,就是占有硬盘剩余所有空间,也可以输入占用空间大小(要带上单位 K/M/G) 比如 +2G 就是该分区占用硬盘2G大小空间。fdisk会自动计算结束扇区位置。
设置完毕 用 p 命令查看一下分区情况 可以看到 已经有一个分区了。
再接着设置一个8G的主分区
和创建第一个分区时类似。
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
已经有一个主分区了,还可以再创建的主分区数为3。
可以看到第二个主分区创建时默认的起始扇区变成了4196352 恰好是第一个主分区结束扇区+1 。这样空间不会被浪费。
现在已经有两个主分区了。创建一个扩展分区。(扩展分区不可直接挂在,要先创建逻辑分区)。一般来说,逻辑分区是用来存放数据的地方,主分区之类更多用来存放系统相关。
n 命令用来创建分区
这次选在分区类型时选择了e 表示创建扩展分区,且在 设置结束扇区时使用了默认值,表示硬盘剩余空间全部分给扩展分区。
保存设置 退出
现在已经在 /dev/sdc 上创建了两个主分区,一个扩展分区。可以将分区表写入磁盘。
使用 w 命令 写入硬盘并退出
如果感觉设置有误,放弃本次分区建立 使用 q 命令
w保存修改 并退出分区设置后。使用fdisk -l 查看一下分区情况。重点查看 /dec/sdc
可以看到 /dev/sdc 分区表已经写入硬盘。
修改分区表
现在想要修改分区表,建立三个主分区 一个扩展分区。三个主分区大小 2 3 5G。再建立两个逻辑分区。
按照上面的分区建议,扩展分区不应该被主分区包围,因此要先删除掉扩展分区和一个主分区,重新划分大小(只是为了试验一下删除分区操作,现实中别这么干,数据会丢失的。。。)
分区工具 操作 /dev/sdc
fdisk /dev/sdc
p 查看当前分区。
d 命令删除一个分区
删除分区 d
Partition number (1-3, default 3): 输入要删除分区的序号 默认是最后一个。
删除了两个分区后。
重新再创建两个主分区,一个扩展分区
创建逻辑分区
使用 n 命令,这时由于四个主存储全部占用,有一个扩展分区存在,
All primary partitions are in use
Adding logical partition 5
所以默认创建一个逻辑分区,分区号5 逻辑分区序号无法设置,从5开始递增。
w保存退出
硬盘总容量=主分区(包括扩展分区)总容量 + (硬盘未使用)
扩展分区容量=逻辑分区总容量 + 未使用(扩展分区未使用)
扩展分区未全部使用,只分配给了逻辑分区 5G。
测试分区挂载。
主分区和 逻辑分区都是可以格式化后挂载的。扩展分区不行。lsblk 也可以查看硬盘和分区情况
查看硬盘分区情况,重点查看 sdc 可以看到三个主分区大小是 2G 3G 5G 扩展分区是 1K ,因为扩展分区是维护逻辑分区的表,不是用来真正存储数据的。
测试挂载 /dev/sdc1 和 /dev/sdc5 分别是一个主分区和一个逻辑分区。
格式化 分区 可以是 ext3, ext4, xfs,比如格式化成ext4。
mkfs.ext4 /dev/sdc1
mkfs.ext4 /dev/sdc5
创建挂载点
mkdir /mnt/sdc1
mkdir /mnt/sdc5
挂载
mount /dev/sdc1 /mnt/sdc1
mount /dev/sdc5 /mnt/sdc5
如果希望开机挂载就把它写入到 /etc/fstab 文件中。
vi /etc/fstab
加在末尾
/dev/sdc1 /mnt/sdc1 ext4 defaults 0 0
/dev/sdc5 /mnt/sdc5 ext4 defaults 0 0
快速挂载 /etc/fstab 中内容
mount -a
扩展逻辑分区。
这个,局限性很大,不能当做常规方法使用。 假设逻辑分区挂载到 /mnt/sdc5 然后分区空间不够用了。现在想要从5G扩容到10G。。。
取消sdc5 挂载
umount -l /mnt/sdc5
编辑 /dev/sdc 分区
fdisk /dev/sdc
p 查看分区情况,记住逻辑卷的初始扇区。
删除逻辑卷5
d
5
新建逻辑卷 5,初始扇区填写刚才查看到的, 分配10G 空间
w 保存退出
分区表重建
partprobe
调整分区
e2fsck -f /dev/sdc5 #检查分区信息
resize2fs /dev/sdc5 #调整分区大小
成功扩容,尽管成功扩容,确实很大局限性,比如如果有第二个逻辑分区。。。所以一般在创建分区时尽量计算好大小之类。
关于更改分区类型的 t 等命令,可以自己试验一下
LVM
lvm 相关链接
https://www.cnblogs.com/diantong/p/10554831.html
https://www.cnblogs.com/zhouby/p/10683974.html
基本概念
(1).LVM的工作原理
LVM(Logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。
LVM就是通过将底层的物理硬盘封装,然后以逻辑卷的方式呈现给上层应用。当我们对底层的物理硬盘进行操作时,不再是针对分区进行操作,而是通过逻辑卷对底层硬盘进行管理操作。
(2).基础术语
物理存储介质(The physical media):LVM存储介质,可以是硬盘分区、整个硬盘、raid阵列或SAN硬盘。设备必须初始化为LVM物理卷,才能与LVM结合使用。
物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。
卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。
逻辑卷LV(logical volume):类似于非LVM系统中的硬盘分区,逻辑卷LV建立在卷组VG之上。在逻辑卷LV之上建立文件系统。
物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB
逻辑块LE(Logical Extent):逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对。
LVM 常用命令
功能 | PV管理命令 | VG管理命令 | LV管理命令 |
---|---|---|---|
scan 扫描 | pvscan | vgscan | lvscan |
create 创建 | pvcreate | vgcreate | lvcreate |
display 显示 | pvdisplay | vgdisplay | lvdisplay |
remove 移除 | pvremove | vgremove | lvremove |
extend 扩展 | vgextend | lvextend | |
reduce 减少 | vgreduce | lvreduce |
注意:查看命令有scan、display和s(pvs、vgs、lvs)。s是简单查看对应卷信息,display是详细查看对应卷信息。而scan是扫描所有的相关的对应卷。
LVM 环境
将fdisk测试创建的 分区全部删除。只留两个硬盘 /dev/sdb /dev/sdc 重新创建分区用于 lvm
使用 /dev/sdb 硬盘分区,作为lvm 的存储介质。
把/dev/sdb 分成3个主分区(各占2G),一个扩展分区,再创建两个逻辑分区(各占3G)。
分完区,最好设置一下分区的类型为8e 表示最为 Linux LVM。在较老的系统中,必须设置才能使用,新系统中不必一定设置成8e了,但设置一下看上去也更直观表明分区作用 使用 t 来设置分区格式。
创建物理卷 PV
物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。
已经准备好了分区作为lvm的存储介质。现在将这些分区,创建成PV 物理卷
先将三个主分区创建成 LVM物理卷 PV
pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvcreate /dev/sdb3
使用三个主分区创建物理卷PV。创建完成pvs 查看
查看详情
pvdisplay
创建卷组 VG
卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。
卷名 PV组 可以在创建卷组的时候设置PE(LE) 大小。 只要加上 -s sizeM
比如vgcreate vg_test /dev/sdb1 /dev/sdb2 /dev/sdb3 -s 8M
即可将PE(LE)大小设置为 8M
vgcreate VG_new PV ...
创建一个卷组 名为 vg_test 由三个物理卷PV构成。
vgcreate vg_test /dev/sdb1 /dev/sdb2 /dev/sdb3
查看卷组信息
vgs
vgdisplay
可以看到卷组大小约为6G 因为是 三个2G的物理卷PV组成的。。。
创建逻辑卷LV。
现在有一个卷组了,无视掉centos,那个是系统分区时选择默认分区创建的,也是利用了lvm。不过和现在要学习的无关。。。
创建 一个逻辑卷
lv create -n Name -L Size| -l Number VG --type ?
这个lvm 逻辑卷 可以有多个种类比如 线性卷,条带卷(条带式存储),raidl等等。 在–type后注明即可。
默认不加–type 参数就是线性卷,最基础的。
在创建逻辑卷时指定逻辑卷大小的方式也有两种。
-L 指定卷组大小,后跟上卷组大小,比如 200M 2G。
-l 指定卷组占据的 PE(LE) 数目, 比如 100 2000 (如果PE大小是4M,那就是400M 8000M)
-l 还可以指定占据空闲 卷组容量的百分比 -l 100%FREE 表示占据剩余全部空间。
创建一个 卷名为 lv_test 大小为200M的卷。
lvcreate -n lv_test -L 200M vg_test
LV Path 是/dev/vg_test/lv_test 可以看做设置,要使用时挂载该设备。
注 /dev/mapper/vg_test-lv_test和/dev/vg_test/lv_test和/dev/dm-? 是一个设备。
挂载创建好的逻辑卷,文件系统使用ext4。测试扩容,缩减。
如果不使用lvm -r无法动态扩容。需先卸载挂载,扩容完成再重新挂载
创建逻辑卷 分配100M 卷 卷名lv_ext4
lvcreate -n lv_ext4 -L 100M vg_test
设置逻辑卷的 文件系统格式
mkfs.ext4 /dev/vg_test/lv_ext4
创建挂载点
mkdir /mnt/test_ext4
挂载该逻辑卷
mount /dev/vg_test/lv_ext4 /mnt/test_ext4
LV逻辑卷扩容 加上-r参数,直接将文件系统也进行扩容
当然 扩容也不能超过卷组大小
也可以使用 -L 或者 -l 两个设置大小方式,还增加了+ 不带+ 号表示扩容至XX大小,带+号表示原有基础上增加XX大小
逻辑卷扩容至200M
lvextend -L 200M /dev/vg_test/lv_ext4 -r
LV逻辑卷缩减 加上-r参数,直接将文件系统也进行缩减
逻辑卷缩减前保证文件占用空间小于缩减后的大小
lvreduce -L 100M /dev/vg_test/lv_ext4 -r
缩小至100M
不加-r 参数,需要手动扩容文件系统。
先取消挂载
umount -l /mnt/test_ext4/
扩展 逻辑卷 大小 至300M
lvextend -L 300M /dev/vg_test/lv_ext4
lvs
检查文件完整性
e2fsck -f /dev/vg_test/lv_ext4
调整文件系统大小
resize2fs /dev/vg_test/lv_ext4
重新挂载
mount /dev/vg_test/lv_ext4 /mnt/test_ext4/
可以看到 挂载大小 约为300M 为什么显示 287 换算问题。。。
不加-r 参数,需要手动缩减文件系统。
缩减时不加 -r 参数,我是没有成功。。。不知原因。
同 扩容时步骤一样
先取消挂载
umount -l /mnt/test_ext4/
缩减 逻辑卷 大小 至100M
lvreduce -L 100M /dev/vg_test/lv_ext4
lvs
检查文件完整性
e2fsck -f /dev/vg_test/lv_ext4
这一步会出错,不管输入y或者n 都会失败。执行
resize2fs /dev/vg_test/lv_ext4
会有各种错误。。。
无法完成文件系统 缩减大小。。。
最后只能重新将 逻辑卷扩容到 原来大小,重新检查文件完整性,再调整文件系统大小,重新挂载
lvextend -L 300M /dev/vg_test/lv_ext4
e2fsck -f /dev/vg_test/lv_ext4
resize2fs /dev/vg_test/lv_ext4
mount /dev/vg_test/lv_ext4 /mnt/test_ext4/
尽管手动调整文件系统缩减失败了,但是 ext4 文件系统是支持 lvm逻辑卷缩减的,加上-r参数更加方便,不用手动设置,除了xfs文件系统,其他的应该都可以缩减
挂载创建好的逻辑卷,文件系统使用xfs。测试扩容,缩减。
只能扩容 无法缩减,可以动态扩容
创建逻辑卷 lv_xfs 大小100M
lvcreate -n lv_xfs -L 100M vg_test
设置逻辑卷文件系统 为 xfs 这会格式化硬盘。所以能从ext4格式转成xfs但是数据会全部丢失。
mkfs.xfs /dev/vg_test/lv_xfs
创建挂载点
mkdir /mnt/test_xfs
挂载
mount /dev/vg_test/lv_xfs /mnt/test_xfs/
LV逻辑卷扩容 加上-r参数,直接将文件系统也进行扩容
扩容至200M
lvextend -L 200M /dev/vg_test/lv_xfs -r
LV逻辑卷扩容 加上-r参数,直接将文件系统也进行扩容,xfs文件系统会失败
lvreduce -L 100M /dev/vg_test/lv_xfs -r
至于不加-r 参数,手动修改。。。和ext4一样。
xfs不支持缩减
物理卷PV的创建删除。
物理卷创建 删除。
创建 将两个 逻辑分区创建成 物理卷
pvcreate /dev/sdb5
pvcreate /dev/sdb6
物理卷删除
只能删除 未被卷组使用的物理卷
pvremove /dev/sdb5
pvremove /dev/sdb5
卷组的 扩容缩减删除。
卷组是由 物理卷PV 组成的。因此卷组容量增缩 只用增减 PV即可。
卷组 扩容
卷组名 未使用的物理卷PV
vgextend VG PV ...
先将 两个逻辑分区再创建成物理卷
pvcreate /dev/sdb5
pvcreate /dev/sdb6
卷组扩容。
vgextend vg_test /dev/sdb5
vgextend vg_test /dev/sdb6
VG卷组缩减,去除掉PV 就可以。但是为了保证数据完整,去除掉的PV上要没有数据存在。
可以看到现在卷组vg_test 有5个PV组成,数据存放在 /dev/sdb1 这个PV中。
删减最后增加的两个PV
vgreduce vg_test /dev/sdb5 /dev/sdb6
尝试去除 /dev/sdb1 PV。
vgreduce vg_test /dev/sdb1
物理卷 /dev/sdb1 在使用中。。。
要想从卷组vg_test 中移除 物理卷 /dev/sdb1 需要先将 /dev/sdb1数据移到其他卷组 比如 /dev/sdb2
pvmove /dev/sdb1 /dev/sdb2
时间耗费挺长。完成后就可以移除 /dev/sdb2了
vgreduce vg_test /dev/sdb1
关于 物理卷数据移出,可以移到多个物理卷(当然,好像 还是会尽可能转移到第一个物理卷中,第一个卷空间不够了,会使用第二个。。。)
fdisk和parted工具的一些区别。
MBR格式的分区最多支持2TB,最多4个主分区(包括扩展分区)
GPT格式最大支持18PE,理论上分区不受限制。Windows操作系统可能会支持128个分区。注,GPT格式是没有主分区和逻辑分区之分的。都可以算作主分区。
fdisk通常用作MBR格式分区,但是也可以用来操作 GPT格式的分区划分。parted也是,主要用作GPT格式的分区。 fdisk 的操作,只有最后输入w才真正写入磁盘改变磁盘的分区表,而parted 操作是即时的。
测试fdisk 设置GPT分区格式并创建分区。
没有太大的硬盘空间,随便给虚拟机一个新增一块30G硬盘测试使用。/dev/sdc
fdisk /dev/sdc
m
查看操作帮助
1 表示 当前磁盘没有分区表,默认创建了一个 DOS分区表,这样才能展示改磁盘的数据,当然,这个分区表是没有真正写入磁盘的。只有真正创建分区并w保存后才会写入磁盘。MBR格式使用fdisk工具分区,表示应该是DOS。
2 表示 使用g 命令创建一个空的 GPT 分区表。o命令创建一个空的DOS分区表。
使用g命令创建GPT分区表。只创建分区表,不真正创建分区的话即使输入w也是不会把空表写入磁盘的。
如果使用 l 查看分区类型,可以发现,GPT与DOS分区的可设置类型也不太一样。比如GPT分区31是Linux LVM,而DOS中是8e。
创建分区的命令和 使用操作DOS 表一致 n
w保存,可以使用fdisk -l 查看。或者lsblk 查看。
可以看到已经有一个2G的分区 sdc1了。可以测试一下挂载。
先设置分区的文件系统。
mkfs.ext4 /dev/sdc1
创建挂载点
mkdir /mnt/test_fdisk_gpt/
挂载
mount /dev/sdc1 /mnt/test_fdisk_gpt/
parted 设置MBR格式分区并挂载。
再重新添加一个硬盘10G /dev/sdd 测试。。。parted也是分区工具,可以设置MBR格式分区的。
交互式操作,和fdisk工具一致。
parted /dev/sdd
parted 分区设置一个裸硬盘时,不会默认设置一个 分区表。因为parted的操作都是即时生效的。
输入 help 查看帮助
可以看到 print 是描述磁盘分区表,可用空间等,mklabel/mktable 设置磁盘分区表,mkpart 设置分区。。。等等等等。可以使用help+命令查看命令使用帮助 如
help mklabel
可以设置的 有不少,主要还是看 gpt 和 msdos 。gpt不用多说,msdos就是fdisk中显示的 dos 格式,也是MBR格式分区。
在真正分区前一定要设置分区表,否则会报错
Error: /dev/sdd: unrecognised disk label
设置硬盘分区表格式 为msdos
mklabel msdos
查看分区命令帮助。
help mkpart
(parted) help mkpart
mkpart PART-TYPE [FS-TYPE] START END make a partition
PART-TYPE is one of: primary, logical, extended
FS-TYPE is one of: btrfs, nilfs2, ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs, swsusp, linux-swap(v1),
linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5, amufs4, amufs3, amufs2, amufs1,
amufs0, amufs, affs7, affs6, affs5, affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)
START and END are disk locations, such as 4GB or 10%. Negative values count from the end of the disk. For example, -1s
specifies exactly the last sector.
'mkpart' makes a partition without creating a new file system on the partition. FS-TYPE may be specified to set an
appropriate partition ID.
(parted)
可以看到 创建一个分区,需要设置 分区类型,可选设置文件格式,起始位置,可以是大小 或者 百分比。
注,这个是分区表 为MBR格式下 来说的,如果是GPT格式分区表,是没有设置分区类型一说的,第一个参数应该是分区名字
只输入 mkpart 命令,一步一步设置
mkpart
依次让输入
(parted) mkpart
Partition type? primary/extended? # 输入分区类型 选择 主分区 primary
File system type? [ext2]? # 没什么用,选择不输入
Start? 0 # 起始位置 输入0
End? 2GB # 分区结束位置输入 2GB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore # 这是一个警告 分区未调整好,无视 输入Ignore
毕竟parted 更适合用作 gpt 格式的分区,用作 MBR 确实感觉不太好用。。。或者更深入理解一下分区表,分区表默认也是要占用空间的,因此start 可以设置成1M 之类的,给分区表 留出一定空间。具体多大,我对分区表理解不够。就不胡说了
刚才使用mkpart 命令,依次输入选项。创建了一个主分区 占据2GB大小
现在使用一条指令创建 第二个主分区
mkpart primary 2GB 5GB
没有指定 FS-TYPE ,似乎指定了也没什么效果,应该是因为分区表是msdos(MBR)格式的原因。
创建扩展分区 占据剩余空间
mkpart extended 5GB 100%
创建逻辑分区
(parted) mkpart
Partition type? primary/logical? logical
File system type? [ext2]?
Start? 5GB
End? 7GB
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 512B 2000MB 2000MB primary ext4
2 2001MB 5000MB 2999MB primary
3 5000MB 10.7GB 5738MB extended lba
5 5001MB 7000MB 2000MB logical
至于挂载什么的,和fdisk 分区后一致,先设置文件系统,创建挂载点。然后进行挂载,只有主分区和逻辑分区可以进行挂载。
大致如此。不过使用fdisk设置MBR格式分区 感觉更加方便一点
parted 工具设置 gpt格式分区。
首先,还是用 /dev/sdd 硬盘做实验。
parted /dev/sdd
设置成gpt 格式分区,由一个分区格式转换成另一个,会清空上面所有数据,因为原分区表被覆盖了。
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdd will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
创建分区 命令依然是 mkpart。依旧是直接执行mkpart 不加任何指令
mkpart
appropriate partition ID.
(parted) mkpart
Partition name? []? p1
File system type? [ext2]?
Start? 0
End? 1GB
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 1000MB 1000MB p1
(parted)
和MBR格式分区不同的是第一个让输入的不是分区类型,而是分区名。这个分区名也可以不设置,可以为空。。。
因为gpt是不分主分区与扩展分区的。而且理论可以设置无限个主分区。由于操作系统限制可能达不到,但是也远超MBR格式分区。
删除原分区
rm 1
测试创建10个 分区
mkpart [分区名] start end
mkpart p1 1MG 1GB
mkpart p2 1GB 2GB
mkpart p3 2GB 3GB
mkpart p4 3GB 4GB
mkpart p5 4GB 5GB
mkpart p6 5GB 6GB
mkpart p7 6GB 7GB
mkpart p8 7GB 8GB
mkpart p9 8GB 9GB
mkpart p10 9GB 100%
查看分区
print
可以使用lsblk 查看 该硬盘的分区情况
[root@lvmtest1 ~]# lsblk /dev/sdd
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 0 10G 0 disk
├─sdd1 8:49 0 953M 0 part
├─sdd2 8:50 0 953M 0 part
├─sdd3 8:51 0 954M 0 part
├─sdd4 8:52 0 954M 0 part
├─sdd5 8:53 0 953M 0 part
├─sdd6 8:54 0 954M 0 part
├─sdd7 8:55 0 954M 0 part
├─sdd8 8:56 0 953M 0 part
├─sdd9 8:57 0 954M 0 part
└─sdd10 8:58 0 1.6G 0 part
测试挂载其中一个 比如 /dev/sdd6
创建挂载点
mkdir /mnt/test_parted_gpt
设置文件系统
mkfs.ext4 /dev/sdd6
测试挂载
mount /dev/sdd6 /mnt/test_parted_gpt/