磁盘
组成:
盘片:磁盘有多个盘片,每个盘片正反两面
磁头:读取磁盘表面磁方向和改变其方向
数据结构:
扇区:盘片被分为多个扇形,每个扇区存放512字节数据
磁道:磁道是单个盘面上的同心圆
柱面:由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面。
磁盘结构:
硬盘存储容量=磁头数x磁道数x每道扇区数x每扇区字节数(512字节)
磁盘接口类型:
IDE,SATA,SCSI,SAS,光纤通道
MBR与磁盘分区结构
MBR(主引导记录)
- MBR位于硬盘第一个物理扇区处 , MBR中包含硬盘的主引导程序和硬盘分区表
- MBR第一个扇区总共512字节,前446字节是主引导记录,分区表保存在扇区中的第447-512字节中。
磁盘分区结构:
硬盘中主分区数目只有四个 主分区和扩展分区的序号限制在1~4 扩展分区再分为逻辑分区 逻辑分区序号从5开始
主分区 ---安装系统,存储数据
扩展分区-逻辑分区----只能存储数据
MBR用于硬盘2T以内 1-4
GPT用于硬盘2T以上 1-128
便捷命令
partprobe ///强制刷新内存缓存表
scan//自动刷新接口获取硬件设备
[root@localhost httpd]# vim /etc/profile
将alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'添加到内容
[root@localhost httpd]# source /etc/profile
[root@localhost httpd]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 55G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 5G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
Linux中使用的文件系统类型
XFS文件系统
- CenOS 7系统中默认使用的文件系统,高性能的日志型文件系统
Swap交换文件系统
- 当系统物理内存不足时,将其他物理内存释放一部分,用于当前运行程序
free -h//查看交换分区大小
[root@localhost httpd]# free -h
total used free shared buff/cache available
Mem: 2.2G 610M 891M 9.5M 789M 1.4G
Swap: 5.0G 0B 5.0G
EXT4第四代扩展文件系统
- CenOS 6系统中默认使用的文件系统
其他文件系统类型
FAT16、FAT32、NTFS、JFS
创建文件系统
mkfs命令
mkfs命令格式:
mkfs.文件系统类型 分区设备
[root@localhost httpd]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
创建交换文件系统——mkswap命令
mkswap命令格式:
mkswap 分区设备 //创建交换文件系统,分区设备位置要使用绝对路径
swapon 分区设备 //启用交换分区 swapoff 分区设备 //停用交换分区 swapon -s //显示所有启用状态的交换分区
[root@localhost httpd]# mkswap /dev/sdb
mkswap: /dev/sdb: warning: wiping old xfs signature.
正在设置交换空间版本 1,大小 = 20971516 KiB
无标签,UUID=54bc3f45-3b9b-4626-aea5-ee4bb5a0c8e8
[root@localhost httpd]# swapon /dev/sdb
[root@localhost httpd]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 5238780 0 -1
/dev/sdb partition 20971516 0 -2
[root@localhost httpd]# swapoff /dev/sdb
[root@localhost httpd]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 5238780 0 -1
挂载和卸载文件系统
设置文件系统的自动挂载(永久挂载)
系统中的/etc/fstab 文件可以视为mount命令的配置文件
blkid查看UUID
iostat//查看磁盘读写性能
Vim /etc/fstab
# /etc/fstab
# Created by anaconda on Wed Apr 26 16:44:02 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e755190b-57d2-4a3c-8dda-eae00e2c3e1e /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
##用已设备名称进行挂载
/dev/adb /data xfs defaults 0 0
每个空格代表一段
第一段;设备名称 第二段:挂载的目录 第三段:文件系统 第四段:定义默认值 第五段:表示不备份 第六段:表示系统启动不检查系统
用UUID进行挂载
UUID=e755190b-57d2-4a3c-8dda-eae00e2c3e1e /data xfs defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0//挂载光盘镜像
mount -a //刷新挂载
卸载文件系统——umount命令
umount命令格式:
umount 存储设备位置
umount 挂载点目录
如果位于挂载目录下,不能解挂载。需要切换目录后再解挂载。
设置磁盘分区
查看硬盘
[root@localhost httpd]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 55G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 5G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
使用fdisk命令设置磁盘分区
[root@localhost httpd]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x63f1770e 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+8G
分区 2 已设置为 Extended 类型,大小设为 8 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (20975616-37750783,默认为 20975616):
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-37750783,默认为 37750783):+2G
分区 5 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (25171968-37750783,默认为 25171968):
将使用默认值 25171968
Last 扇区, +扇区 or +size{K,M,G} (25171968-37750783,默认为 37750783):
将使用默认值 37750783
分区 6 已设置为 Linux 类型,大小设为 6 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost httpd]#
为分区指定文件系统
[root@localhost httpd]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost httpd]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost httpd]# mkswap /dev/sdb6
正在设置交换空间版本 1,大小 = 6289404 KiB
无标签,UUID=01b11972-5faa-4f26-8a20-b2a061f94b4a
修改/etc/fstab 文件,设置为自动挂载。
[root@localhost data]# vim /etc/fstab
# /etc/fstab
# Created by anaconda on Wed Apr 26 16:44:02 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e755190b-57d2-4a3c-8dda-eae00e2c3e1e /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /data/aa xfs defaults 0 0
/dev/sdb5 /data/bb xfs defaults 0 0
刷新挂载
[root@localhost aa]# mount -a
[root@localhost aa]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 55G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 5G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part /data/aa
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 2G 0 part /data/bb
└─sdb6 8:22 0 6G 0 part
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64