磁盘管理基础-分区设置
磁盘管理命令
df
格式:df [选项]
-a 显示所有文件系统(包含特殊的proc)
-h 常见单位显示大小df
-T 显示挂载的文件系统类型
du
格式: du [选项] 目录
-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
-h 常见单位显示大小xfs
-s 统计总占用和,不再列出子文件的占用量
fsck
格式: fsck -y 分区名 (开机就启动检查)
fsck 属于自动修复出现问题的文件系统(仅限centos 6.x) 仅支持(ext系列的)
dumpe2fs
格式: dumpe2fs -h 分区名(查看ext4类文件系统分区信息的)
显示重点:
卷标、挂载点、UUID、挂载参数、文件系统状态
inode总量/空闲、block总量/空闲、单block 的大小等。
此命令适用于ext4文件系统类型,不支持xfs
stat
格式: stat 文件名 # 显示文件的详细信息
文件名、文件大小、占用block数量、单block的大小、所在设备编号、inode号、硬链接数、权限、属主、属组、访问时间、数据修改时间、状态修改时间
file命令
格式: file 文件名 # 判断文件更详细的类型
type
格式: type 命令名称 # 判断命令是外部命令还是shell内置命令
xfs_info
xfs_info 分区名称 # 显示xfs文件系统 相关分区的详细信息(专属centos 7.x)
xfs_repair
xfs_repair 选项 分区名称 #检测并修复xfs文件(专属centos 7.x) 分区必须处于卸载状态
-d:专门针对/分区的修复,但必须在单用户模式修复
查看磁盘、分区等信息
mount # 查看已挂载的所有设备
blkid:# 列出所有分区的uuid号
lsblk:# 列出分区的结构图
分区命令
XFS文件系统
xfs文件系统是一种高性能的日志文件系统,工作原理和ext4基本一致;相较而言,xfs的格式化速度较为快速,非常适合目前磁盘空间很大的情况。
# xfs文件系统的三部分:
1.数据区(Data section):类似于ext4文件系统的块组
2.文件系统活动登录区(Log section):记录文件变化,最终将变化同步到数据块
3.实时运行区(Realtime section):默认64k(4k-1G),作用类似于缓存,数据先保存在此处,对应文件的块和inode分配完成后将数据移到指定位置
fdisk
$ fdisk -l #查看系统所有硬盘及分区的详细信息
$ fdisk -l /dev/sda # 查看指定磁盘的详细信息和分区信息
$ fdisk 磁盘名称(/dev/sda) #创建或修改磁盘的分区结构
# 注意:fdisk命令对某磁盘进行分区是,默认启用的是MBR分区表结构
# 进入后命令选项
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)额外功能(仅限专家)
partprobe
$ partprobe 磁盘名 #将磁盘的最新分区状况发送给内核
警告提示:若提示Device or resource busy. The kernel still uses the old table.The new table will be used at the next reboot。也可不必重启,卸载重新挂载,从而解决设备占用的问题。
命令不存在时请安装:parted-*-*.rpm
mkfs
格式:mkfs 选项 分区名称
-t 文件系统 # 指定文件系统类型ext3、ext4、xfs等
# 若不指定-t,默认是ext3
# mkfs命令非常简单易用,不过不能调整分区的默认参数(比如块大小是4096)
$ mkfs.xfs=mkfs -t xfs
例:
mkfs -t xfs /dev/sdb1
mke2fs
格式:mke2fs 选项 分区名称
-t 文件系统:指定格式化成哪种文件系统类型ext3、ext4、#暂不支持xfs
-b 字节:指定格式化时,每个block 的大小
-i 字节:指定多少字节分配一个inode号
#使用-i 指定分区的inode数量时,必须同时指定block的大小
例:
mke2fs -t ext4 -b4096 -i4096 /dev/sdb1
MBR分区创建过程
1)创建分区
$ fdisk /dev/sdb
# 创建主分区
n-p-1-起始点-结束点
# 创建扩展分区
n-e-2-起始点-结束点
# 创建逻辑分区
n-1-起始点-结束点
2) 格式化
$ mkfs -t ext4 /dev/sdb1
$ mkfs.ext4 /dev/sdb1
3)挂载
/etc/fstab
设备文件名(UUID)
挂载点
文件系统类型
挂载特殊选项
是否备份: 0 不备份 1 每天备份 #备份
是否检查磁盘状态: 0 不检查 1 启动时检查 2 启动后检查
4)查看
$ df -h
分区表
常见分区表分类
Linux中常见的分区表类型有两种: MBR(主引导记录分区表) 、GPT(全局唯一标识磁盘分区表)
# 两种分区表的区别:
MBR:磁盘最大识别到2TB;最多四个主分区,或三主一扩展
GPT:可支持2TB以上的磁盘;分区数无限制、windows最大支持128分区,最大识别9.44ZB磁盘
早期的磁盘寻址方式为CHS,即磁头/柱面/扇区式寻址(从n柱面的1扇区开始数+++)
现在则使用LBA(逻辑区块地址)进行寻址,MBR、GPT均使用此种结构进行编址、寻址
LBA从LBA0开始一直往后计算,接下来的GPT分区表我们就用LBA表示
GPT分区表
GPT(GUID Partition Table)其含义为“全局唯一标识磁盘分区表”,主要用来代替MBR分区表,突破存储限制产生。
GPT分区表的构成:
LBA 0 :GPT分区的最开头(第一个扇区),考虑兼容性问题,开头仍然存放MBR分区表,只是里面存放有0xEE标识,以此声明该磁盘使用的是GPT分区表。
LBA 1 :存储了硬盘的总存储空间,以及GPT分区表的信息,定义最多能创建128个分区(windows),每个分信息占用的空间是128字节;128个分区中有一个是用来存储备份分区表的,所以可以手动指定的分区数为127个分区。
LBA 2-33:每个分区信息存放的位置,上边说了每个分信息占用的空间是128字节。2-33正好是32个扇区。32*512=16384,每个分区信息占用了128字节,16384/128=128个分区。
LBA 34:后面是第一个分区的开始
分区命令-parted
交互指令 |
作用 |
cp |
将文件系统复制到另一个分区 |
help |
打印通用求助信息 |
mklabel |
创建新的磁盘标签 (分区表) |
mkfs |
创建文件系统 |
mkpart |
创建一个分区 |
mkpartfs |
创建一个带有文件系统的分区 |
move |
移动分区 |
name |
将分区命名为“xx” |
print |
打印分区表,或者分区 |
quit |
退出程序 |
resize |
改变分区中文件系统的大小 |
rm |
删除分区 |
select |
选择要编辑的设备 |
set |
改变分区的标志 |
$ parted 磁盘名称 # 进入磁盘交互命令
1)修改分区表为GPT
$ mklabel gpt
2)创建新分区
$ mkpart
分区名称? []? disk1
文件系统类型? [ext2]? 起始点? 1MB
结束点? 5GB
3)分区格式化
$ mkfs.xfs 磁盘
4)删除指定分区
$ rm
分区编号? 1 (parted) print
分区命令---gdisk
交互指令 |
作用 |
b |
将GPT数据备份到一个文件 |
c |
更改分区名称 |
d |
删除一个分区 |
i |
显示分区详细信息 |
l |
列出已知分区类型。此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83)。还有一个8e00是Linux LVM |
n |
增加一个新的分区 |
o |
创建一个新的空白的GPT分区表 |
p |
显示当前磁盘的分区表 |
q |
退出gdisk程序,不保存任何修改 |
r |
恢复和转换选项(仅限专家) |
s |
排序分区 |
t |
改变分区的类型 |
v |
验证磁盘分区表 |
w |
将分区表写入分区表并退出(保存并退出) |
x |
额外功能(仅限专家) |
? |
显示帮助信息 |
# 创建一个新分区
$ gdisk /dev/sdd
# 将分区信息更新到内核
$ partprobe
# 格式化分区
$ mkfs.xfs /dev/sdd1
# 挂载
$ /etc/fstab
gdisk创建swap分区
# 查出swap类型的分区编号
$ gdisk /dev/sdd ===>l==>8200
# 创建swap分区
$ gdisk /dev/sdd
n-2-起始点-结束点-8200-p-w
# 格式化swap分区
$ partprobe /dev/sdd
$ mkswap /dev/sdd2
# 查看当前swap分区的使用情况!
$ free -h
# 启用swap分区
$ swapon /dev/sdd2
$ free -h`
# 设置自动挂载
添加到/etc/fstab,让swap分区自动挂载
UUID=41745d4a-ac53-4054-be0c-0b3f32601068 swap swap defaults 0 0
# 写入/etc/fstab后生效的方式:
swap挂载信息没有挂载点
1. swapon 分区名
2. reboot