一、磁盘基础知识
-
实现数据持久化存储(除去人为干预原因,数据不会丢失)
-
/dev/sda:这就代表一块硬盘
-
vim、ls、cat、touch:只能看文本文件,不能看块设备文件例如::/dev/sda
-
块设备文件:硬盘中存储是以最小单位数据块进行存储的,通过文件系统把文件变成块,把每一个块的大小为4K,一块一块的存,
-
清除文件系统:
-
dd if=/dev/zero of=/dev/sdb1 bs=512
-
-
任何文件在硬盘上存储信息的时候,都会被分成两部分,一部分是真实数据本身放到数据块中,另一部分是元数据信息
-
元数据信息metadata(存在inode中)
-
文件对应的数据块
-
名称、大小、类型、时间、
-
stat /etc/fstab
-
-
例如一块U盘,容量总是不够为什么?
-
文件系统信息
-
元数据信息 inode
-
分区表 64字节(主分区和扩展分区本身的信息,一个分区占16,所以在建主分区的的时候只能建4个)
-
-
-
Linux系统在开机的时候,在操作系统所在的磁盘/dev/sda上有446字节的开机引导程序,可用dd命令将446字节抹掉
-
[root@localhost ~]# dd if=/dev/zero of=/db/ljh/c.txt bs=5M count=20
-
也可以用来抹掉文件系统
-
1、硬盘表示方法
[root@bogon ~]# ls -l /dev/sda brw-rw---- 1 root disk 8, 0 Dec 22 16:53 /dev/sda
文件名称:/dev/sbX
X:第X块硬盘
硬盘接口:sd
SATA接口(接口不同,影响的就是I/O速度,读写速度)
理论来说6G/s
SAS接口(物理区别,中间有芯片链接电源和接口)
理论来说6G/s
2、分区表示方法
方便数据的分类管理
分区类型
主分区(最多四个主分区)
扩展分区(最多一个,且不能存储数据,建立的目的是为了在这个基础上建立逻辑分区)
逻辑分区(没有数量限制)
3、硬盘类型
机械硬盘(读取速度慢)
转速:rpm (转速越快,读取速度越快)
固态硬盘 SSD (读取速度快)
4、磁盘的使用流程
添加硬盘
规划分区
创建文件系统(格式化)
windows的文件系统
NTFS、FAT32
FAT32文件系统不支持存储超过4G的文件
linux的文件系统
xfs(常用)、ext4、ext3、
swap:交换分区
挂载(将空目录与磁盘建立映射关系)
将磁盘与某个空目录创建关联关系
数据读写
二、磁盘操作指令
1、查看磁盘
-
lsblk
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 20G 0 disk sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64
-
fdisk -l /dev/sda
[root@localhost ~]# fdisk -l /dev/sdb Disk /dev/sdb: 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
2、查看磁盘UUID、文件系统类型
-
blkid
/dev/sda1: UUID="2bb8c415-48c0-45d6-9ccc-3bafc8be8091" TYPE="xfs"
3、管理磁盘分区
fdisk 磁盘名
p:显示磁盘的分区表
n:新建分区
d:删除分区
q:不保存退出
w:保存退出
t:显示分区类型
4、创建文件系统(格式化)
mkfs -t ext4 /dev/sdb1 mkfs.xfs /dev/sdb2
5、挂载
mount 设备文件 挂载点目录 mount /dev/sdb2 /adc
6、使用并查看磁盘容量
df -Th
7、实例
添加10G硬盘,创建如下分区
主分区 500M xfs文件系统 /data/web
扩展分区
逻辑分区 500M xfs文件系统 /data/web2
逻辑分区 2G ext4文件系统 /data/we
-
分区
[root@localhost ~]# fdisk /dev/sdb Command (m for help): p Disk /dev/sdb: 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: 0x73f39e9c Device Boot Start End Blocks Id System 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): First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +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): e Partition number (2-4, default 2): First sector (1026048-41943039, default 1026048): Using default value 1026048 Last sector, +sectors or +size{K,M,G} (1026048-41943039, default 41943039): Using default value 41943039 Partition 2 of type Extended and of size 19.5 GiB is set Command (m for help): n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (1028096-41943039, default 1028096): Using default value 1028096 Last sector, +sectors or +size{K,M,G} (1028096-41943039, default 41943039): +500M Partition 5 of type Linux and of size 500 MiB is set Command (m for help): n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 6 First sector (2054144-41943039, default 2054144): Using default value 2054144 Last sector, +sectors or +size{K,M,G} (2054144-41943039, default 41943039): +2G Partition 6 of type Linux and of size 2 GiB is set Command (m for help): p Device Boot Start End Blocks Id System /dev/sdb1 2048 1026047 512000 83 Linux /dev/sdb2 1026048 41943039 20458496 5 Extended /dev/sdb5 1028096 2052095 512000 83 Linux /dev/sdb6 2054144 6248447 2097152 83 Linux Command (m for help): w The partition table has been altered! [root@localhost ~]# partprobe /dev/sdb //让系统内核识别硬盘的变化
-
让内核识别磁盘变化
[root@localhost ~]# partprobe /dev/sdb //让系统内核识别硬盘的变化
-
格式化
[root@localhost ~]# mkfs -t xfs /dev/sdb1 [root@localhost ~]# mkfs -t xfs /dev/sdb5 [root@localhost ~]# mkfs -t exxt4 /dev/sdb6
-
挂载
[root@localhost ~]# mkdir /data/web [root@localhost ~]# mkdir /data/web2 [root@localhost ~]# mkdir /data/web3 [root@localhost ~]# mount /dev/sdb1 /data/web [root@localhost ~]# mount /dev/sdb5 /data/web2 [root@localhost ~]# mount /dev/sdb6 /data/web3
-
使用
[root@localhost ~]# touch /data/web/{1..10}.txt [root@localhost ~]# ls /data/web 10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt [root@localhost ~]# touch /data/web2/{1..10}.jpg [root@localhost ~]# ls /data/web2/ 10.jpg 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg [root@localhost ~]# touch /data/web3/{1..10}.conf [root@localhost ~]# ls /data/web3/ 10.conf 2.conf 4.conf 6.conf 8.conf lost+found 1.conf 3.conf 5.conf 7.conf 9.conf
三、实现开机自动挂载
-
配置文件
-
/etc/fsatab
-
-
文件格式
-
设备文件/UUID 挂载点目录 文件系统 挂载参数(defaluts) 0 0
-
第一个数字 是否自动备份文件数据
-
0 不备份
-
1 备份
-
-
第二个数字 开机是否要检测磁盘
-
0 不检测
-
1 优先检测
-
2 最后检测
-
-
-
vim /etc/fstab mount -a //重新读取fstab文件
四、限制磁盘存储数据的因素
-
容量
-
su -Th
-
-
inode i节点
-
文件个数的限制
-
df -i /dev/sdb1
-
五、扩展swap分区容量
1、查看当前分区大小
[root@localhost ~]# free -m total used free shared buff/cache available Mem: 972 650 59 20 262 161 Swap: 2247 6 2241 [root@localhost ~]#
2、增加2G的swap分区,ID为82
Command (m for help): n Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 12 First sector (23242752-41943039, default 23242752): Using default value 23242752 Last sector, +sectors or +size{K,M,G} (23242752-41943039, default 41943039): +2G Partition 12 of type Linux and of size 2 GiB is set Command (m for help): t Partition number (1,2,5-12, default 12): Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris' Command (m for help): w
3、为交换分区创建文件系统
[root@localhost ~]# partprobe //让内核识别磁盘变化 [root@localhost ~]# mkswap /dev/sdb12 Setting up swapspace version 1, size = 2097148 KiB no label, UUID=46dd8abf-a571-4f0f-a944-e291ba5884c8 [root@localhost ~]# blkid /dev/sdb11 /dev/sdb11: UUID="EtDQg1-gDrE-317d-QY06-NEHJ-Sc7v-bc3fiQ" TYPE="LVM2_member"
4、实现swap分区开机自动挂载
[root@localhost ~]# vim /etc/fstab /dev/sdb12 swap swap defaults 0 0
5、启动所有交换分区
[root@localhost ~]# swapon -a [root@localhost ~]# free -m total used free shared buff/cache available Mem: 972 648 68 20 254 162 Swap: 4295 6 4289
6、swap分区(交换分区)作用
当物理内存不够时,会将swap分区当内存使用,此时系统性能会急速下降
五、du 查看文件在磁盘上的占用空间
1、du -h :
-
du -h /etc/fstab:
-h, --human-readable 为每个数附加一个表示大小单位的字母,象用M表示二进制 的兆字节。
-
du -sh:
-s, --summarize 对每个参数只显示总和。
-
du -ah:
-a, --all 显示对所有文件的统计,而不只是包含子目录