-
硬盘分区
分区优势
分区工具
fdisk
gdisk分区类型
MBR分区
GPT分区同步分区表
cat /proc/partations -
文件系统
文件系统类型
ext2
ext3
ext4
xfs
swap创建文件系统命令
mkfs
创建ext文件系统命令
mke2fs
tune2fs -
挂载mount
说明:
挂在方法:
格式:
常用命令选项: -
分区实验
分区说明
MBR分区实验
分区步骤:
GPT分区实验
分区步骤: -
swap分区实验
swap硬件分区
分区说明
分区步骤 -
命令相关
磁盘管理命令 parted
*文件的破坏和销毁
*dd命令用法示例
-
正文↓↓↓↓
-
硬盘分区
分区优势:
分区工具fdisk和gdisk优化I/O性能 实现磁盘空间配额限制 提高修复速度 隔离系统和程序 安装多各个OS 采用不同的文件系统
分区类型gdisk /dev/sdb 类fdisk 的GPT分区工具 fdisk -l [-u] [device...] 查看分区 fdisk /dev/sdb 管理分区 子命令: p 分区列表 t 更改分区类型 n 创建新分区 d 删除分区 v 校验分区 u 转换单位 w 保存并退出 q 不保存并退出 创建分区使用 fdisk 创建MBR分区 gdisk 创建GPT分区
MBR分区 特点: MBR分区中一块硬盘最多有4个主分区,也 区+1扩展(N个逻辑分区) 0磁道0扇区: 512bytes 446bytes:boot loader 64bytes:分区表,其中每16bytes标识一个分区 2bytes:55AA 分区表结构:
GPT分区
特点:
GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64
位,8Z(512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(UniversallUnique Identifier) 表示磁盘和分区 GPT分区表
自动备份在头和尾两份,并有CRC校验位
UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持
GPT,使操作系统启动
分区表结构:
同步分区表
查看内核是否已经识别新的分区
cat /proc/partations
centos6通知内核重新读取硬盘分区表新增分区用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用
partx -d --nr M-N /dev/DEVICE
CentOS 5,7: 使用partprobe
partprobe [/dev/DEVICE]
文件系统类型
ext2:
适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
ext3:
是ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢
复。它通常被用作通用的文件系统
ext4:
是ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和
使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
xfs:
SGI,支持最大8EB的文件系统
根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
采用优化算法,日志记录对整体文件操作影响非常小
是一个全64-bit的文件系统,最大可以支持8EB的文件系统
能以接近裸设备I/O的性能存储数据
swap:
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的
RAM 保存系统处理的数据时会将数据写入 swap 分区
创建文件系统命令
mkfs命令:
(1) mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat
(2) mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 设定卷标
创建ext文件系统命令
(1)mke2fs : ext系列文件系统专用管理工具
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2:048|4096} 指定块大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性
-O ^FEATURE 关闭指定特性
(2)tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息;super block
-L 'LABEL’ 修改卷标
-m # 修预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用, –O ^has_journal
-o 调整文件系统的默认挂载选项,–o ^acl
-U UUID 修改UUID号
dumpe2fs:显示ext文件系统信息,将磁盘块分组管理
-h:查看超级块信息,不显示分组信息
xfs_info:显示已挂载的 xfs 文件系统信息
xfs_info mountpoint
-
挂载mount
说明: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此 目录做为其它文件访问入口的行为 挂载方法: mount DEVICE MOUNT_POINT 格式: mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要挂载的设备; (1) 设备文件:例如/dev/sda5 (2) 卷标:-L 'LABEL', 例如 -L 'MYDATA' (3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7- 85c0-a126711d406e' (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs 常用命令选项 : -t vsftype 指定要挂载的设备上的文件系统类型 -r readonly,只读挂载 -w read and write, 读写挂载 -n 不更新/etc/mtab,mount不可见 -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件 中,且挂载选项中有auto功能) -L 'LABEL' 以卷标指定挂载设备 -U 'UUID' 以UUID指定要挂载的设备 -B, --bind 绑定目录到另一个目录上 查看内核追踪到的已挂载的所有设备 cat /proc/mounts
-
分区实验
分区说明:
步骤一:给虚拟机添加一块硬盘 步骤二:使用fdisk或gdisk命令给新增硬盘分区 步骤三:使用mkfs.xfs命令制作文件系统 步骤四:使用mount命令挂载文件系统并使用
MBR分区
步骤一:
1、双击图示此处 (也可在库页面列表选择要添加硬盘的主机名右键选择设置)
2、
3、向导页面中选择添加硬盘
4、选择磁盘类型 默认即可
5、设定新增硬盘的大小 建议容量大于100GB
6、
7、确定新增硬盘
8、返回页面查看新增的虚拟机
8、 使用lsblk命令查看新增硬盘 到此步骤一完成
步骤二:
1、
# fdiak /dev/sdb
2、
3、
4、
5、
6、
7、查看分区的结果
8、
通知内核读取更新的分区表:
# partprobe /dev/sdb
9、
查看分区表是否更新:
# cat /proc/partitions
成功分区后,就可以制作文件系统了。
步骤三:使用mkfs.xfs命令制作文件系统
1、新增磁盘分区完成后,开始制作文件系统。
# mkfs.xfs /dev/sdb1
2、使用blkid命令查看分区类型
sdb1分区已经创建完成,接下来就可以挂载分区后正常使用了。
步骤四:使用mount命令挂载文件系统并使用
1、挂载新硬盘分区
创建/dev/sdb1分区的挂载点:
# mkdir /magedu_data
2、
挂载/dev/sdb1分区:
# mount /dev/sdb1 /magedu_data
使用lsblk命令查询sdb1的挂载情况
3、使用df -h命令查看磁盘分区
4、配置开机自动挂载
挂载完成后,记住要写在/etc/fstab配置文件里,使其新增磁盘分区在开机后能自动挂载。
# vim /etc/fstab
↓↓↓↓↓↓↓↓↓↓↓
/dev/sdb1 /magedu_data xfs defaults 0 0
5、检查配置文件语法:
[root@Magedu ~]# mount -a
执行该命令后,没有报错,说明配置文件正确,能开机自动挂载,到此整个新增
硬盘、分区、制作文件系统以及自动挂载配置全过程完成结束。
6、退出分区后同步分表
(退出分区后一定要同步分区表)
# partprobe
7、查看分区表是否已更新
# cat /proc/partations
GPT分区实验
步骤:
1、进入分区命令界面
# gdisk /dev/sdb
2、分区后,就看制作文件系统,并挂载使用了,过程步骤同MBR分区实验,此处不做冗余介绍。
-
swap分区实验
swap硬件分区
分区说明
swap读写优先级以指定swap分区0到32767的优先级,值越大优先级越高 如果用户没有指 定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加 入一个新的没有用户指定优先级的swap,会给这个优先级减一 先添加的 swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的 优先级(是正数)永远高于核心缺省指定的优先级(是负数)。
分区步骤
1、 对新增的硬盘分出1G空间的分区# echo -e "n\n\n\n+1G\nt\n\n82\nw\n" | fdisk /dev/DEVICE
2、格式化新增设备的文件系统
# mkswap /dev/DEVICE
3、swapon /dev/DEVICE 挂载swap分区到设备
执行或没有命信息提示则表示挂载成功
4、 写入设备配置文件
# vim /dev/sdb1
5、查询swap使用情况及优先级
swapon
注:(设备sda5的优先级最高 但按照磁盘读取顺序来分 sdb1的速度更快一点
可以手动修改优先级)
6、手动修改优先级
修改前先停用要修改的设备
#swapoff /dev/sdb1
7、swapon -p # /dev/DEVICE 修改设备优先级
(1)可以指定swap分区0到32767的优先级,值越大优先级越高
# swapon -p 2 /dev/sdb1 * 将sdb1的设备优先级指定为"2"
(2)swapon -s 查看设备优先级修改情况
8、将挂载配置写入配置文件
UUID= swap swap pri= (优先级) 0 0
(r!blkid /dev/DEVICE)获取指定设备的UUID
pri= # 指定设备存储优先级
9、启用swap分区
#swapon -a
10、 查看当前正在使用的swap分区
cat /proc/swaps
或
swapon -s
-
相关命令
一、磁盘类相关工具1) parted 2)dd、du和df
1) parted
parted的操作都是实时生效的,小心使用
用法:part [选项]... [设备[命令[参数]...]...]
例:
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print 打印分区信息
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1 删除sdb硬盘下的1分区
parted -l 列出分区信息
2)dd、du和df
工具df
文件系统空间占用状态的查看工具
df [OPTION]...[FILE...]
-H 以10为单位
-T 查看文件系统
-h human-readable
-i inodes instead of blocks
-P 以Posix兼容的格式输出
工具du
某个目录总体空间占用状态的查看工具
du [OPTION]...[DIR]
-h human-readable
-s summary
--max-depth=# 指定目录深度层级
工具dd
命令格式:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
常用选项:
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
功能实例:
1、备份文件
用法:
# dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
例:
# dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
备份MBR分区表
例:
# dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
2、恢复文件
用法:
# dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
例:
gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘
* 3、破坏文件
破坏MBR中的bootloader
# dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
*例:快速删除分区表
# dd if=/dev/zero of=/dev/DEVICE bs=1 count=66 seek=446
* 例:销毁磁盘数据
# dd if=/dev/urandom of=/dev/sda1
* 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作
以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行
* 测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
* 测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null