开发者学堂课程【Linux 磁盘与文件系统管理:分区管理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/589/detail/8328
分区管理
内容介绍:
一、管理分区
二、parted 命令
三、分区工具 fdisk 和 gdisk
四、同步分区表
五、文件系统
六、编辑二进制文件
七、文件系统类型
八、文件系统选择
九、创建文件系统
一、管理分区
1. 列出块设备:Isblk
2. 创建分区使用:
(1)fdisk 创建 MBR 分区
(2)gdisk 创建 GPT 分区
(3)parted 高级分区操作
3. 重新设置内存中的内核分区表版本: partprobe
二、parted 命令
1. parted 的操作都是实时生效的,小心使用
2. 用法: parted[选项]..[设备[命令[参数]...]...]
parted/dev/sdb mklabel gptmsdos
parted /dev/sdb print
parted/dev/sdb mkpart primary 1200(默认M)
parted /dev/sdb rm 1
parted-I
列出分区信息
三、分区工具 fdisk 和 gdisk
1. gdisk/dev/sdb 类 fdisk 的 GPT 分区工具
2. fdisk -l[-u][device...] 查看分区
3. fdisk/dev/sdb 管理分区
4. 子命令:
>p 分区列表
>t 更改分区类型
>n 创建新分区
>d 删除分区
>V 校验分区
>u 转换单位
>W 保存并退出
>q 不保存并退出
fdisk 与 gdisk 工具相对于 parted 更安全一点,因为 fdisk 进行操作硬盘分区时不是立即生效。
Fdisk Usage:
fdisk [options]change partition table
fdisk foptionsi -l list partition table(s)
fdisk -sgive partition size(s) in blocks
fdisk + 选项 + 磁盘(必须加上磁盘才能进行操作)
例如: fdisk [options]
-l 选项为列出指定磁盘的分区
例如:fdisk [options] -l
Fdisk -l /dev/sda 有许多分区
Fdisk -l /dev/sdb 为空分区
下面为 sdb 硬盘划分分区:
输入 fdisk /dev/sdb(无需添加-l),出现的是交互式方式,提示当前设备不包括已经识别的分区表,将创建新的DOS磁盘标签。
输入m将出现支持的目录列表,列表如下:
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
u change display/entry units
v verify the partition table
w rite table to disk and exit
x extra functionality(experts only)
例如:p 为显示当前分区表
输入 n 添加新分区,显示 p primary(主分区),e extended(扩展分区)
输入 p/e 添加分区,接着输入分区大小的起始位置,接着会出现分区的三种格式:
(1)last sector 多少扇区
(2)+secyors 增加多少扇区
(3)+size{K,M,G} 增加多少容量
输入 d 可删除分区,分区名称会自动向前移动,表明分区名称不稳定。
退出方式有两种:
(1)存盘退出:w(2)不存盘退出:q
查看分区:
(1)lsblk
(2)ls /dev/sdb* 设备名
(3)cat /proc/partitions 分区信息
(4)Fdisk -l /dev/sdb
前三种方法看到的是内存中的信息,第四种看到的是硬盘上的分区信息。
如果出现操作上的异常,可能硬盘上的分区表和内存中的分区表并不一致。在磁盘上改文件后,不会立即放到内存中,造成内存硬盘不同步。
利用命令 partitions 进行同步。利用 uptime 查看开机多长时间。
Linux6 与 Linux7 不同的是以柱面为单位。Linux6 命令 partitions 进行同步不可取,使用 partx -a /dev/sda 增加分区,partx -d --nr + 名称 /dev/sda 删除分区实现同步。
gdisk 命令与 fdisk 命令大同小异
gdisk 命令擅长管理 g,t,p 分区
输入 gdisk /dev/sdc 显示支持四种分区:MBR,BSD,APM,GPT
分完区后可以利用 gdisk -l /dev/sdc 查看分区信息
输入 t 可以修改系统 id
四、同步分区表
1. 查看内核是否已经识别新的分区
cat/proc/partations
2. centos6 通知内核重新读取硬盘分区表
新增分区用:
Partx -a/dev/DEVICE
Kpartx -a/dev/DEVICE -f:force
删除分区用:
partx-d--nrM-N/dev/DEVICE
3. CentOS5,7:使用 partprobe
partprobe[/dev/DEVICE]
五、文件系统
1. 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;
即在存储设备上组织文件的方法。
操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统.
2. 从系统角度来看,
文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志(作用:把数据的操作过程记录下来),压缩,加密(Windows中NTFS功能,鼠标右键单击属性,高级进行加密,变绿色完成加密,双击自动解密)等。
日志的工作原理:
(1)把硬盘的文件读入到内存中
(2)在硬盘内存中进行修改
(3)写到磁盘中/写到日志中再写到磁盘中
3. 支持的文件系统:/lib/modules/`uname -r`/kernel/fs
4. 各种文件系统:
https://en.wikipedia.org/wiki/Comparison of file systems
没有文件系统分区也可以使用,但是只能基于二进制方式来使用,文件系统就是把数据以文件的方式进行组织,只有创建了文件系统的方式,才能支持文件的出现,才有文件的概念。
文件系统最基本的特性:把磁盘上的数据以文件方式进行管理。
六、编辑二进制文件
1. 以二进制方式打开文件
vim-b binaryfile
2. 扩展命令模式下,利用 xxd 命令转换为可读的十六进制
:%!xxd
3. 编辑二进制文件
4. 扩展命令模式下,利用 xxd 命令转换回二进制
:%!xxd -r
5. 保存退出
七、文件系统类型
1. Linux 文件系统:
(1)ext2(Extended file system):适用于那些分区容量不是太大,更新也不频繁的情况例如/boot 分区
(2)ext3 是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统
(3)ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB 的文件系统,以及速度的提升
(4)xfs:SGI,支持最大 8EB 的文件系统
(5)btrfs(Oracle),reiserfs,jfs(AIX),swap
2. 光盘: iso9660
3. Windows:FAT32(不支持太大的文件),exFAT(支持 U 盘,usb 接口),NTFS(微软)
4. Unix:FFS(fast),UFS(unix),JFS2
5. 网络文件系统: NFS,CIFS
6. 集群文件系统: GFS2,OCFS2(oracle)
7、分布式文件系统:
分布式文件系统存放,按比例存放
fastdfs,ceph,moosefs,mogilefs,glusterfs,Lustre
8. RAW:
未经处理或者未经格式化产生的文件系统(追求高性能环境下可使用RAW,数据存放在磁盘上并未表现文件,为0101)
9. 根据其是否支持 "journal" 功能:
日志型文件系统: ext3,ext4,xfs,…
非日志型文件系统: ext2,vfat
10. 文件系统的组成部分:
内核中的模块: ext4,xfs,vfat
用户空间的管理工具: mkfs.ext4,mkfs.xfs,mkfs.vfat
11. Linux 的虚拟文件系统: VFS,如下图所示:
每个硬盘上文件系统是不一样的,但是对于用户来讲,无论任何系统都会使用LS查看文件列表,ls 系统并不会直接和文件系统打交道,而是和虚拟文件系统打交道,把指令发给虚拟文件系统,虚拟文件系统再去访问不同的文件系统,作为内核来讲,把虚拟文件系统和不同文件系统做相应的管理。
12. 查前支持的文件系统: cat/proc/filesystems
八、文件系统选择
类型 |
支持限制 |
Root分区 |
Boot分区 |
注释 |
单节点 |
|
|
|
|
XFS |
5OOTB |
Yes |
Yes |
默认分区格式 |
Ex14 |
5OTB |
Yes |
Yes |
兼容Ext3,Ext2 |
brtfs |
5OTB |
Yes |
Yes |
技术预览 |
网络/多节点 |
|
|
|
|
GFS2 |
2-16个节点 |
Yes |
Yes |
群文件共享存储 |
九、创建文件系统
1
mkfs命令:
(1)mkfs.FS_TYPE/dev/DEVICE
ext4,xfs,btrfs vfat
(2)mkfs-t FS TYPE/dev/DEVICE
-L'LABEL' 设定卷标