磁盘分区
知识点
- 使用fdisk、gdisk及parted创建和修改MBR和GPT分区
- mkfs、mke2fs、tune2fs格式化及修改文件系统
- 设备挂载与配置
- 创建和管理交换空间
分区冷知识
- 数据盘可以只用扩展分区,但是系统硬盘不行,必须要有活动主分区
- 磁盘分区编号,主分区和扩展分区编号删除某一个,编号不会被替换,逻辑分区的编号会被替换,所以分区的名称是不稳定的,使用设备时不建议用设备名,因为可能不固定,使用UUID,相对稳定
- 早期CentOS系统是以柱面为单位划分磁盘的,6版本开始存在跨柱面情况,5版本不允许。
- fdiskf分区时后面跟的设备是磁盘不是分区
- 分区标签不会影响磁盘使用,基于严谨建议按建议给定。lvm逻辑分区为8e,raid为fd,
- 每个分区第一个扇区是引导扇区(boot sector),存一些必要数据
1. parted命令
parted的操作都是实时生效的,小心使用
- 格式:parted [选项]…[设备[命令[参数]…]…]
- 选项
- -l 列出所有的块设备
- -v 显示版本
- -s 不提醒用户干预
- -h 显示帮助
- -a 新分区对齐
命令:
- mklable|mktable gpt|msdos
创建分区表
例1:parted /dev/sdb mklabel gpt|msdos - print
打印磁盘信息
例2:parted /dev/sdb print - mkpart [primary|logical|extended] [ext4|vfat|xfs] START END
创建分区
例3:parted /dev/sdb mkpart primary 1 200 (默认M) 创建分区第1到第200M - rm NUMBER
删除分区NUMBER为分区编号
例4:parted /dev/sdb rm1
- mklable|mktable gpt|msdos
实验:
克隆磁盘sda分区信息至sdb磁盘,快速创建格式相同的分区,只能是小的分区信息克隆给大的,不然会出错。1、$lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 30G 0 part /data ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 3G 0 part [SWAP] 2、$parted /dev/sdb print Number Start End Size File system Name Flags <==没有分区 3、$dd if=/dev/sda of=/dev/sdb bs=1 count=512 <==复制磁盘a前512字节到b 4、$lsblk <==逻辑分区的分区信息不再前512字节,所以没有5 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 30G 0 part /data ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 3G 0 part [SWAP] sdb 8:16 0 100G 0 disk ├─sdb1 8:17 0 1G 0 part ├─sdb2 8:18 0 50G 0 part ├─sdb3 8:19 0 30G 0 part └─sdb4 8:20 0 1K 0 part
2. 分区工具fdisk和gdisk
这两个工具操作很类似,gdisk擅长管理GPT分区,而fdisk用来管理MBR分区,这两个命令执行后是交互式的,内部有说明数据来操作。
1. gdisk [-l] device 类fdisk的GPT分区管理工具
2. fdisk /dev/sdb MBR分区管理工具
- 分区查看方法(以磁盘sdb为例)
有可能会出现分区后,内存和硬盘不统一的
- 内存中生效的分区,系统识别
ls /dev/sdb
cat /proc/partitions
lsblk - 硬盘中生效的
fdisk -l /dev/sdb
parted /dev/sdb print
gdisk -l /dev/sdb
- 内存中生效的分区,系统识别
- 分区同步方法(以磁盘sdb为例)
- CentOS5/7中
命令:partprobe - CentOS6中
命令:partx -a /dev/sdb同步增加分区
命令:partx -d –nr 6-8 /dev/sdb 同步删除分区时(6-8为分区号) - 重启客户端
- CentOS5/7中
gdisk [-l] device
选项:
-l 列出指定设备的分区,然后退出$gdisk /dev/sdb <==不加选项,进入分区交互界面 ... <==省略 1、Command (? for help): <==可以打开子命令帮助 p 分区列表 t 更改分区类型 L可以列出所有标签,t后输入标签号回车就可以变更,系统默认发的ID标签,扩展分区5,swap分区82 n 创建新分区 d 删除分区 v 校验分区 u 转换单位 w 保存 q 不保存并退出 2、Command (? for help): n <==增加分区 3、Partition number (1-128, default 1):1 <==分区号,随意指定,习惯上从1开始 4、First sector (34-209715166, default = 2048) or {+-}size{KMGTP}: <==开始的扇区,这里习惯采用size写法,跳过这里直接回车 5、Last sector (2048-209715166, default = 209715166) or {+-}size{KMGTP}:+10G <==结束的扇区,采用size写法,在原有基础上+10G的分区,不需要数原来的基数 6、Hex code or GUID (L to show codes, Enter = 8300): <==指定一个codes,L可以查看所有编号,这里默认 7、Command (? for help): w <==保存分区 8、Do you want to proceed? (Y/N): <==确认退出
fdisk -l [-u] [device…]
选项:
-l 列出指定设备的分区,然后退出
-c 不按DOS格式显示分区信息,可以忽略跨柱面报警信息,7中默认
-u 指定以扇区为计算单位,7中默认为扇区,-u=cylinders来以柱面显示$fdisk /dev/sdb <==不加选项,进入分区交互界面 1、Command (m for help): n <==获取帮助是m和help 2、Partition type: <==MBR分区会让选择分区类型 p primary (0 primary, 0 extended, 4 free) e extended 3、Select (default p): e <==是可以直接分扩展分区的 4、Partition number (1-4, default 1): 1 <==分