前言
这一部分让我们来了解,Linux中的磁盘存储和文件系统管理吧~
VX: wenjinworkon
目录
磁盘结构
1.1 设备文件
在Linux中一切皆文件
设备文件:关联至一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信
设备号码:
- 主设备号:标识设备类型
- 次设备号:标识同一类型下的不同设备
设备类型:
- 块设备:存取单位“块”,磁盘
- 字符设备:存取单位“字符”,键盘
接口设备类型 设备命名模式
IDE /dev/hda、/dev/hdb
SATA、SCSI,SAS,USB /dev/sda、/dev/sdb
Virtio-blk 虚拟化 /dev/vda、/dev/vdb
NVME /dev/nvme0、/dev/nvme1
SD/MMC /dev/mmcblk0、/dev/mmcblk1
不同磁盘标识:a-z,aa,ab……
同一磁盘上的不同分区:1,2……
1.2 硬盘类型
接口类型
1. SATA接口(Serial ATA)
2. IDE接口(Integrated Drive Electronics)
3. SCSI接口(Small Computer System Interface)
4. SAS接口(Serial Attached SCSI)
5. USB接口(Universal Serial Bus)
6. FireWire接口(IEEE 1394)
7. Thunderbolt接口
8. M.2接口
9. PCIe接口(Peripheral Component Interconnect Express)
1.3 硬盘类型
机械硬盘
一种存储设备,其工作原理是利用磁性材料在旋转的磁盘上进行数据的读写。机械硬盘通常由一个或多个磁盘、磁头、马达和控制电路组成。数据存储在磁盘的表面上,磁头在磁盘上移动来读取和写入数据。
固态硬盘
是一种使用固态存储器作为数据存储介质的硬盘,相对于传统的机械硬盘,固态硬盘具有更快的读写速度、更低的能耗和更高的数据安全性。
识别SSD和机械硬盘类型
#1表示机械,0表示SSD
[root@centos8 ~]#lsblk -d -o name,rota
NAME ROTA
sda 1
sr0 1
nvme0n1 0
nvme0n2 0
#测速
[root@ubuntu1804 ~]#dd | hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 1854 MB in 3.00 seconds = 617.80 MB/sec
管理存储
2.1 磁盘分区
分区的目的
- 提高IO性能
- 隔离系统和程序
- 安装多个OS
- 采用不同的文件系统
主要的分区方式
MBR、GPT
2.1.1 MBR
分区不超过2T,因为分区表为64byte,其中每16byte标识一个分区,所以MBR分区中的一个硬盘最多有4个主分区,也可以有3个主分区+1扩展(N个逻辑分区)
主分区和扩展分区对应编号为1~4,逻辑分区是从5开始如:/dev/sdb5
2.1.2 GPT
支持128个分区,分区可以超过2T,提供UEFI(统一可扩展固件接口,带图形界面有颜色)的BIOS(基本输入和输出系统)
BIOS和UEFI
BIOS:基本输入输出系统,用于开机系统加电自检和引导操作系统的加载
UEFI:一种详细描述类型接口的标准,相当于一个精简版操作系统,提供硬件和操作系统二的一个接口,并带有图形化的操作界面
2.1.3 管理分区命令
//列出块设备
lsblk
//创建分区命令
fdisk 管理MBR分区
gdisk 管理GPT分区
//刷新内存的分区表版本
partprobe
fdisk 与 gdisk
fdisk -l [-u] [device...] 查看分区
fdisk [device...] 管理MBR分区
gdisk [device...] 类fdisk 的GPT分区工具
选项:
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存并退出
q 不保存并退出
2.2 文件系统
文件系统是操作系统用于明确 存储设备 (常见的是磁盘,也有基于NAND Flash的 固态硬盘 )或分区上的文件的方法和 数据结构 ;即在存储设备上组织文件的方法。 操作系统中负责管理和 存储文件 信息的软件机构称为 文件管理系统 ,简称文件系统。
2.2.1 文件系统类型
Linux中常用文件系统
-
ext4 (Fourth Extended Filesystem): 这是 Linux 操作系统中最常用的文件系统之一。它是 ext3 文件系统的升级版本,提供了更好的性能和可靠性。Ext4的文件系统容量达到1EB,而支持单个文件则达到16TB
-
btrfs (B-Tree Filesystem): 这是一个相对较新的文件系统,它提供了快照、即时数据压缩、子卷等高级功能。它被设计用于大容量存储和企业级应用。
-
XFS: 这是一个高性能的日志型文件系统,最初由 Silicon Graphics 开发。它擅长处理大型文件和目录,通常用于高性能存储系统。是一个全64-bit的文件系统,最大可以支持8EB的文件系统,而支持单个文件则达到8EB
-
ZFS (Zettabyte File System): 这是一个高度可扩展的文件系统,最初由 Sun Microsystems 开发。它提供了数据完整性、快照、RAID 等高级功能。
Windows常用文件系统
- FAT32:最多支持16TB的文件系统和4GB的文件
- NTFS:最多支持16EB的文件系统和16EB的文件
2.2.2 创建文件系统
创建文件系统工具
mkfs命令:
mkfs.FileSystem /dev/device
FileSystem:
ext4
xfs
btrfs
vfat
查看ext文件系统的信息
dumpe2fs /dev/device
查看xfs文件系统的信息
xfs_info /dev/device
ext 系列修复工具
e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复
-p 自动进行安全的修复文件系统问题
xfs 修复工具
xfs_repair:xfs文件系统专用检测修复工具
-f 修复文件,而设备
-n 只检查
-d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot
2.3 挂载
2.3.1 mount 命令
进行文件系统的挂载
mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint
device: 创建的文件系统文件
mountpoint: 要挂载到的目录
-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r readonly,只读挂载
-w read and write, 读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有
auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async 异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全
sync 同步模式,内存更改时,同时写磁盘,安全,但效率低下
atime/noatime 包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持开机自动挂载,是否支持-a选项
exec/noexec 是否支持将文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro/rw 只读、读写
user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
acl/noacl 启用此文件系统上的acl功能
loop 使用loop设备
_netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
defaults 相当于rw, suid, dev, exec, auto, nouser, async
注意事项
- 一个挂载目录同一时间只能挂载一个设备
- 一个挂载目录若挂载了多个设备,只能看到最后一个挂载设备的数据,其他设备数据不可见
- 挂载点一般是已存在的空目录
2.3.2 umount 命令
进行文件系统的卸载
umount 设备名|挂载点
查看挂载
#通过查看/etc/mtab文件显示当前已挂载的所有设备
mount
#查看内核追踪到的已挂载的所有设备
cat /proc/mounts
2.3.3 永久挂载
[root@vpc1 ~]# vi + /etc/fstab
/dev/sdc1 /data/geekgold ext4 defaults 0 0
相关参数:
要挂载的设备或伪文件系统:
LABEL:LABEL=""
UUID:UUID=""
设备文件
挂载点: 必须已经创建
文件类型: ext4,xfs,iso9660,nfs,none
挂载选项: defaults
转储频率:0:不做备份 1:每天转储 2:每隔一天转储
fsck检查的文件系统的顺序:允许的数字是0 1 2
0:不自检 ,1:首先自检;一般只有rootfs才用 2:非rootfs使用
2.4 SWAP 交换分区
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用
2.4.1 SWAP基本操作
启动swap分区
swapon [OPTION]... [DEVICE]
-a #激活所有的交换分区
-p PRIORITY #指定优先级(-1到32767之间),值越大,优先级越高.也可在/etc/fstab文件中的第4列指
定:pri=value
创建swap分区
[root@vpc1 ~]#mkswap /dev/sdc1
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=d3140a7a-65b7-4cb7-8a2b-56338aa65c6f
[root@vpc1 ~]#blkid /dev/sdc1
/dev/sdc1: UUID="d3140a7a-65b7-4cb7-8a2b-56338aa65c6f" TYPE="swap"
PARTUUID="b094d43d-01
[root@vpc1 ~]#vim /etc/fstab
UUID=d3140a7a-65b7-4cb7-8a2b-56338aa65c6f swap swap defaults 0 0
[root@vpc1 ~]#swapon -a
[root@vpc1 ~]#free -h
total used free shared buff/cache available
Mem: 3.7Gi 264Mi 3.2Gi 9.0Mi 261Mi 3.2Gi
Swap: 4.0Gi 0B 4.0Gi
禁用swap分区
swapoff [OPTION]... [DEVICE]
[root@vpc1 ~]#sed -i.bak '/swap/d' /etc/fstab
[root@vpc1 ~]#swapoff -a
2.5 使用外部介质
挂载
mount /dev/cdrom /mnt/
或者
mount /dev/sr0 /mnt/
2.6 存储管理工具
2.6.1 查看空间大小
df [OPTION]... [FILE]...
-H 以10为单位
-T 文件系统类型
-h human-readable
-i inodes instead of blocks
-P 以Posix兼容的格式输出
2.6.2 查看目录大小
du [OPTION]... DIR
-a --all 显示所有文件和目录的大小,默认只显示目录大小
-h human-readable
-s summary
--max-depth=# 指定最大目录层级
-x, --one-file-system #忽略不在同一个文件系统的目录
总结
以上就是磁盘存储和文件系统管理相关操作了,欢迎添加VX交流:wenjinworkon
标签:Gold,菜鸟,分区,文件系统,dev,Linux,挂载,磁盘,设备 From: https://blog.csdn.net/m0_64903413/article/details/139497450