lsblk 命令学习

一、命令介绍

lsblk(list block devices) 是一个用于列出块设备的命令,它提供了关于系统中所有块设备的详细信息。块设备包括硬盘、分区、磁盘镜像文件等。lsblk 命令非常有用,特别是在需要查看和管理存储设备时。

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb    253:16   0  300G  0 disk 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot 

字段含义如下:

字段含义
NAME设备名称。
MAJ:MIN主设备号和次设备号。
RM是否可移动(Removable),1 表示可移动,0 表示不可移动。
SIZE设备大小。
RO只读标志,1 表示只读,0 表示可读写。
TYPE设备类型,如 disk(磁盘)、part(分区)、rom(只读存储)等。
MOUNTPOINT挂载点,如果设备没有挂载,则为空。

二、命令参数

2.1、参数含义

$ lsblk --helpUsage:lsblk [options] [<device> ...]Options:-a, --all            print all devices-b, --bytes          print SIZE in bytes rather than in human readable format-d, --nodeps         don't print slaves or holders-D, --discard        print discard capabilities-e, --exclude <list> exclude devices by major number (default: RAM disks)-I, --include <list> show only devices with specified major numbers-f, --fs             output info about filesystems-h, --help           usage information (this)-i, --ascii          use ascii characters only-m, --perms          output info about permissions-l, --list           use list format output-n, --noheadings     don't print headings-o, --output <list>  output columns-p, --paths          print complate device path-P, --pairs          use key="value" output format-r, --raw            use raw output format-s, --inverse        inverse dependencies-t, --topology       output info about topology-S, --scsi           output info about SCSI devices-h, --help     display this help and exit-V, --version  output version information and exit
参数含义
-a, --all显示所有设备,包括空设备。
-b, --bytes以字节为单位显示设备大小。
-d, --nodeps不显示依赖关系(例如,不显示分区下的子设备)。
-e, --exclude <list>排除指定类型的设备,多个类型用逗号分隔。例如,--exclude 1,7 排除设备类型 1 和 7。
-f, --fs显示文件系统信息。
-h, --help显示帮助信息。
-I, --include <list>仅显示指定类型的设备,多个类型用逗号分隔。例如,--include 8,9 只显示设备类型 8 和 9。
-l, --list使用列表格式输出。
-n, --noheadings不显示标题行。
-o, --output <list>指定要显示的列,多个列用逗号分隔。例如,--output NAME,SIZE,TYPE
-P, --pairs使用键值对格式输出。
-p, --paths显示完整路径。
-r, --raw使用原始格式输出。
-S, --scsi显示 SCSI 设备信息。
-t, --topology显示拓扑信息。
-V, --version显示版本信息。

2.2、示例展示

2.2.1、-a

显示所有设备,包括空设备

$ lsblk -a
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop1    7:1    0        0 loop 
vdb    253:16   0  300G  0 disk 
loop2    7:2    0        0 loop 
loop0    7:0    0        0 loop 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot
# 相比lsblk展示了空设备
2.2.2、-b

以字节为单位显示设备大小

$ lsblk -b
NAME   MAJ:MIN RM         SIZE RO TYPE MOUNTPOINT
vdb    253:16   0 322122547200  0 disk 
vda    253:0    0 128849018880  0 disk 
├─vda2 253:2    0 127773736960  0 part /
└─vda1 253:1    0   1073741824  0 part /boot
2.2.3、-d

不显示依赖关系(例如,不显示分区下的子设备)

$ lsblk -d
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb  253:16   0  300G  0 disk 
vda  253:0    0  120G  0 disk 
2.2.4、-e

排除指定类型的设备,多个类型用逗号分隔,排除的设备需要写设备类型编号

$ lsblk -a
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop1    7:1    0        0 loop 
vdb    253:16   0  300G  0 disk 
loop2    7:2    0        0 loop 
loop0    7:0    0        0 loop 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot$ lsblk -e 7
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb    253:16   0  300G  0 disk 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot
2.2.5、-I

仅显示指定类型的设备,多个类型用逗号分隔,同样需要书写指定的设备类型编号

$ lsblk -a
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop1    7:1    0        0 loop 
vdb    253:16   0  300G  0 disk 
loop2    7:2    0        0 loop 
loop0    7:0    0        0 loop 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot$ lsblk -a -I 7
NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop1   7:1    0       0 loop 
loop2   7:2    0       0 loop 
loop0   7:0    0       0 loop 
2.2.6、-f

显示文件系统信息

$ lsblk -f 
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
vdb                                                      
vda                                                      
├─vda2 ext4         9518ef47-1658-44fa-90fd-4fbf4bd0c799 /
└─vda1 ext4         f0d8224f-6cba-426a-a091-b70024003f95 /boot
2.2.7、-l

使用列表格式输出

$ lsblk -l
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb  253:16   0  300G  0 disk 
vda  253:0    0  120G  0 disk 
vda2 253:2    0  119G  0 part /
vda1 253:1    0    1G  0 part /boot
2.2.8、-n

不显示标题行

$ lsblk -n
vdb    253:16   0  300G  0 disk 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot
2.2.9、-o

指定要显示的列,多个列用逗号分隔.

$ lsblk -o name,type
NAME   TYPE
vdb    disk
vda    disk
├─vda2 part
└─vda1 part
2.2.10、-P

使用键值对方式输出

$ lsblk -P
NAME="vdb" MAJ:MIN="253:16" RM="0" SIZE="300G" RO="0" TYPE="disk" MOUNTPOINT=""
NAME="vda" MAJ:MIN="253:0" RM="0" SIZE="120G" RO="0" TYPE="disk" MOUNTPOINT=""
NAME="vda2" MAJ:MIN="253:2" RM="0" SIZE="119G" RO="0" TYPE="part" MOUNTPOINT="/"
NAME="vda1" MAJ:MIN="253:1" RM="0" SIZE="1G" RO="0" TYPE="part" MOUNTPOINT="/boot"
2.2.11、-p

小写,显示完整路径

lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb    253:16   0  300G  0 disk 
vda    253:0    0  120G  0 disk 
├─vda2 253:2    0  119G  0 part /
└─vda1 253:1    0    1G  0 part /boot
2.2.12、-r

以原始格式输出

$ lsblk -r
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 253:16 0 300G 0 disk 
vda 253:0 0 120G 0 disk 
vda2 253:2 0 119G 0 part /
vda1 253:1 0 1G 0 part /boot
2.2.13、-t

显示拓扑信息

$ lsblk -t
NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED       RQ-SIZE  RA WSAME
vdb            0    512      0     512     512    1 mq-deadline     256 128    0B
vda            0    512      0     512     512    1 mq-deadline     256 128    0B
├─vda2         0    512      0     512     512    1 mq-deadline     256 128    0B
└─vda1         0    512      0     512     512    1 mq-deadline     256 128    0B

2.3、-o 字段

-o 可用字段如下:

Available columns (for --output):NAME  device nameKNAME  internal kernel device nameMAJ:MIN  major:minor device numberFSTYPE  filesystem typeMOUNTPOINT  where the device is mountedLABEL  filesystem LABELUUID  filesystem UUIDPARTLABEL  partition LABELPARTUUID  partition UUIDRA  read-ahead of the deviceRO  read-only deviceRM  removable deviceMODEL  device identifierSERIAL  disk serial numberSIZE  size of the deviceSTATE  state of the deviceOWNER  user nameGROUP  group nameMODE  device node permissionsALIGNMENT  alignment offsetMIN-IO  minimum I/O sizeOPT-IO  optimal I/O sizePHY-SEC  physical sector sizeLOG-SEC  logical sector sizeROTA  rotational deviceSCHED  I/O scheduler nameRQ-SIZE  request queue sizeTYPE  device typeDISC-ALN  discard alignment offsetDISC-GRAN  discard granularityDISC-MAX  discard max bytesDISC-ZERO  discard zeroes dataWSAME  write same max bytesWWN  unique storage identifierRAND  adds randomnessPKNAME  internal parent kernel device nameHCTL  Host:Channel:Target:Lun for SCSITRAN  device transport typeREV  device revisionVENDOR  device vendor

字段含义如下表:

字段含义
NAME设备名称。这是用户空间中的设备名称。
KNAME内核中的设备名称。这是内核内部使用的设备名称。
MAJ:MIN主设备号和次设备号。主设备号标识设备类型,次设备号标识该类型的特定实例。
FSTYPE文件系统类型。例如,ext4、xfs 等。
MOUNTPOINT挂载点。显示设备被挂载到哪个目录。
LABEL文件系统标签。用户定义的文件系统标签。
UUID文件系统 UUID。全局唯一标识符,用于唯一标识文件系统。
PARTLABEL分区标签。用户定义的分区标签。
PARTUUID分区 UUID。全局唯一标识符,用于唯一标识分区。
RA读取预取大小。内核在读取数据时会预先读取的数据量。
RO只读设备。0 表示可读写,1 表示只读。
RM可移动设备。0 表示不可移动,1 表示可移动。
MODEL设备标识符。通常是设备的型号。
SERIAL磁盘序列号。设备的序列号。
SIZE设备大小。设备的总容量。
STATE设备状态。例如 “running” 表示设备正在运行。
OWNER设备所有者。拥有该设备节点的用户名。
GROUP设备组。拥有该设备节点的用户组名。
MODE设备节点权限。设备文件的权限设置。
ALIGNMENT对齐偏移量。设备的对齐偏移量。
MIN-IO最小 I/O 大小。设备支持的最小 I/O 操作大小。
OPT-IO最优 I/O 大小。设备的最佳 I/O 操作大小。
PHY-SEC物理扇区大小。设备的物理扇区大小。
LOG-SEC逻辑扇区大小。设备的逻辑扇区大小。
ROTA旋转设备。0 表示非旋转设备(如 SSD)即固态硬盘,1 表示旋转设备(如 HDD),即机械硬盘。
SCHEDI/O 调度器名称。当前使用的 I/O 调度算法。
RQ-SIZE请求队列大小。设备的请求队列大小。
TYPE设备类型。例如 disk(磁盘)、part(分区)等。
DISC-ALNdiscard 对齐偏移量。discard 操作的对齐偏移量。
DISC-GRANdiscard 颗粒度。discard 操作的颗粒度。
DISC-MAXdiscard 最大字节数。一次 discard 操作可以处理的最大字节数。
DISC-ZEROdiscard 零数据。是否将 discard 区域填充为零。
WSAMEwrite same 最大字节数。一次 write same 操作可以处理的最大字节数。
WWN全球唯一存储标识符。设备的全球唯一标识符。
RAND添加随机性。设备是否支持随机访问。
PKNAME父设备的内核名称。如果是分区,显示其所属的磁盘的内核名称。
HCTLHost:Channel:Target:Lun 用于 SCSI 设备。SCSI 设备的主机、通道、目标和逻辑单元编号。
TRAN设备传输类型。例如 sas、sata 等。
REV设备修订版本。设备的硬件或固件版本。
VENDOR设备制造商。设备的制造厂商

示例如下:

lsblk -o name,rm
# 用于列出块设备,并仅显示设备名称和是否可移动

三、blkid 使用

blkid用于显示或查找块设备的属性。它可以从文件系统超级块、分区表和磁盘标签中提取信息,并显示这些信息。

blkid
/dev/vda2: UUID="9518ef47-1658-44fa-90fd-4fbf4bd0c799" TYPE="ext4" 
/dev/vda1: UUID="f0d8224f-6cba-426a-a091-b70024003f95" TYPE="ext4" 

参数如下:

Options:-c <file>   read from <file> instead of reading from the defaultcache file (-c /dev/null means no cache)-d          don't encode non-printing characters-h          print this usage message and exit-g          garbage collect the blkid cache-o <format> output format; can be one of:value, device, export or full; (default: full)-k          list all known filesystems/RAIDs and exit-s <tag>    show specified tag(s) (default show all tags)-t <token>  find device with a specific token (NAME=value pair)-l          look up only first device with token specified by -t-L <label>  convert LABEL to device name-U <uuid>   convert UUID to device name-V          print version and exit<dev>       specify device(s) to probe (default: all devices)

四、相关知识

4.1、设备类型编号

在Linux下,一切皆文件,设备也不例外,为了管理这些设备,系统为它们各自都编了号,而每个设备号又分为主设备号和次设备号。主设备号用来区分不同类型的设备,而次设备号用来区分同一类型内的多个设备(及其设备分区)。

查看方法:

4.1.1、/proc/devices文件

/proc/devices 文件是 Linux 系统中 /proc 虚拟文件系统的一部分,它提供了关于系统中字符设备和块设备的信息。这个文件列出了所有已注册的设备驱动程序及其对应的主设备号。
如下:

$ cat /proc/devices
Character devices:1 mem4 /dev/vc/04 tty4 tty05 /dev/tty5 /dev/console5 /dev/ptmx7 vcs7 vcs17 vcsa7 vcsa110 misc13 input29 fb81 sg180 usb204 rtc254 ttyprintk254 vcoploopBlock devices:1 ramdisk7 loop8 sd9 md11 sr31 mdp253 device-mapper254 dm-verity
4.1.2、ll -l /dev

/dev 目录是 Linux 系统中一个非常重要的目录,它包含了系统中的设备文件。这些设备文件代表了硬件设备,如硬盘、终端、串口等。

$ ls -l /dev
...
crw--w----  1 root tty       4,  60 Nov 30  2022 tty60
crw--w----  1 root tty       4,  61 Nov 30  2022 tty61
crw-rw----  1 root dialout   4,  66 Nov 30  2022 ttyS2
crw-rw----  1 root dialout   4,  67 Nov 30  2022 ttyS3
crw-------  1 root root     10, 239 Nov 30  2022 uhid
crw-------  1 root root     10, 223 Nov 30  2022 uinput
crw-rw-rw-  1 root root      1,   9 Nov 30  2022 urandom
crw-------  1 root root    244,   0 Nov 30  2022 usbmon0
crw-rw----  1 root tty       7,   0 Nov 30  2022 vcs
crw-rw----  1 root tty       7,   1 Nov 30  2022 vcs1
brw-rw----  1 root disk    253,   0 Nov 30  2022 vda
brw-rw----  1 root disk    253,   1 Nov 30  2022 vda1
brw-rw----  1 root disk    253,   2 Oct 20  2023 vda2
brw-rw----  1 root disk    253,  16 Nov 30  2022 vdb
...

设备含义如下表:

设备名称主设备号描述
mem1系统内存设备。
kmsg1内核消息缓冲区。
null1空设备,任何写入该设备的数据都会被丢弃,而从它读取数据则总是返回EOF(End of File)。
full1总是返回EIO错误的设备。
random1随机数生成器。
urandom1类似于/dev/random,但在熵池不足时会使用确定性随机数发生器。
zero1零填充设备,无论何时读取都返回零字节。
port1I/O 端口
tty4虚拟终端设备
ttyS4串行通信端口
console5控制台设备。
ptmx5Pseudo-Terminal Master Xfer device,用于创建伪终端。
vcs7Virtual Console Screen devices,虚拟控制台屏幕。
vcsa7Virtual Console Screen Attributes devices,虚拟控制台属性。
vcsu7Virtual Console Screen Unicode devices,虚拟控制台Unicode显示
loop7循环设备,允许文件作为块设备使用。
autofs10自动挂载文件系统。
btrfs-control10Btrfs文件系统的控制接口。
cpu_dma_latency10CPU DMA延迟控制。
cuse10用户空间字符设备支持。
fuse10FUSE (Filesystem in Userspace) 设备。
hpet10High Precision Event Timer,高精度事件计时器。
hwrng10硬件随机数生成器。
mcelog10Machine Check Exception日志,机器检查异常日志。
nvram10Non-Volatile RAM,非易失性 RAM。
rfkill10无线设备开关控制。
snapshot10快照设备。
uhid10用户空间HID设备支持。
uinput10用户空间输入事件支持。
vga_arbiter10VGA仲裁器。
vhci10Virtual Host Controller Interface。
vhost-net10Vhost网络设备。
vhost-vsock10Vhost虚拟套接字设备。
loop-control10管理 loop 设备的控制接口
fb029帧缓冲设备(Frame Buffer Device)的一个实例
ppp108虚拟PPP设备,用于在两个节点之间建立直接的点对点连接,支持多种传输介质,如电话线、串行线、以太网等
vport0p1242Open vSwitch 创建的一个内部端口,设备通常与虚拟交换机(如 Open vSwitch, OVS)相关联
usbmon0244用于 USB 监控的设备文件
rtc0249rtc0 通常对应于硬件中的实时时钟芯片,如主板上的 CMOS 时钟
vda253第一个虚拟磁盘
vda1253第一个虚拟磁盘的第一个分区

/dev 下目录含义表

目录用途内容
/dev/block包含块设备文件。块设备是指可以随机访问固定大小数据块的设备,如硬盘、SSD 和分区。通常包含与磁盘和分区相关的设备文件,例如 /dev/sda、/dev/sdb1 等。
/dev/char包含字符设备文件。字符设备是指按字节顺序读写的设备,如终端、串行端口等通常包含与终端、串行端口、USB 设备等相关的设备文件,例如 /dev/ttyS0、/dev/usb/hiddev0 等。
/dev/cpu包含与 CPU 相关的设备文件。通常包含与每个 CPU 核心相关的微码更新接口和其他控制文件,例如 /dev/cpu/0/msr、/dev/cpu/0/cpuid 等。
/dev/disk包含与磁盘相关的设备文件和子目录。通常包含与磁盘和分区相关的子目录,例如 by-id、by-path、by-uuid 等,这些子目录用于通过不同的标识符访问磁盘设备。
/dev/dri包含 Direct Rendering Infrastructure (DRI) 设备文件,用于图形渲染。通常包含与显卡和 GPU 相关的设备文件,例如 /dev/dri/card0、/dev/dri/renderD128 等。
/dev/hugepages用于管理大页内存(huge pages)。大页内存是一种优化技术,用于减少内存管理开销。通常为空,但可以通过配置来使用大页内存。
/dev/input包含输入设备文件,如键盘、鼠标、触摸屏等。通常包含与输入设备相关的设备文件,例如 /dev/input/event0、/dev/input/mouse0 等。
/dev/mapper包含逻辑卷管理器(LVM)或其他映射设备的设备文件。通常包含由 LVM 或其他存储管理工具创建的逻辑卷设备文件,例如 /dev/mapper/vg0-lv0。
/dev/mqueue用于 POSIX 消息队列。POSIX 消息队列是一种进程间通信机制。通常为空,但在使用消息队列时会生成相应的文件。
/dev/net包含与网络相关的设备文件。通常包含与网络接口和隧道相关的设备文件,例如 /dev/net/tun 用于创建 TUN/TAP 设备。
/dev/pts包含伪终端(pseudo-terminal)设备文件。通常包含与终端模拟器和远程登录会话相关的设备文件,例如 /dev/pts/0、/dev/pts/1 等。
/dev/raw包含原始设备文件,允许直接访问块设备。通常包含 /dev/raw/rawX 文件,其中 X 是一个数字,用于将块设备绑定到原始设备。
/dev/shm是共享内存区域,用于进程间通信(IPC)。通常包含临时文件和内存映射文件,可以在多个进程之间共享。
/dev/vfio包含 VFIO(Virtual Function I/O)设备文件,用于将物理设备直接分配给用户空间进程。通常包含与 VFIO 相关的设备文件,例如 /dev/vfio/vfio0。
/dev/virtio-ports包含 VirtIO 串行端口设备文件,常用于虚拟化环境中进行主机与客户机之间的通信。通常包含与 VirtIO 串行端口相关的设备文件,例如 /dev/virtio-ports/org.qemu.guest_agent.0。

!!!
主设备号(Major Device Number)通常用于标识设备类型,并且在大多数情况下是相对固定的。但还有一些设备号是动态分配的,还会因为不同厂商以及内核版本不同主设备号不同。

4.1.3、cat sys/class/*/*/dev

/sys/class 目录是 Linux 系统中 /sys 文件系统的一部分,用于组织和表示系统中的设备。/sys 文件系统提供了对内核数据结构的访问,使用户能够查看和操作设备的状态和属性,可以通过此目录下设备的dev文件查看主设备号和次设备号。如下:

$ cat /sys/class/block/loop0/dev 
7:0

4.2、字符设备和块设备

4.2.1、字符设备:

字符设备是一种以字节流形式进行读写的设备。每次读写操作通常只涉及一个或几个字节。
字符设备通常是面向字符的,数据按顺序传输,没有缓存机制。

特点:

  • 逐字节读写:字符设备的数据传输是逐字节进行的,不支持随机访问。
  • 无缓冲:字符设备通常不使用缓冲区,数据直接传输到应用程序或从应用程序传输出去。
  • 简单驱动程序:字符设备的驱动程序相对简单,因为它们不需要处理复杂的缓存和寻址问题。
  • 常见例子:终端(如 /dev/tty)、串口(如 /dev/ttyS0)、鼠标、键盘等。

使用场景:

  • 适用于需要逐字节读写数据的设备,例如终端输入输出、串口通信等。
  • 适用于实时性要求较高的设备,因为数据可以立即传输而不需要等待缓存。
4.2.2、块设备(Block Devices)

块设备是一种以固定大小的数据块为单位进行读写的设备。每次读写操作通常涉及多个字节,通常是 512 字节或更多。块设备支持随机访问,可以跳过某些块直接读取或写入特定块。

特点:

  • 块为单位读写:块设备的数据传输是以块为单位进行的,每个块的大小通常是固定的(如 512 字节、4KB 等)。
  • 有缓冲:块设备通常使用缓冲区来提高读写效率,减少对物理设备的频繁访问。
  • 复杂驱动程序:块设备的驱动程序较为复杂,需要处理缓存、寻址和错误恢复等问题。
  • 常见例子:硬盘、SSD、USB 驱动器、CD-ROM、软盘等。

使用场景:

  • 适用于需要高效存储和访问大量数据的设备,例如文件系统、数据库等。
  • 适用于需要随机访问数据的场景,因为可以跳过某些块直接读取或写入特定块
4.2.3、字符设备和块设备比较
特点字符设备块设备
数据单位字节(逐字节读写)数据块(固定大小的块)
访问方式顺序访问随机访问
缓冲无缓冲有缓冲
驱动程序复杂度相对简单较为复杂
常见例子终端、串口、鼠标、键盘硬盘、SSD、USB 驱动器、CD-ROM
适用场景实时性要求高、逐字节读写大量数据存储、随机访问

4.3、可移动设备和不可移动设备

lsblk 的输出中包含多个列,其中 RM 列表示设备的可移动性(Removability)。

RM 值的含义:

  • RM=1:表示设备是可移动的。
  • RM=0:表示设备是不可移动的。

可移动设备 (RM=1):可移动设备是指可以随时从系统中移除而不会导致系统崩溃或数据丢失的设备。常见的可移动设备包括 USB 闪存盘、外部硬盘、SD 卡等。

特点:

  • 这些设备通常通过 USB 或其他热插拔接口连接到系统。
  • 系统会检测到这些设备的插入和移除,并相应地进行挂载和卸载操作。
  • 移除这些设备时,系统会提示用户安全卸载以防止数据损坏。

不可移动设备 (RM=0):不可移动设备是指固定在系统中的设备,通常不能在系统运行时随意移除。常见的不可移动设备包括内置硬盘、SSD 和 NVMe 设备。

特点:

  • 这些设备通常是系统启动和运行所必需的。
  • 移除这些设备可能会导致系统崩溃或数据丢失。
  • 系统对这些设备的管理更为严格,通常不允许在运行时移除。

4.4、固态硬盘和机械硬盘

硬盘(HDD)和固态硬盘(SSD)是两种常见的存储设备,它们在结构、性能和使用场景上有所不同。了解这些差异有助于更好地选择和管理存储设备。

硬盘(HDD):机械硬盘(Hard Disk Drive, HDD)是一种传统的存储设备,使用旋转的磁盘来存储数据。数据通过磁头读写到磁盘表面的不同位置。

特点:

  • 容量:HDD 通常提供更大的存储容量,价格相对较低。
  • 速度:由于需要物理移动磁头和旋转磁盘,HDD 的读写速度相对较慢。
  • 耐用性:HDD 对物理冲击比较敏感,因为内部有活动部件。
  • 功耗:HDD 的功耗较高,尤其是在启动和运行时。
  • 噪音:HDD 在运行时会产生一定的噪音。

固态硬盘(SSD):固态硬盘(Solid State Drive, SSD)是一种基于闪存技术的存储设备,没有活动部件,数据存储在闪存芯片中。

特点:

  • 容量:SSD 的容量通常较小,但近年来也在不断增加,且单位容量的价格逐渐下降。
  • 速度:SSD 的读写速度远高于 HDD,因为它不需要物理移动部件。
  • 耐用性:SSD 没有活动部件,对物理冲击的耐受性更强。
  • 功耗:SSD 的功耗较低,适合移动设备和节能需求。
  • 噪音:SSD 运行时几乎无声。

内置的 HDD 和 SSD 通常是不可移动设备,而通过 USB 接口连接的外部 HDD 和 SSD 则是可移动设备。

五、参考文档

1、https://cloud.tencent.com/developer/article/2297783

2、https://www.cnblogs.com/zhaobinyouth/p/6238158.html

3、https://www.cnblogs.com/lidabo/p/5300070.html

4、http://staff.ustc.edu.cn/~hdrq/jsjjc/scsi/scsi0101.htm

5、https://www.cnblogs.com/lidabo/p/5300070.html

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

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

相关文章

Linux(CentOS)运行 jar 包

1、在本地终端运行&#xff0c;关闭终端&#xff0c;程序就会终止 java -jar tlias-0.0.1-SNAPSHOT.jar 发送请求&#xff0c;成功 关闭终端&#xff08;程序也会终止&#xff09; 发送请求&#xff0c;失败 2、在远程终端运行&#xff0c;关闭终端&#xff0c;程序就会终止 …

【JS学习】08. web API-事件进阶

Web APIs - 第3天 进一步学习 事件进阶&#xff0c;实现更多交互的网页特效&#xff0c;结合事件流的特征优化事件执行的效率 掌握阻止事件冒泡的方法理解事件委托的实现原理 事件流 事件流是对事件执行过程的描述&#xff0c;了解事件的执行过程有助于加深对事件的理解&…

Docker + Jenkins + gitee 实现CICD环境搭建

目录 前言 关于Jenkins 安装Jenkins docker中运行Jenkins注意事项 通过容器中的Jenkins&#xff0c;把服务打包到docker进行部署 启动Jenkins 创建第一个任务 前言 CI/CD&#xff08;持续集成和持续交付/持续部署&#xff09;&#xff0c;它可以实现自动化的构建、测试和部署…

150道MySQL高频面试题,学完吊打面试官--关于索引的五道大厂面试题,跳槽面试很重要

前言 本专栏为150道MySQL大厂高频面试题讲解分析&#xff0c;这些面试题都是通过MySQL8.0官方文档和阿里巴巴官方手册还有一些大厂面试官提供的资料。 MySQL应用广泛&#xff0c;在多个开发语言中都处于重要地位&#xff0c;所以最好都要掌握MySQL的精华面试题&#xff0c;这也…

在培训班学网络安全有用吗

在当今数字化时代&#xff0c;网络安全问题日益凸显&#xff0c;成为了企业和个人关注的焦点。随着对网络安全人才需求的不断增长&#xff0c;各种网络安全培训班也如雨后春笋般涌现。然而&#xff0c;在培训班学网络安全真的有用吗? 一、网络安全的重要性与挑战 1. 信息时代的…

SQL Server 2008 R2 详细安装教程及错误解决教程

SQL Server 2008 R2 详细安装教程及错误解决教程 文章目录 SQL Server 2008 R2 详细安装教程及错误解决教程1.装载或解压ISO文件2. 运行setup程序3. 下载并安装.NET Framework3.54.选择全新安装或向现有安装添加功能5.输入秘钥同意条款6.选择安装类型7.设置角色8.功能选择9.实例…

HT32201 2x15W+30W免电感2.1声道D类音频功放

1 特性 ● 输出功率 2x12W24W(VDD14.5V, RL2x8Ω4Ω&#xff0c;THDN1%) 2x15W30W(VDD14.5V,RL2x8Ω4Ω&#xff0c;THDN10%) 2x8W16W(VDD12V,RL2x8Ω4Ω,THDN1%) 2x10W20W(VDD12V,RL2x8Ω4Ω&#xff0c;THDN10%) ● 单电源系统&#xff0c;4.5V-18V宽电压输入范围 ● 超过90…

Unreal5从入门到精通之如何在指定的显示器上运行UE程序

前言 我们有一个设备,是一个带双显示器的机柜,主显示器是一个小竖屏,可以触屏操作,大显示器是一个普通的横屏显示器。我们用这个机柜的原因就是可以摆脱鼠标和键盘,直接使用触屏操作,又可以在大屏观看,非常适合用于教学。 然后我们为这款机柜做了很多个VR项目,包括Uni…

揭秘全向轮运动学:机动艺术与上下位机通信的智慧桥梁

✨✨ Rqtz 个人主页 : 点击✨✨ &#x1f308;Qt系列专栏:点击 &#x1f388;Qt智能车上位机专栏: 点击&#x1f388; 本篇文章介绍的是有关于全向轮运动学分析&#xff0c;单片机与上位机通信C代码以及ROS里程计解算的内容。 目录 大纲 ROS&#xff08;机器人操作系统&…

动态规划理论基础和习题【力扣】【算法学习day.22】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非常非常高滴&am…

HTTP、WebSocket、gRPC 或 WebRTC:各种协议的区别

在为您的应用程序选择通信协议时&#xff0c;有很多不同的选择。 本文将了解四种流行的解决方案&#xff1a;HTTP、WebSocket、gRPC 和 WebRTC。 我们将通过深入学习其背后原理、最佳用途及其优缺点来探索每个协议。 通信方式在不断改进&#xff1a;变得更快、更方便、更可靠&…

大模型微调技术 --> LoRA 系列之 QLoRA (省资源能手)

QLoRA 1.摘要 作者提出了QLoRA&#xff0c;一种有效的微调方法&#xff0c;可以减少内存使用&#xff0c;足以在单个48 GB GPU上微调 65B 参数模型&#xff0c;同时保留完整的 16位 微调任务性能。 QLoRA 通过冻结的4位量化预训练语言模型将梯度反向传播到低秩适配器&#x…

一种ESB的设计

系统架构 ESB包括&#xff1a; ESB总控服务、业务应用集群、业务消息WEB服务、业务消息日志服务、运维管理平台、业务设计器。如下图所示 ESB总控服务 ESB总控服务承载了各项业务的运维和管理。主要包括&#xff1a; 业务流程的管理ESB内部不同模块间的通讯ESB系统设置和管理…

06 网络编程基础

目录 1.通信三要素 1. IP地址&#xff08;Internet Protocol Address&#xff09; 2. 端口号&#xff08;Port Number&#xff09; 3. 协议&#xff08;Protocol&#xff09; 2.TCP与UDP协议 三次握手&#xff08;Three-Way Handshake&#xff09; 四次挥手&#xff08;…

使用sealos部署的集群在部署metrics-server时日志x509

1、下载文件并进行部署 wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml2、进行部署 kubectl apply -f components.yaml3、发现问题 pod容器已经启动但是健康检查没有通过 kubectl get pod -n kube-system metrics-server…

定海 - 利用Coraza引擎开发一个防火墙

1. 介绍: Coraza有大量的内置安全规则,包括 OWASP Top 10&#xff0c;同时将错误警报降至最低。CRS保护免受许多常见攻击类别的攻击&#xff0c;包括SQL注入&#xff08;SQLi&#xff09;、跨站点脚本&#xff08;XSS&#xff09;、PHP和Java代码注入、HTTPoxy、Shellshock、脚…

【Linux】冯诺依曼体系、再谈操作系统

目录 一、冯诺依曼体系结构&#xff1a; 1、产生&#xff1a; 2、介绍&#xff1a; 二、再谈操作系统&#xff1a; 1、为什么要管理软硬件资源&#xff1a; 2、操作系统如何进行管理&#xff1a; 3、库函数&#xff1a; 4、学习操作系统的意义&#xff1a; 一、冯诺依曼…

bat批量处理脚本细节研究

文章目录 bat批处理脚本&#xff08;框架&#xff09;set变量设置基本语法显示环境变量 自定义环境变量临时环境变量和永久环境变量特殊环境变量和系统默认环境变量set命令利用选项的其他应用 !与%解析变量的区别/为什么使用setlocal enabledelayedexpansion区别%的规则!使用 %…

ReactPress系列—Next.js 的动态路由使用介绍

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架&#xff0c;支持服务端渲染、静态站点生成和动态路由等功能&#xff0c;极大地简化…

计算机的发展史

计算机的发展史是一个跨越多个世纪的过程&#xff0c;从最早的机械计算设备到如今的高性能、智能化计算机。以下是计算机发展史的简要概述&#xff0c;按重要的技术进步和里程碑进行归类&#xff1a; 1. 早期的计算工具&#xff08;公元前3000年—17世纪&#xff09; 计算机的…