磁盘管理
一、磁盘相关知识介绍
? 作用: 实现数据的持久化存储,磁盘存储数据的最小单位:数据块 block 4k
1、磁盘表示方法
/dev/sda
ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Dec 21 09:03 /dev/sda
sd: 磁盘接口 scsi, sata, sas
scsi: 640M/s
SATA: 6G/s
SAS: 6G/s
机械硬盘
转速 以分钟为单位 rpm
固态硬盘 SSD
2、磁盘分区表示方法
分区类型:
主分区
扩展分区
主分区 + 扩展分区 <= 4
扩展分区最多1个
逻辑分区
3、文件系统 file system
windows的文件系统:
NTFS
FAT32
支持的最大单个文件大小为4G
Linux的文件系统:
ext4, xfs, swap, fat32
4、挂载
将块设备文件中的文件系统挂载到空目录,通过操作空目录来实现操作磁盘中的文件
二、磁盘管理操作指令
1、查看磁盘信息
[root@shane ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 8.1G 0 rom
扇区 sector, 一个扇区 == 512B, 数据块 = 8个扇区 4K
[root@shane ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0000ca81
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 41943039 20458496 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
2、管理磁盘分区
fdisk 硬盘名称
[root@shane ~]# fdisk /dev/sdb
n 新建分区
d 删除分区
p 查看分区
w 保存退出
q 不保存退出
t 修改分区ID, 默认83
3、创建文件系统
mkfs -t 文件系统类型 块设备文件名称
[root@shane ~]# mkfs -t ext4 /dev/sdc2
4、挂载
mount 块设备文件名称 挂载点
[root@shane ~]# mount /dev/sdb2 /webdata
5、磁盘分区管理实例
主分区 500M 文件系统 ext4 挂载点 /web
主分区 500M 文件系统 ext4 挂载点 /mysql
逻辑分区 500M 文件系统 xfs 挂载点 /kvm
逻辑分区 500M 文件系统 xfs 挂载点 /python
1、 创建分区
[root@shane ~]# fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M
Partition 1 of type Linux and of size 500 MiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (1026048-20971519, default 1026048):
Using default value 1026048
Last sector, +sectors or +size{K,M,G} (1026048-20971519, default 20971519): +500M
Partition 2 of type Linux and of size 500 MiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): e
Partition number (3,4, default 3): 3
First sector (2050048-20971519, default 2050048):
Using default value 2050048
Last sector, +sectors or +size{K,M,G} (2050048-20971519, default 20971519):
Using default value 20971519
Partition 3 of type Extended and of size 9 GiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (2052096-20971519, default 2052096):
Using default value 2052096
Last sector, +sectors or +size{K,M,G} (2052096-20971519, default 20971519): +500M
Partition 5 of type Linux and of size 500 MiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 6
First sector (3078144-20971519, default 3078144):
Using default value 3078144
Last sector, +sectors or +size{K,M,G} (3078144-20971519, default 20971519): +500M
Partition 6 of type Linux and of size 500 MiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks
[root@shane ~]# partprobe /dev/sdb //让内核识别硬盘分区的变化
[root@shane ~]# lsblk | grep "sdb"
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 500M 0 part
├─sdb2 8:18 0 500M 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 500M 0 part
└─sdb6 8:22 0 500M 0 part
2、 创建文件系统/格式化
[root@shane ~]# mkfs -t xfs /dev/sdb1
[root@shane ~]# mkfs -t ext4 /dev/sdb2
[root@shane ~]# mkfs.ext4 /dev/sdb5
[root@shane ~]# mkfs.xfs /dev/sdb6
3、挂载使用
[root@shane ~]# mount /dev/sdb1 /web/
[root@shane ~]# mount /dev/sdb2 /mysql/
[root@shane ~]# mount /dev/sdb5 /kvm/
[root@shane ~]# mount /dev/sdb6 /python/
4、 查看磁盘挂载信息/容量使用信息
[root@shane ~]# mount
[root@shane ~]# df -hT //查看磁盘容量的使用情况
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 18G 5.7G 12G 33% /
devtmpfs devtmpfs 473M 0 473M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 7.2M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 154M 344M 31% /boot
tmpfs tmpfs 98M 12K 98M 1% /run/user/42
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 ext4 477M 2.3M 445M 1% /web
/dev/sdb2 ext4 477M 2.3M 445M 1% /mysql
/dev/sdb5 xfs 497M 26M 472M 6% /kvm
/dev/sdb6 xfs 497M 26M 472M 6% /python
5、 卸载
umount /dev/sdb1
三、实现磁盘开机自动挂载
查看磁盘UUID
[root@shane ~]# blkid /dev/sdb5
/dev/sdb5: UUID="52533270-779d-4750-8e15-dd9b47617b52" TYPE="xfs"
配置文件 /etc/fstab
格式:
块设备文件名称/UUID 挂载点名称 文件系统 挂载参数(defaults) 0 0
第一个数字: 表示是否允许使用dump工具备份, 0代表不允许 1允许
第二个数字: 表示是否允许使用fsck工具检测磁盘、0不允许、1优先检测、2后续检测
[root@shane ~]# vim /etc/fstab
/dev/sdb1 /web ext4 defaults 0 0
/dev/sdb2 /mysql ext4 defaults 0 0
/dev/sdb5 /kvm xfs defaults 0 0
UUID="dcb9b1ab-0361-41ed-b099-ed7fdf427961" /python xfs defaults 0 0
[root@shane ~]# mount -a //让系统重新读取fstab文件
[root@shane ~]# df -hT | grep "sdb"
/dev/sdb1 ext4 477M 2.3M 445M 1% /web
/dev/sdb2 ext4 477M 2.3M 445M 1% /mysql
/dev/sdb5 xfs 497M 26M 472M 6% /kvm
/dev/sdb6 xfs 497M 26M 472M 6% /python
四、扩展swap分区容量
? 1、创建磁盘分区, 将其ID修改为82 ? 2、将磁盘分区格式化swap文件系统 ? 3、启用新的swap
1、查看当前swap分区4容量
[root@shane ~]# free -m
total used free shared buff/cache available
Mem: 976 268 377 7 330 516
Swap: 2047 0 2047
2、创建2G大小的分区,并将其ID修改为82
[root@shane ~]# fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (2 primary, 1 extended, 1 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 7
First sector (4104192-20971519, default 4104192):
Using default value 4104192
Last sector, +sectors or +size{K,M,G} (4104192-20971519, default 20971519): +2G
Partition 7 of type Linux and of size 2 GiB is set
Command (m for help): t
Partition number (1-3,5-7, default 7): 7
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
[root@shane ~]# partprobe /dev/sdb
3、创建swap文件系统
[root@shane ~]# mkswap /dev/sdb7
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=eb063126-e382-4f61-8fe7-fe074bc7aba0
4、启动新的swap分区
[root@shane ~]# vim /etc/fstab
/dev/sdb7 swap swap defaults 0 0
[root@shane ~]# mount -a
[root@shane ~]# swapon -a
[root@shane ~]# free -m
total used free shared buff/cache available
Mem: 976 270 366 7 339 514
Swap: 4095 0 4095
[root@shane ~]# swapoff /dev/sdb7
dd命令
dd命令的使用
[root@shane ~]# dd if=/dev/zero of=/tmp/a.txt bs=1M count=100
if 源文件 /dev/zero 字符设备文件
of 目的文件
bs 数据块大小
count 次数
|