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.mzph.cn/web/58427.shtml

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

相关文章

Linux基础-常用操作命令详讲

Linux基础-常用操作命令详讲 一、openssl加密简单介绍 1. 生成加密的密码散列&#xff08;password hash&#xff09;​编辑 1.1 常见的选项总结表 1.2 加密参数详解 2. 自签名证书 3. 证书转换 二、文件管理 1. 创建空文件 ​编辑 2. 删除文件 4. 新建目录 ​编辑…

Windows、Linux系统上进行CPU和内存压力测试

CPU和内存压力测试 1. Linux环境 Linux环境下&#xff0c;我们可以用 stress 工具进行内存、CPU等的压力测试。 【1】. stress工具说明 [kalamikysrv1 ~]$ stress --help stress imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ...-…

JVM知识点大全(未完...)

JVM运行时数据区域 堆 堆是Java虚拟机中用于存储对象的主要区域&#xff0c;包括字符串常量池。绝大多数对象都是在堆中创建的&#xff08;少部分对象可能会在栈上分配&#xff09;。为了更好地进行垃圾回收&#xff0c;堆被划分为年轻代和老年代两部分。年轻代又被进一步分为E…

九宫格按键输入

题目描述 九宫格按键输入&#xff0c;有英文和数字两个模式&#xff0c;默认是数字模式&#xff0c;数字模式直接输出数字&#xff0c;英文模式连续按同一个按键会依次出现这个按键上的字母&#xff0c;如果输入""或者其他字符&#xff0c;则循环中断&#xff0c;输…

EPSON机械手与第三方相机的校准功能设计By python

EPSON机械手与第三方相机的校准功能设计By python 使用Python来实现EPSON机械手与第三方相机的校准功能是一个复杂但可行的任务。这通常涉及以下几个步骤:硬件接口通信、图像处理、标定算法实现和控制逻辑编写。 1. 环境准备 首先,库 pip install numpy opencv-python pyse…

ZISUOJ 2024算法基础公选课练习一(1)

前言、 又是一年算法公选课&#xff0c;与去年不同的是今年学了一些纯C&#xff08;而不是带类的C&#xff09; 一、我的C模板 1.1 模板1 #include <bits/stdc.h> using i64 long long;int main() {std::cin.tie(nullptr)->sync_with_stdio(false);return 0; } 1…

基于STM32的八位数码管显示Proteus仿真设计

基于STM32的八位数码管显示Proteus仿真设计 1.主要功能2.仿真设计3. 程序设计4. 设计报告5. 资料清单&下载链接 基于STM32的八位数码管显示Proteus仿真设计(仿真程序设计报告讲解视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;…

【机器学习】Lesson 4 - 朴素贝叶斯(NB)文本分类

目录 背景 一、适用数据集 1. 数据集选择 1.1 适用领域 1.2 数据集维度&#xff08;特征数&#xff09; 1.3 数据行数 2. 本文数据集介绍 2.1 数据集特征 2.2 数据格式 3. 数据集下载 二、算法原理 1. 朴素贝叶斯定理 2. 算法逻辑 3. 运行步骤 4. 更多延申模型 …

软考教材重点内容 信息安全工程师 第1章 网络信息安全概述

第 1 章 网络信息安全概述 1.1.1 网络信息安全相关概念 狭义上的网络信息安全特指网络信息系统的各组成要素符合安全属性的要求&#xff0c;即机密性、完整性、可用性、抗抵赖性、可控性。 广义上的网络信息安全是涉及国家安全、城市安全、经济安全、社会安全、生产安全、人身安…

使用Vue3和Vue2进行开发的区别

使用Vue3和Vue2进行开发的区别 笔者虽然老早就是用vue3进行开发了&#xff0c;但是上次有人问道使用vue3进行开发跟使用vue2进行开发的区别有哪些这个问题的时候&#xff0c;回答的还是有些琐碎&#xff0c;干脆今天专门整理一下&#xff0c;做个记录。 一、再也不用set了 众所…

项目开发流程规范文档

项目开发流程规范文档 目标: 明确项目组中需求管理人员, 交互设计, 美工以及开发之间的工作输入输出产物. 明确各岗位职责. 以免造成开发, 产品经理以及项目经理之间理解不到位, 沟通成本过高,返工造成资源浪费. 所有环节产生的文档都可以作为项目交付的资源. 而不是事后再补文…

在docker里创建 bridge 网络联通不同容器

1.网络创建&#xff1a; docker network create --subnet192.168.1.0/24 --gateway192.168.1.1 uav_management 2.查看网络&#xff1a; docker network ls 3.给已经创建的容器分配ip: docker network connect --ip 192.168.1.10 uav_management 容器名/容器id 示例&#xf…

【极限编程(XP)】

极限编程&#xff08;XP&#xff09;简介 定义与核心价值观&#xff1a;极限编程&#xff08;Extreme Programming&#xff0c;XP&#xff09;是一种轻量级、敏捷的软件开发方法。它强调团队合作、客户参与、持续测试和快速反馈等价值观&#xff0c;旨在提高软件开发的效率和质…

低代码用户中心:简化开发,提升效率的新时代

随着数字化转型的加速&#xff0c;企业对于快速交付高质量应用的需求日益增长。在这个背景下&#xff0c;低代码开发平台应运而生&#xff0c;成为越来越多企业和开发者的首选工具。今天&#xff0c;我们将聚焦于低代码用户中心&#xff0c;探讨其如何帮助开发者简化流程、提升…

Docker在CentOS上的安装与配置

前言 随着云计算和微服务架构的兴起&#xff0c;Docker作为一种轻量级的容器技术&#xff0c;已经成为现代软件开发和运维中的重要工具。本文旨在为初学者提供一份详尽的指南&#xff0c;帮助他们在CentOS系统上安装和配置Docker及相关组件&#xff0c;如Docker Compose和私有…

Redis 权限控制(ACL)|ACL 命令详解、ACL 持久化

官网文档地址&#xff1a;https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/ 使用版本&#xff1a;Redis7.4.1 什么是 ACL&#xff1f; ACL&#xff08;Access Control List&#xff09;&#xff0c;权限控制列表&#xff0c;是 Redis 提供的一种…

淘宝反爬虫机制的主要手段有哪些?

淘宝的反爬虫机制主要有以下手段&#xff1a; 一、用户身份识别与验证&#xff1a; User-Agent 识别&#xff1a;通过检测 HTTP 请求头中的 User-Agent 字段来判断请求是否来自合法的浏览器。正常用户使用不同浏览器访问时&#xff0c;User-Agent 会有所不同&#xff0c;而爬虫…

2024最新gewe开发微信机器人教程说明

微信时代&#xff0c;越来越多的业务/服务沟通已直接在微信上完成&#xff0c;但在沟通效率及员工管理方面却存在如下问题&#xff1a; 1、现有的微信功能&#xff0c;已无法满足与客户沟通时的高效率要求 2、当员工掌管的微信号若干或更多时&#xff0c;迫切需要有个汇总工具…

Java项目实战II基于Spring Boot的智慧生活商城系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着科技的飞速发展&#xff0c;人们的…

如何使用Langchain集成Kimi AI(Moonshot AI)

如何使用Langchain集成Kimi&#xff08;Moonshot AI&#xff09; 一、获取API密钥1. 注册账号2. 获取密钥 二、环境配置三、上手四、整合一下五、检验一下成果六、官方网站 一、获取API密钥 1. 注册账号 毕竟只有注册过帐号才能拿到key~ Moonshot 登陆 2. 获取密钥 用户中心…