linux磁盘管理

一,磁盘基础知识

  • 硬盘设备是由大量的扇区组成,每个扇区的容量为512B。其中第一个扇区里面保存着主引导记录和分区表信息,主引导记录占446B,分区表64B,结束符2B;
  • 其中分区表每记录一条信息就使用了16B,所以最多只能4个分区信息可以写入第一个扇区中,着4个分区就是主分区

  • 由于第一个扇区最多只能创建4个分区,为了解决分区个数不够的问题,可以将第一个的分区表中的16B(原本要写入主分区信息)的空间(扩展分区)拿出来指向另外一个分区
  • 扩展分区不是真实存在的,而更像是一个占用16B分区表空间的指针(指向另一个分区的指针)。
  • 如此用户一般使用3个主分区和一个扩展分区的方法,然后在扩展分区中创建数个逻辑分区,由此满足多发区的需求

注意:

  1. 扩展分区并不是真实分区,只是一个指向下一个分区的指针,这种指针结构形成一个单向链表
  2. 单向链表是一种数据结构,其中每个节点包含一个数据元素和一个指向下一个节点的指针。这种链表的链接方向是单向的,因此对链表的访问需要通过顺序读取从头部开始。单向链表常用于需要频繁插入和删除操作的场景中

二,磁盘设备及命名

Linux系统中一切皆是文件,硬件设备也不例外。每一个硬件设备都有对应的文件名称,而系统内核中的udev设备管理器会自动将硬件名称规范起来,以便于用户通过设备的文件名称了解设备属性和分区信息。

Linux系统中的磁盘设备通常位于 /dev 目录下,设备名称根据不同的类型和接口有所不同。常见的磁盘设备命名方式如下:

  • IDE/SATA 磁盘:/dev/sda, /dev/sdb 等。第一个硬盘通常是 /dev/sda,第二个是 /dev/sdb,以此类推。
  • SCSI 磁盘:/dev/sda, /dev/sdb 等,与SATA设备命名规则相同。
  • NVMe 磁盘:/dev/nvme0n1, /dev/nvme1n1 等,表示NVMe接口的固态硬盘(SSD)。
  • USB 存储设备:通常以 /dev/sdX 或 /dev/sdXY(X是字母,Y是分区号)命名。

常见硬件设备在Linux中的文件名:

硬件设备

文件名称

IDE硬盘

/dev/hd[a-d]

SATA硬盘

/dev/sd[a-p]

光驱

/dev/cdrom 或 /dev/sr0

USB存储设备

/dev/sd[a-p]

网络接口卡

/dev/net/tun

打印机

/dev/lp[0-9]

鼠标

/dev/input/mouse0

显卡

/dev/fb0

一台主机上可以有至多16块不同的硬盘,硬盘分区编号规则如下

  1. 主分区或扩展分区的编号从1开始,4结束
  2. 逻辑分区从编号5开始

/dev/sda5设备文件名称包含的信息:

  1. 设备类型:/dev/目录中保存的是硬件设备文件。
  2. 存储设备:sd表示这是一个存储设备。
  3. 设备顺序:a表示这是系统中同类接口中第一个被识别到的设备。
  4. 分区编号:5表示这是一个逻辑分区。

扩展:udev设备管理器概述

udev是Linux内核2.6系列中的设备管理器。它的主要功能是管理/dev目录下的设备节点。udev在用户空间运行,而不是在内核空间运行,这使得它更加灵活和强大1。

主要功能

  1. 动态管理设备:当设备添加或删除时,udev会监听内核发出的uevent,相应地添加或删除/dev下的设备文件。
  2. 自定义命名规则:udev允许用户通过定义规则文件来为设备生成具有标识性的设备文件名。
  3. 设定设备权限和所有者:udev可以根据设备的属性来设置设备文件的权限和所有者/组1。

工作流程

  1. 事件触发:当设备状态发生变化时(如添加、删除设备),内核会发出uevent。
  2. 规则匹配:udev守护进程接收到uevent后,会根据规则文件中的定义来匹配设备属性。
  3. 执行操作:如果找到匹配的规则,udev会根据规则中的指示来执行相应的操作,如创建设备文件、设置权限等1。

配置与使用

在CentOS中,udev通常是默认安装的,无需手动下载和安装。用户可以通过编辑/etc/udev/udev.conf 文件来覆盖udev的默认值,或通过编写自定义规则文件来实现特定的设备管理需求1。

规则文件

udev的规则文件通常存放在/etc/udev/rules.d/目录下,以*.rules命名。规则文件由多条规则组成,每条规则由多个键值对组成,用于匹配设备属性并执行相应的操作1。

三,磁盘管理工具使用

虚拟机新增硬盘的流程

  1. 打开虚拟机软件:首先,需要打开你正在使用的虚拟机软件,例如VMware或者VirtualBox。
  2. 选择目标虚拟机:在虚拟机列表中找到你想要添加硬盘的虚拟机,并选中它。
  3. 进入设置界面:通常在虚拟机软件的顶部菜单栏中会有“设置”或者“配置”的选项,点击它进入虚拟机的设置界面。

  1. 添加新硬盘:在设置界面中,找到“硬盘”或者“存储”选项,然后点击“添加硬盘”或者类似的选项。

  1. 配置新硬盘:在弹出的窗口中,你可以选择硬盘的类型(例如SATA或者SCSI),以及硬盘的大小。你可以根据需要选择合适的配置。

  1. 确认并保存设置:完成配置后,点击“确定”或者“保存”按钮,确认你的设置。此时,虚拟机软件会创建一个新的虚拟硬盘并将其添加到虚拟机中。
  2. 启动虚拟机:完成上述步骤后,启动虚拟机。在虚拟机内部,你应该能够看到新增的硬盘。如果需要,你可以对其进行分区、格式化等操作。

常用的磁盘管理工具

  1. fdisk:这是一个基于菜单的命令行工具,用于对硬盘进行分区。它在DOS、Windows和Linux中都有相应的应用程序1
  2. cfdisk:这是一个基于文本用户界面的分区工具,类似于fdisk,但提供了更友好的用户界面1
  3. parted:这是一个功能强大的分区工具,支持对大容量磁盘进行分区操作。它可以用来创建、删除、调整分区大小等操作1
  4. mkfs:这个命令用于在硬盘分区上建立文件系统。类似于Windows下的格式化硬盘。建立文件系统的命令是mkfs,格式如下:。mkfs[参数]文件系统 -t:指定要创建的文件系统类型。 -c:建立文件系统前首先检查坏块。 -V:输出建立文件系统详细信息1
  5. fsck:这个命令主要用于检查文件系统的正确性,并对Linux磁盘进行修复。fsck命令的格式如下:。fsck[参数选项]文件系统 -t:给定文件系统类型,若在/etc/fstab中已有定义或kernel本身已支持的不需添加此 -s:一个一个地执行fsck命令进行检查。 -A:对/etc/fstab中所有列出来的分区进行检查。 -C:显示完整的检查进度。 -d:列出fsck的debug结果。 -a:如果检查中发现错误,则自动修复。 -r:如果检查有错误,询问是否修复1
  6. dd:这个命令用于将指定的输入文件拷贝到指定的输出文件上。并且在复制过程中可以进行格式转换。dd命令与cp命令的区别在于:dd命令可以在没有创建文件系统的软盘上进行,拷贝到软盘的数据实际上是镜像文件。类似于DOS中的diskcopy命令的作用。dd命令的格式为:。dd[bs=块字节大小][count=块数] 1
  7. du:这个命令用于显示磁盘空间的使用情况。该命令逐级显示指定目录的每一级子目录占用。du[参数选项][name---] du命令的参数选项: -s:对每个name参数只给出占用的数据块总数。 -b:以字节为单位列出磁盘空间使用情况(AS4.0中默认以KB为单位)。 -k:以1024字节为单位列出磁盘空间使用情况。 -l:计算所有文件大小,对硬链接文件重复计算。 -x:跳过在不同文件系统上的目录,不予统计1

项目一:fdisk工具使用

fdisk 是一个用于管理硬盘分区的命令行工具,常用于 Linux 和类 Unix 操作系统。它提供了对硬盘分区表的创建、删除、修改和查看的功能。通过 fdisk,用户可以在磁盘上创建新的分区、删除旧的分区、调整现有分区的大小或类型,并显示分区的详细信息。

主要功能:

  1. 查看分区:列出磁盘上的所有分区及其详细信息。
  2. 创建新分区:在未分配空间的磁盘上创建新分区。
  3. 删除分区:删除现有的分区。
  4. 修改分区:调整分区的大小或类型。
  5. 更改分区类型:修改分区的文件系统类型(如从 Linux 类型更改为 Windows 类型)。
  6. 写入更改:将所做的更改写入磁盘。

fdisk -l:列出所有磁盘的分区信息。

fdisk /dev/sda:启动 fdisk 对 /dev/sda 磁盘进行操作。

选项

功能

-u

与 -l搭配使用,显示分区数目12

-s

指定分区2

-v

显示版本信息2

m

显示菜单和帮助信息13

a

活动分区标记/引导分区13

d

删除分区13

l

显示分区类型13

n

新建分区13

p

显示分区信息13

t

修改分区的类型13

w

保存并写入分区表的更改13

q

退出fdisk而不保存更改13

v

进行分区检查1

1,首先通过编辑虚拟机设置增加一块硬盘,格式为SCSI,大小为20G,命名为/dev/sdb

lsblk查看新增的硬盘设备,可以看到命名为/dev/sdb

2,对新增硬盘进行操作,需求是在硬盘上创建大小500MB,文件系统为ext4的/dev/sdb1的主分区

首先打开fdisk操作菜单 fdisk /dev/sdb

输入p,查看当前分区表。可以看到目前是没有任何分区的

根据信息可以看到/dev/sdb硬盘大小为21.5GB,21474836480 字节,41943040 个扇区,每个扇区大小是512字节。分别能从第七行的七个字段读取到起始扇区(Start)、结束扇区(End)、块数(Blocks)、分区ID(Id)以及分区类型(System)

3,输入n,创建一个新分区;输入p,选择创建主分区;输入该分区的其实,结束扇区,以确定分区大小。也可以使用+sizeM或sizeK的方式指定分区大小

4,输入L能够查看已知的分区类型及其id,例如linux的id为83。输入t,指定/dev/sdb1的文件类型为Linux

5,分区操作结束后,输入w,将分区信息写入分区表并退出

6,如果需要删除磁盘分区,则需在fdisk菜单下输入d,并选择需要删除的分区即可,删除操作完成之后输入w,保存退出

7,为了以便于项目二的实施开展,需要重复1-5的步骤以建立磁盘分区/dev/sdb2,/dev/sdb3。fdisk菜单操作完成效果如下

项目二:mkfs工具使用

硬盘分区之后,下一步就需要建立文件系统。类似于windows下的格式化硬盘,在硬盘分区上建立文件系统会冲掉分区上的数据,而且不可恢复。建立文件系统的命令是mkfs

常见文件系统类型

文件系统类型

描述

适用场景

ext4

第四代扩展文件系统,是 Linux 的默认文件系统,具有良好的性能和稳定性。

适用于大多数 Linux 发行版,适合通用用途。

xfs

高性能的文件系统,特别适合于大型数据集和高并发环境。

适用于数据库服务器、文件服务器等高性能需求的场景。

btrfs

提供先进的功能,如快照、压缩和数据校验,但相对复杂。

适用于需要高级数据管理功能的场景,如备份和恢复。

ntfs

Windows 的默认文件系统,兼容性好。

适用于需要与 Windows 系统互操作的场景。

vfat

适用于 FAT32 文件系统,常用于 USB 驱动器和移动设备。

适用于需要跨平台兼容的场景,如在 Linux 和 Windows 之间共享数据。

项目需求:在/dev/sdb1上建立ext4类型的文件系统,建立时检测磁盘坏块并显示详细信息

1,mkfs -t ext4 -V -c /dev/sdb1

命令解析

  • mkfs: 这是“make filesystem”的缩写,用于在指定的设备上创建文件系统。
  • -t ext4: 这个选项指定了要创建的文件系统类型为 ext4。ext4 是一种广泛使用的文件系统,适用于大多数 Linux 发行版。
  • -V: 这个选项表示详细模式(verbose mode),会在执行命令时显示详细的信息。
  • -c: 这个选项用于在创建文件系统之前检查设备上的坏块。
  • /dev/sdb1: 这是目标设备或分区,在这个例子中,文件系统将被创建在 /dev/sdb1 分区上。

执行效果

执行这个命令将会:

  1. 在 /dev/sdb1 分区上创建一个 ext4 文件系统。
  2. 在创建文件系统之前,检查设备上的坏块。
  3. 以详细模式显示创建文件系统的过程和相关信息。

2,完成存储设备的分区与格式操作,接下来就需要挂载并使用存储设备。

  1. 首先创建一个用于挂载设备的挂载点目录;mkdir /newFS
  2. 然后mount命令将存储设备与挂载点进行关联;mount /dev/sdb1 /newFS
  3. 查看挂载状态和硬盘使用量信息;df-h

项目三,fsck命令

fsck(文件系统一致性检查)是一个用于检查和修复文件系统错误的命令行工具。它在 Unix 和类 Unix 系统(如 Linux)中非常常见。

基本介绍

fsck 工具可以检查和修复各种类型的文件系统,包括 ext2、ext3、ext4、FAT、NTFS 等。在 Linux 中,fsck 工具的具体实现可能有所不同,不同的发行版可能会使用不同的工具。

基本用法

使用 fsck 命令时需要 root 权限。基本命令格式为:

 fsck [选项] 设备名

其中,设备名可以是磁盘分区的设备名(如 /dev/sda1),也可以是磁盘镜像文件的路径。

常用选项

  • -a: 自动修复所有错误。
  • -y: 自动回答“是”来修复所有错误。
  • -n: 不执行实际的文件系统检查和修复操作,仅显示出要执行的操作。
  • -v: 显示详细的信息。
  • -c: 检查磁盘上的坏道。
  • -r: 交互式修复错误。

项目需求:检测分区/dev/sdb1是否有错误,如果有错误则自动修复(必须先把磁盘卸载才能检查分区)

umount /dev/sdb1

fsck -a /dev/sdb1

项目四,dd命令

dd 命令最初是作为 Unix 操作系统的一部分开发的,它的名字来源于早期的 IBM 主机系统中的“数据定义”(Data Definition)概念。dd 命令可以用于多种用途,包括但不限于:

  • 制作启动盘
  • 备份和恢复磁盘或分区
  • 创建和操作文件系统
  • 生成随机数据
  • 转换文件格式

基本用法

dd 命令的基本语法如下:

dd if=输入文件 of=输出文件 bs=块大小

其中:

  • if=输入文件:指定输入文件的路径。可以是普通文件、设备文件或特殊文件。
  • of=输出文件:指定输出文件的路径。可以是普通文件、设备文件或特殊文件。
  • bs=块大小:设置每个块的大小。可以使用不同的单位(如字节、千字节、兆字节等)来指定大小。

常用选项

除了上述基本参数外,dd 命令还支持许多其他选项,用于更精细地控制其行为。以下是一些常用的选项:

  • count=块数:指定要复制的块数。
  • skip=块数:跳过输入文件的前几个块。
  • seek=块数:跳过输出文件的前几个块。
  • conv=转换选项:进行数据转换操作,如大小写转换、字节交换等。
  • status=状态:显示复制进度和传输速率信息。

项目需求:当系统的交换分区不能满足系统的要求,而磁盘上又没有可用空间时,可以使用交换文件提供虚拟内存

1, dd if=/dev/zero of=/swap bs=1024 count=10240

参数解释

  • if=/dev/zero: 指定输入文件为 /dev/zero,这是一个特殊的文件,它会不断提供空字符(null bytes)。
  • of=/swap: 指定输出文件为 /swap,这是你将要创建的交换文件的名称。
  • bs=1024: 指定块大小(block size)为 1024 字节。
  • count=10240: 指定要复制的块数为 10240。

计算交换文件大小

通过 bs=1024 和 count=10240,可以计算出交换文件的大小: 文件大小=块大小×块数=1024字节/块×10240块=10485760字节=10MB文件大小=块大小×块数=1024字节/块×10240块=10485760字节=10MB

2,mkswap /swap

这个命令用于将一个文件或分区格式化为交换空间。/swap 是交换文件或分区的路径。执行此命令后,系统会将指定的文件或分区初始化为交换空间,以便在内存不足时使用

3,swapon /swap

这个命令用于启用之前创建的交换空间。/swap 是交换文件或分区的路径。执行此命令后,系统会开始使用该交换空间来扩展内存

4,swapoff /swap

这个命令用于禁用之前启用的交换空间。/swap 是交换文件或分区的路径。执行此命令后,系统将不再使用该交换空间

项目五,df命令

df命令是Linux系统中的一个命令,它的作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。

df [选项] [文件名]

  • -a 或 --all:显示所有的文件系统,包括虚拟文件系统。
  • -B 或 --block-size:指定单位大小。比如1k,1m等。
  • -h 或 --human-readable:以人们易读的GB、MB、KB等格式显示。
  • -i 或 --inodes:不用硬盘容量,而是以inode的数量来显示。
  • -k:以KB的容量显示各文件系统。
  • -m:以MB的容量显示各文件系统。
  • --no-sync:在统计使用信息之前不调用sync命令(默认)。
  • -sync:在统计使用信息之前调用sync命令。
  • -P 或 --portability:使用POSIX格式显示。
  • -t 或 --type=TYPE:只显示指定类型的文件系统。
  • -T 或 --print-type:显示文件系统类型。
  • --help:显示帮助信息。
  • --version:显示版本信息

1,df 列出各文件系统的磁盘占用情况

2df -ia 列出各文件系统的i节点的使用情况

3df -T 列出文件系统类型

项目六,du命令

du命令是Linux系统中的一个命令,它的作用是显示目录或文件所占磁盘空间的大小。可以用来查看磁盘已被使用多少空间和还剩余多少空间。

du [选项] [文件或目录]

  • -a 或 --all:为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
  • -B 或 --block-size=SIZE:以SIZE为计量单位显示目录或文件大小。
  • -b 或 --bytes:以byte为单位显示目录或文件大小。
  • -c 或 --total:除了显示目录或文件的大小外,同时显示所有目录或文件的总和。
  • -h 或 --human-readable:以K,M,G为单位,提高信息的可读性。
  • -H 或 --si:与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
  • -l 或 --count-links:重复计算硬连接的文件。
  • -L 或 --dereference:统计符号连接源文件大小。
  • -P 或 --no-dereference:不同符号链接源文件的大小,默认。
  • -s 或 --summarize:仅显示总计,即当前目录的大小。
  • -S 或 --separate-dirs:显示每个目录的大小时,并不含其子目录的大小。
  • -x 或 --one-file-system:忽略位于其他文件系统上的目录。
  • --exclude=PATTERN:忽略符合PATTERN规则的目录或文件。
  • --max-depth=N:只显示N层内的目录大小。
  • --time:显示目录或子目录中文件的最后修改时间。
  • --time-style=STYLE:以STYLE指定的格式显示时间。

1,以字节为单位列出所有文件和目录的磁盘空间占用情况 du -ab

项目七,mount/umount

  • 在磁盘建立好文件系统后,还需要将新建立的文件系统挂载到操作系统上才能使用,这个过程称为挂载。文件系统所挂载的目录称为挂载点(Mount Point
  • linux提供了/mnt,/media两个挂载点。一般挂载点是一个空目录,否则目录中原来的文件系统将被隐藏
  • 通常将光盘和软盘挂载载到/media/cdrom,/mnt/cdrom,/media/floppy/mnt/floppy中,对应的设备文件名正是/dev/cdrom/dev/fd0

mount命令用于挂载文件系统,而umount命令用于卸载已经挂载的文件系统。这两个命令通常成对使用,以确保文件系统的正确管理和数据的一致性

mount [-afFhnrvVw] [-L标签] [-o选项] [-t文件系统类型] [设备名] [加载点]

常用选项

  • -a:加载/etc/fstab中所有的文件系统。
  • -f:不实际加载设备,可与-v等参数同时使用以查看mount的执行过程。
  • -o:指定加载文件系统时的选项,如async、atime、auto等。
  • -t:指定设备的文件系统类型,如hpfs、iso9660等。
  • -w:以可读写模式加载设备,默认设置。

umount [选项] [挂载点或设备]

常用选项

  • -f:强制卸载(仅用于NFS挂载的文件系统)。
  • -l:懒卸载,立即取消挂载点的挂载,但实际上延迟到文件系统不再使用时再完成卸载操作。
  • -v:显示详细信息。
  • -r:在卸载失败时尝试以只读方式重新挂载文件系统。

1,将 /dev/sdb1 设备上的 ext4 文件系统挂载到 /newFS 目录

mount -t ext4 /dev/sdb1 /newFS

2,卸载/dev/sdb1设备

umount /dev/sdb1  或者 umount /newFS

项目八,文件系统的自动挂载

在Linux系统中,文件系统的自动挂载可以通过两种主要方式实现:使用/etc/fstab文件和使用Autofs服务。

1,使用/etc/fstab文件

/etc/fstab文件包含了系统启动时需要自动挂载的文件系统信息。通过编辑这个文件,你可以指定哪些设备应该在系统启动时挂载到哪些挂载点。

步骤:

  1. 使用文本编辑器(如vim)打开/etc/fstab文件:
    vim /etc/fstab
  2. 在文件中添加一行来指定要自动挂载的文件系统。例如,如果你想将/dev/sdb1挂载到/newFS,可以添加如下行:
    /dev/sdb1  /newFS  ext4  defaults  0  2
    这行的含义如下:
    • /dev/sdb1: 要挂载的设备或分区。
    • /newFS: 挂载点。
    • ext4: 文件系统类型。
    • defaults: 使用默认挂载选项。
    • 0: 表示是否需要备份(0表示不需要)。
    • 2: 表示文件系统检查的顺序(2表示在根文件系统之后检查)。
  3. 保存并退出编辑器。
  4. 验证实验效果 mount -a

2使用Autofs服务

Autofs是一种自动挂载服务,它可以在需要时自动挂载文件系统,并在文件系统不再使用时自动卸载。

步骤:

  1. 安装Autofs服务(如果尚未安装):
    apt-get install
    -y autofs

  1. 配置/etc/auto.master 文件来指定自动挂载的挂载点和配置文件。例如,你可以添加如下行:
    /auto /etc/auto.misc  --timeout 60
    这行的含义如下:
    • /auto: 挂载点。
    • /etc/auto.misc: 配置文件。
    • --timeout 60: 文件系统在空闲60秒后自动卸载。
  2. 创建或编辑/etc/auto.misc 文件来指定具体的挂载信息。例如:
    cd /dev/cdrom
    fd /dev/fd0
  3. 启动Autofs服务:
    sudo systemctl start autofs
  4. 设置Autofs服务在系统启动时自动启动:
    sudo systemctl enable autofs

一,磁盘基础知识

  • 硬盘设备是由大量的扇区组成,每个扇区的容量为512B。其中第一个扇区里面保存着主引导记录和分区表信息,主引导记录占446B,分区表64B,结束符2B;
  • 其中分区表每记录一条信息就使用了16B,所以最多只能4个分区信息可以写入第一个扇区中,着4个分区就是主分区

  • 由于第一个扇区最多只能创建4个分区,为了解决分区个数不够的问题,可以将第一个的分区表中的16B(原本要写入主分区信息)的空间(扩展分区)拿出来指向另外一个分区
  • 扩展分区不是真实存在的,而更像是一个占用16B分区表空间的指针(指向另一个分区的指针)。
  • 如此用户一般使用3个主分区和一个扩展分区的方法,然后在扩展分区中创建数个逻辑分区,由此满足多发区的需求

注意:

  1. 扩展分区并不是真实分区,只是一个指向下一个分区的指针,这种指针结构形成一个单向链表
  2. 单向链表是一种数据结构,其中每个节点包含一个数据元素和一个指向下一个节点的指针。这种链表的链接方向是单向的,因此对链表的访问需要通过顺序读取从头部开始。单向链表常用于需要频繁插入和删除操作的场景中

二,磁盘设备及命名

Linux系统中一切皆是文件,硬件设备也不例外。每一个硬件设备都有对应的文件名称,而系统内核中的udev设备管理器会自动将硬件名称规范起来,以便于用户通过设备的文件名称了解设备属性和分区信息。

Linux系统中的磁盘设备通常位于 /dev 目录下,设备名称根据不同的类型和接口有所不同。常见的磁盘设备命名方式如下:

  • IDE/SATA 磁盘:/dev/sda, /dev/sdb 等。第一个硬盘通常是 /dev/sda,第二个是 /dev/sdb,以此类推。
  • SCSI 磁盘:/dev/sda, /dev/sdb 等,与SATA设备命名规则相同。
  • NVMe 磁盘:/dev/nvme0n1, /dev/nvme1n1 等,表示NVMe接口的固态硬盘(SSD)。
  • USB 存储设备:通常以 /dev/sdX 或 /dev/sdXY(X是字母,Y是分区号)命名。

常见硬件设备在Linux中的文件名:

硬件设备

文件名称

IDE硬盘

/dev/hd[a-d]

SATA硬盘

/dev/sd[a-p]

光驱

/dev/cdrom 或 /dev/sr0

USB存储设备

/dev/sd[a-p]

网络接口卡

/dev/net/tun

打印机

/dev/lp[0-9]

鼠标

/dev/input/mouse0

显卡

/dev/fb0

一台主机上可以有至多16块不同的硬盘,硬盘分区编号规则如下

  1. 主分区或扩展分区的编号从1开始,4结束
  2. 逻辑分区从编号5开始

/dev/sda5设备文件名称包含的信息:

  1. 设备类型:/dev/目录中保存的是硬件设备文件。
  2. 存储设备:sd表示这是一个存储设备。
  3. 设备顺序:a表示这是系统中同类接口中第一个被识别到的设备。
  4. 分区编号:5表示这是一个逻辑分区。

扩展:udev设备管理器概述

udev是Linux内核2.6系列中的设备管理器。它的主要功能是管理/dev目录下的设备节点。udev在用户空间运行,而不是在内核空间运行,这使得它更加灵活和强大1。

主要功能

  1. 动态管理设备:当设备添加或删除时,udev会监听内核发出的uevent,相应地添加或删除/dev下的设备文件。
  2. 自定义命名规则:udev允许用户通过定义规则文件来为设备生成具有标识性的设备文件名。
  3. 设定设备权限和所有者:udev可以根据设备的属性来设置设备文件的权限和所有者/组1。

工作流程

  1. 事件触发:当设备状态发生变化时(如添加、删除设备),内核会发出uevent。
  2. 规则匹配:udev守护进程接收到uevent后,会根据规则文件中的定义来匹配设备属性。
  3. 执行操作:如果找到匹配的规则,udev会根据规则中的指示来执行相应的操作,如创建设备文件、设置权限等1。

配置与使用

在CentOS中,udev通常是默认安装的,无需手动下载和安装。用户可以通过编辑/etc/udev/udev.conf 文件来覆盖udev的默认值,或通过编写自定义规则文件来实现特定的设备管理需求1。

规则文件

udev的规则文件通常存放在/etc/udev/rules.d/目录下,以*.rules命名。规则文件由多条规则组成,每条规则由多个键值对组成,用于匹配设备属性并执行相应的操作1。

三,磁盘管理工具使用

虚拟机新增硬盘的流程

  1. 打开虚拟机软件:首先,需要打开你正在使用的虚拟机软件,例如VMware或者VirtualBox。
  2. 选择目标虚拟机:在虚拟机列表中找到你想要添加硬盘的虚拟机,并选中它。
  3. 进入设置界面:通常在虚拟机软件的顶部菜单栏中会有“设置”或者“配置”的选项,点击它进入虚拟机的设置界面。

  1. 添加新硬盘:在设置界面中,找到“硬盘”或者“存储”选项,然后点击“添加硬盘”或者类似的选项。

  1. 配置新硬盘:在弹出的窗口中,你可以选择硬盘的类型(例如SATA或者SCSI),以及硬盘的大小。你可以根据需要选择合适的配置。

  1. 确认并保存设置:完成配置后,点击“确定”或者“保存”按钮,确认你的设置。此时,虚拟机软件会创建一个新的虚拟硬盘并将其添加到虚拟机中。
  2. 启动虚拟机:完成上述步骤后,启动虚拟机。在虚拟机内部,你应该能够看到新增的硬盘。如果需要,你可以对其进行分区、格式化等操作。

常用的磁盘管理工具

  1. fdisk:这是一个基于菜单的命令行工具,用于对硬盘进行分区。它在DOS、Windows和Linux中都有相应的应用程序1
  2. cfdisk:这是一个基于文本用户界面的分区工具,类似于fdisk,但提供了更友好的用户界面1
  3. parted:这是一个功能强大的分区工具,支持对大容量磁盘进行分区操作。它可以用来创建、删除、调整分区大小等操作1
  4. mkfs:这个命令用于在硬盘分区上建立文件系统。类似于Windows下的格式化硬盘。建立文件系统的命令是mkfs,格式如下:。mkfs[参数]文件系统 -t:指定要创建的文件系统类型。 -c:建立文件系统前首先检查坏块。 -V:输出建立文件系统详细信息1
  5. fsck:这个命令主要用于检查文件系统的正确性,并对Linux磁盘进行修复。fsck命令的格式如下:。fsck[参数选项]文件系统 -t:给定文件系统类型,若在/etc/fstab中已有定义或kernel本身已支持的不需添加此 -s:一个一个地执行fsck命令进行检查。 -A:对/etc/fstab中所有列出来的分区进行检查。 -C:显示完整的检查进度。 -d:列出fsck的debug结果。 -a:如果检查中发现错误,则自动修复。 -r:如果检查有错误,询问是否修复1
  6. dd:这个命令用于将指定的输入文件拷贝到指定的输出文件上。并且在复制过程中可以进行格式转换。dd命令与cp命令的区别在于:dd命令可以在没有创建文件系统的软盘上进行,拷贝到软盘的数据实际上是镜像文件。类似于DOS中的diskcopy命令的作用。dd命令的格式为:。dd[bs=块字节大小][count=块数] 1
  7. du:这个命令用于显示磁盘空间的使用情况。该命令逐级显示指定目录的每一级子目录占用。du[参数选项][name---] du命令的参数选项: -s:对每个name参数只给出占用的数据块总数。 -b:以字节为单位列出磁盘空间使用情况(AS4.0中默认以KB为单位)。 -k:以1024字节为单位列出磁盘空间使用情况。 -l:计算所有文件大小,对硬链接文件重复计算。 -x:跳过在不同文件系统上的目录,不予统计1

项目一:fdisk工具使用

fdisk 是一个用于管理硬盘分区的命令行工具,常用于 Linux 和类 Unix 操作系统。它提供了对硬盘分区表的创建、删除、修改和查看的功能。通过 fdisk,用户可以在磁盘上创建新的分区、删除旧的分区、调整现有分区的大小或类型,并显示分区的详细信息。

主要功能:

  1. 查看分区:列出磁盘上的所有分区及其详细信息。
  2. 创建新分区:在未分配空间的磁盘上创建新分区。
  3. 删除分区:删除现有的分区。
  4. 修改分区:调整分区的大小或类型。
  5. 更改分区类型:修改分区的文件系统类型(如从 Linux 类型更改为 Windows 类型)。
  6. 写入更改:将所做的更改写入磁盘。

fdisk -l:列出所有磁盘的分区信息。

fdisk /dev/sda:启动 fdisk 对 /dev/sda 磁盘进行操作。

选项

功能

-u

与 -l搭配使用,显示分区数目12

-s

指定分区2

-v

显示版本信息2

m

显示菜单和帮助信息13

a

活动分区标记/引导分区13

d

删除分区13

l

显示分区类型13

n

新建分区13

p

显示分区信息13

t

修改分区的类型13

w

保存并写入分区表的更改13

q

退出fdisk而不保存更改13

v

进行分区检查1

1,首先通过编辑虚拟机设置增加一块硬盘,格式为SCSI,大小为20G,命名为/dev/sdb

lsblk查看新增的硬盘设备,可以看到命名为/dev/sdb

2,对新增硬盘进行操作,需求是在硬盘上创建大小500MB,文件系统为ext4的/dev/sdb1的主分区

首先打开fdisk操作菜单 fdisk /dev/sdb

输入p,查看当前分区表。可以看到目前是没有任何分区的

根据信息可以看到/dev/sdb硬盘大小为21.5GB,21474836480 字节,41943040 个扇区,每个扇区大小是512字节。分别能从第七行的七个字段读取到起始扇区(Start)、结束扇区(End)、块数(Blocks)、分区ID(Id)以及分区类型(System)

3,输入n,创建一个新分区;输入p,选择创建主分区;输入该分区的其实,结束扇区,以确定分区大小。也可以使用+sizeM或sizeK的方式指定分区大小

4,输入L能够查看已知的分区类型及其id,例如linux的id为83。输入t,指定/dev/sdb1的文件类型为Linux

5,分区操作结束后,输入w,将分区信息写入分区表并退出

6,如果需要删除磁盘分区,则需在fdisk菜单下输入d,并选择需要删除的分区即可,删除操作完成之后输入w,保存退出

7,为了以便于项目二的实施开展,需要重复1-5的步骤以建立磁盘分区/dev/sdb2,/dev/sdb3。fdisk菜单操作完成效果如下

项目二:mkfs工具使用

硬盘分区之后,下一步就需要建立文件系统。类似于windows下的格式化硬盘,在硬盘分区上建立文件系统会冲掉分区上的数据,而且不可恢复。建立文件系统的命令是mkfs

常见文件系统类型

文件系统类型

描述

适用场景

ext4

第四代扩展文件系统,是 Linux 的默认文件系统,具有良好的性能和稳定性。

适用于大多数 Linux 发行版,适合通用用途。

xfs

高性能的文件系统,特别适合于大型数据集和高并发环境。

适用于数据库服务器、文件服务器等高性能需求的场景。

btrfs

提供先进的功能,如快照、压缩和数据校验,但相对复杂。

适用于需要高级数据管理功能的场景,如备份和恢复。

ntfs

Windows 的默认文件系统,兼容性好。

适用于需要与 Windows 系统互操作的场景。

vfat

适用于 FAT32 文件系统,常用于 USB 驱动器和移动设备。

适用于需要跨平台兼容的场景,如在 Linux 和 Windows 之间共享数据。

项目需求:在/dev/sdb1上建立ext4类型的文件系统,建立时检测磁盘坏块并显示详细信息

1,mkfs -t ext4 -V -c /dev/sdb1

命令解析

  • mkfs: 这是“make filesystem”的缩写,用于在指定的设备上创建文件系统。
  • -t ext4: 这个选项指定了要创建的文件系统类型为 ext4。ext4 是一种广泛使用的文件系统,适用于大多数 Linux 发行版。
  • -V: 这个选项表示详细模式(verbose mode),会在执行命令时显示详细的信息。
  • -c: 这个选项用于在创建文件系统之前检查设备上的坏块。
  • /dev/sdb1: 这是目标设备或分区,在这个例子中,文件系统将被创建在 /dev/sdb1 分区上。

执行效果

执行这个命令将会:

  1. 在 /dev/sdb1 分区上创建一个 ext4 文件系统。
  2. 在创建文件系统之前,检查设备上的坏块。
  3. 以详细模式显示创建文件系统的过程和相关信息。

2,完成存储设备的分区与格式操作,接下来就需要挂载并使用存储设备。

  1. 首先创建一个用于挂载设备的挂载点目录;mkdir /newFS
  2. 然后mount命令将存储设备与挂载点进行关联;mount /dev/sdb1 /newFS
  3. 查看挂载状态和硬盘使用量信息;df-h

项目三,fsck命令

fsck(文件系统一致性检查)是一个用于检查和修复文件系统错误的命令行工具。它在 Unix 和类 Unix 系统(如 Linux)中非常常见。

基本介绍

fsck 工具可以检查和修复各种类型的文件系统,包括 ext2、ext3、ext4、FAT、NTFS 等。在 Linux 中,fsck 工具的具体实现可能有所不同,不同的发行版可能会使用不同的工具。

基本用法

使用 fsck 命令时需要 root 权限。基本命令格式为:

 fsck [选项] 设备名

其中,设备名可以是磁盘分区的设备名(如 /dev/sda1),也可以是磁盘镜像文件的路径。

常用选项

  • -a: 自动修复所有错误。
  • -y: 自动回答“是”来修复所有错误。
  • -n: 不执行实际的文件系统检查和修复操作,仅显示出要执行的操作。
  • -v: 显示详细的信息。
  • -c: 检查磁盘上的坏道。
  • -r: 交互式修复错误。

项目需求:检测分区/dev/sdb1是否有错误,如果有错误则自动修复(必须先把磁盘卸载才能检查分区)

umount /dev/sdb1

fsck -a /dev/sdb1

项目四,dd命令

dd 命令最初是作为 Unix 操作系统的一部分开发的,它的名字来源于早期的 IBM 主机系统中的“数据定义”(Data Definition)概念。dd 命令可以用于多种用途,包括但不限于:

  • 制作启动盘
  • 备份和恢复磁盘或分区
  • 创建和操作文件系统
  • 生成随机数据
  • 转换文件格式

基本用法

dd 命令的基本语法如下:

dd if=输入文件 of=输出文件 bs=块大小

其中:

  • if=输入文件:指定输入文件的路径。可以是普通文件、设备文件或特殊文件。
  • of=输出文件:指定输出文件的路径。可以是普通文件、设备文件或特殊文件。
  • bs=块大小:设置每个块的大小。可以使用不同的单位(如字节、千字节、兆字节等)来指定大小。

常用选项

除了上述基本参数外,dd 命令还支持许多其他选项,用于更精细地控制其行为。以下是一些常用的选项:

  • count=块数:指定要复制的块数。
  • skip=块数:跳过输入文件的前几个块。
  • seek=块数:跳过输出文件的前几个块。
  • conv=转换选项:进行数据转换操作,如大小写转换、字节交换等。
  • status=状态:显示复制进度和传输速率信息。

项目需求:当系统的交换分区不能满足系统的要求,而磁盘上又没有可用空间时,可以使用交换文件提供虚拟内存

1, dd if=/dev/zero of=/swap bs=1024 count=10240

参数解释

  • if=/dev/zero: 指定输入文件为 /dev/zero,这是一个特殊的文件,它会不断提供空字符(null bytes)。
  • of=/swap: 指定输出文件为 /swap,这是你将要创建的交换文件的名称。
  • bs=1024: 指定块大小(block size)为 1024 字节。
  • count=10240: 指定要复制的块数为 10240。

计算交换文件大小

通过 bs=1024 和 count=10240,可以计算出交换文件的大小: 文件大小=块大小×块数=1024字节/块×10240块=10485760字节=10MB文件大小=块大小×块数=1024字节/块×10240块=10485760字节=10MB

2,mkswap /swap

这个命令用于将一个文件或分区格式化为交换空间。/swap 是交换文件或分区的路径。执行此命令后,系统会将指定的文件或分区初始化为交换空间,以便在内存不足时使用

3,swapon /swap

这个命令用于启用之前创建的交换空间。/swap 是交换文件或分区的路径。执行此命令后,系统会开始使用该交换空间来扩展内存

4,swapoff /swap

这个命令用于禁用之前启用的交换空间。/swap 是交换文件或分区的路径。执行此命令后,系统将不再使用该交换空间

项目五,df命令

df命令是Linux系统中的一个命令,它的作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。

df [选项] [文件名]

  • -a 或 --all:显示所有的文件系统,包括虚拟文件系统。
  • -B 或 --block-size:指定单位大小。比如1k,1m等。
  • -h 或 --human-readable:以人们易读的GB、MB、KB等格式显示。
  • -i 或 --inodes:不用硬盘容量,而是以inode的数量来显示。
  • -k:以KB的容量显示各文件系统。
  • -m:以MB的容量显示各文件系统。
  • --no-sync:在统计使用信息之前不调用sync命令(默认)。
  • -sync:在统计使用信息之前调用sync命令。
  • -P 或 --portability:使用POSIX格式显示。
  • -t 或 --type=TYPE:只显示指定类型的文件系统。
  • -T 或 --print-type:显示文件系统类型。
  • --help:显示帮助信息。
  • --version:显示版本信息

1,df 列出各文件系统的磁盘占用情况

2df -ia 列出各文件系统的i节点的使用情况

3df -T 列出文件系统类型

项目六,du命令

du命令是Linux系统中的一个命令,它的作用是显示目录或文件所占磁盘空间的大小。可以用来查看磁盘已被使用多少空间和还剩余多少空间。

du [选项] [文件或目录]

  • -a 或 --all:为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
  • -B 或 --block-size=SIZE:以SIZE为计量单位显示目录或文件大小。
  • -b 或 --bytes:以byte为单位显示目录或文件大小。
  • -c 或 --total:除了显示目录或文件的大小外,同时显示所有目录或文件的总和。
  • -h 或 --human-readable:以K,M,G为单位,提高信息的可读性。
  • -H 或 --si:与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
  • -l 或 --count-links:重复计算硬连接的文件。
  • -L 或 --dereference:统计符号连接源文件大小。
  • -P 或 --no-dereference:不同符号链接源文件的大小,默认。
  • -s 或 --summarize:仅显示总计,即当前目录的大小。
  • -S 或 --separate-dirs:显示每个目录的大小时,并不含其子目录的大小。
  • -x 或 --one-file-system:忽略位于其他文件系统上的目录。
  • --exclude=PATTERN:忽略符合PATTERN规则的目录或文件。
  • --max-depth=N:只显示N层内的目录大小。
  • --time:显示目录或子目录中文件的最后修改时间。
  • --time-style=STYLE:以STYLE指定的格式显示时间。

1,以字节为单位列出所有文件和目录的磁盘空间占用情况 du -ab

项目七,mount/umount

  • 在磁盘建立好文件系统后,还需要将新建立的文件系统挂载到操作系统上才能使用,这个过程称为挂载。文件系统所挂载的目录称为挂载点(Mount Point
  • linux提供了/mnt,/media两个挂载点。一般挂载点是一个空目录,否则目录中原来的文件系统将被隐藏
  • 通常将光盘和软盘挂载载到/media/cdrom,/mnt/cdrom,/media/floppy/mnt/floppy中,对应的设备文件名正是/dev/cdrom/dev/fd0

mount命令用于挂载文件系统,而umount命令用于卸载已经挂载的文件系统。这两个命令通常成对使用,以确保文件系统的正确管理和数据的一致性

mount [-afFhnrvVw] [-L标签] [-o选项] [-t文件系统类型] [设备名] [加载点]

常用选项

  • -a:加载/etc/fstab中所有的文件系统。
  • -f:不实际加载设备,可与-v等参数同时使用以查看mount的执行过程。
  • -o:指定加载文件系统时的选项,如async、atime、auto等。
  • -t:指定设备的文件系统类型,如hpfs、iso9660等。
  • -w:以可读写模式加载设备,默认设置。

umount [选项] [挂载点或设备]

常用选项

  • -f:强制卸载(仅用于NFS挂载的文件系统)。
  • -l:懒卸载,立即取消挂载点的挂载,但实际上延迟到文件系统不再使用时再完成卸载操作。
  • -v:显示详细信息。
  • -r:在卸载失败时尝试以只读方式重新挂载文件系统。

1,将 /dev/sdb1 设备上的 ext4 文件系统挂载到 /newFS 目录

mount -t ext4 /dev/sdb1 /newFS

2,卸载/dev/sdb1设备

umount /dev/sdb1  或者 umount /newFS

项目八,文件系统的自动挂载

在Linux系统中,文件系统的自动挂载可以通过两种主要方式实现:使用/etc/fstab文件和使用Autofs服务。

1,使用/etc/fstab文件

/etc/fstab文件包含了系统启动时需要自动挂载的文件系统信息。通过编辑这个文件,你可以指定哪些设备应该在系统启动时挂载到哪些挂载点。

步骤:

  1. 使用文本编辑器(如vim)打开/etc/fstab文件:
    vim /etc/fstab
  2. 在文件中添加一行来指定要自动挂载的文件系统。例如,如果你想将/dev/sdb1挂载到/newFS,可以添加如下行:
    /dev/sdb1  /newFS  ext4  defaults  0  2
    这行的含义如下:
    • /dev/sdb1: 要挂载的设备或分区。
    • /newFS: 挂载点。
    • ext4: 文件系统类型。
    • defaults: 使用默认挂载选项。
    • 0: 表示是否需要备份(0表示不需要)。
    • 2: 表示文件系统检查的顺序(2表示在根文件系统之后检查)。
  3. 保存并退出编辑器。
  4. 验证实验效果 mount -a

2使用Autofs服务

Autofs是一种自动挂载服务,它可以在需要时自动挂载文件系统,并在文件系统不再使用时自动卸载。

步骤:

  1. 安装Autofs服务(如果尚未安装):
    apt-get install
    -y autofs

  1. 配置/etc/auto.master 文件来指定自动挂载的挂载点和配置文件。例如,你可以添加如下行:
    /auto /etc/auto.misc  --timeout 60
    这行的含义如下:
    • /auto: 挂载点。
    • /etc/auto.misc: 配置文件。
    • --timeout 60: 文件系统在空闲60秒后自动卸载。
  2. 创建或编辑/etc/auto.misc 文件来指定具体的挂载信息。例如:
    cd /dev/cdrom
    fd /dev/fd0
  3. 启动Autofs服务:
    sudo systemctl start autofs
  4. 设置Autofs服务在系统启动时自动启动:
    sudo systemctl enable autofs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483950.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI技术在电商行业中的应用与发展

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

重生之我在异世界学编程之C语言:选择结构与循环结构篇

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、选择结构1. if语句2. else i…

CSS 动画效果实现:图片展示与交互

​🌈个人主页:前端青山 🔥系列专栏:Css篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Css篇专栏内容:CSS 动画效果实现:图片展示与交互 前言 在现代网页设计中,动态效果能够显著…

2024前端框架年度总结报告(二):新生qwik+solid和次新生svelte+Astro对比 -各自盯着前端的哪些个痛点 - 前端的区域发展差异

引言 2024年,前端开发依然是技术领域的热点之一。随着 Web 应用的日益复杂,前端框架的更新换代也加速了。尽管 React、Vue 和 Angular 老牌框架年度总结 等“老牌”框架仍然占据着主流市场,但一些新兴的框架在不断挑战这些“巨头”的地位&am…

在 MacOS 上为 LM Studio 更换镜像源

在 MacOS 之中使用 LM Studio 部署本地 LLM时,用户可能会遇到无法下载模型的问题。 一般的解决方法是在 huggingface.co 或者国内的镜像站 hf-mirror.com 的项目介绍卡页面下载模型后拖入 LM Studio 的模型文件夹。这样无法利用 LM Studio 本身的搜索功能。 本文将…

Linux:基础开发工具

1. 软件包管理器 (1) 什么是软件包 在Linux下安装软件,主要有以下方法 1. 下载到程序的源代码,并进行编译得到可执行程序。 2. 软件包安装-- 获取rpm安装包,用rpm指令安装 3. 包管理器 yum(centos) apt/apt-get(ubuntu) 进行安装。&am…

并发框架disruptor实现生产-消费者模式

Disruptor是LMAX公司开源的高性能内存消息队列&#xff0c;单线程处理能力可达600w订单/秒。本文将使用该框架实现生产-消费者模式。一、框架的maven依赖 <!-- https://mvnrepository.com/artifact/com.lmax/disruptor --><dependency><groupId>com.lmax<…

「Mac玩转仓颉内测版42」小学奥数篇5 - 圆和矩形的面积计算

本篇将通过 Python 和 Cangjie 双语解决简单的几何问题&#xff1a;计算圆的面积和矩形的面积。通过这道题&#xff0c;学生将掌握如何使用公式解决几何问题&#xff0c;并学会用编程实现数学公式。 关键词 小学奥数Python Cangjie几何计算 一、题目描述 编写一个程序&#…

unordered系列容器模拟实现

1.哈希桶 hash.h #pragma once #include<iostream> #include<vector> using namespace std;template<class T> struct HashNode {HashNode(const T& data):_data(data),_next(nullptr){}T _data;HashNode<T>* _next; }; template<class K>…

基于Transformer的编码器-解码器图像描述模型在AMD GPU上的应用

Transformer based Encoder-Decoder models for image-captioning on AMD GPUs — ROCm Blogs 图像描述&#xff0c;即基于生成式人工智能&#xff08;GenAI&#xff09;自动生成简洁的图像文本描述&#xff0c;在现实世界中有着非常重要的应用。例如&#xff0c;图像描述可以为…

Linux命令行解释器的模拟实现

欢迎拜访&#xff1a;羑悻的小杀马特.-CSDN博客 本篇主题&#xff1a;Linux命令行解释器 制作日期&#xff1a;2024.12.04 隶属专栏&#xff1a;linux之旅 本篇简介&#xff1a; 主线带你用ubuntu版系统步步分析实现基础版本的shell&#xff1b;比如支持重定向操作&#xff0…

Language Translation with TorchText

前言&#xff1a; 利用torchtext类来处理一个著名的数据集&#xff0c;包含了一些英文和德文句子。利用该数据处理sequence-to-sequence模型&#xff0c;通过注意力机制&#xff0c;可以将德语翻译成英语。Torchtext&#xff1a;它是 PyTorch 生态系统中的一个库&#xff0c;主…

【Redis篇】 List 列表

在 Redis 中&#xff0c;List 是一种非常常见的数据类型&#xff0c;用于表示一个有序的字符串集合。与传统的链表结构类似&#xff0c;Redis 的 List 支持在两端进行高效的插入和删除操作&#xff0c;因此非常适合实现队列&#xff08;Queue&#xff09;和栈&#xff08;Stack…

11.爬虫

前言&#xff1a; 正则表达式的作用&#xff1a; 作用一&#xff1a;校验字符串是否满足规则 作用二&#xff1a;在一段文本中查找满足要求的内容 一.Pattern类和Matcher类&#xff1a; 1.Pattern类&#xff1a;表示正则表达式 a.因此获取Pattern对象就相当于获取正则表达式…

【Linux篇】权限管理 - 用户与组权限详解

一. 什么是权限&#xff1f; 首先权限是限制人的。人 真实的人 身份角色 权限 角色 事物属性 二. 认识人–用户 Linux下的用户分为超级用户和普通用户 root :超级管理员&#xff0c;几乎不受权限的约束普通用户 :受权限的约束超级用户的命令提示符是#&#xff0c;普通用…

【RDMA】RDMA read和write编程实例(verbs API)

WRITE|READ编程&#xff08;RDMA read and write with IB verbs&#xff09; &#xff08;本文讲解的示例代码在&#xff1a;RDMA read and write with IB verbs | The Geek in the Corner&#xff09; 将 RDMA 与verbs一起使用非常简单&#xff1a;首先注册内存块&#xff0c…

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称&#xff1a;UPIrregularWidgets 插件包含以下功能 你可以点击任何图片&#xff0c;而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能&#xff0c;复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…

洛谷P2670扫雷游戏(Java)

三.P2670 [NOIP2015 普及组] 扫雷游戏 题目背景 NOIP2015 普及组 T2 题目描述 扫雷游戏是一款十分经典的单机小游戏。在 n 行 m列的雷区中有一些格子含有地雷&#xff08;称之为地雷格&#xff09;&#xff0c;其他格子不含地雷&#xff08;称之为非地雷格&#xff09;。玩…

如何加强游戏安全,防止定制外挂影响游戏公平性

在现如今的游戏环境中&#xff0c;外挂始终是一个困扰玩家和开发者的问题。尤其是定制挂&#xff08;Customized Cheats&#xff09;&#xff0c;它不仅复杂且隐蔽&#xff0c;更能针对性地绕过传统的反作弊系统&#xff0c;对游戏安全带来极大威胁。定制挂通常是根据玩家的需求…

概率论相关知识随记

作为基础知识的补充&#xff0c;随学随记&#xff0c;方便以后查阅。 概率论相关知识随记 期望&#xff08;Expectation&#xff09;期望的定义离散型随机变量的期望示例&#xff1a;掷骰子的期望 连续型随机变量的期望示例&#xff1a;均匀分布的期望 期望的性质线性性质期望的…