lsblk 命令学习

news2024/11/6 18:10:29

一、命令介绍

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 --help

Usage:
 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 name
       KNAME  internal kernel device name
     MAJ:MIN  major:minor device number
      FSTYPE  filesystem type
  MOUNTPOINT  where the device is mounted
       LABEL  filesystem LABEL
        UUID  filesystem UUID
   PARTLABEL  partition LABEL
    PARTUUID  partition UUID
          RA  read-ahead of the device
          RO  read-only device
          RM  removable device
       MODEL  device identifier
      SERIAL  disk serial number
        SIZE  size of the device
       STATE  state of the device
       OWNER  user name
       GROUP  group name
        MODE  device node permissions
   ALIGNMENT  alignment offset
      MIN-IO  minimum I/O size
      OPT-IO  optimal I/O size
     PHY-SEC  physical sector size
     LOG-SEC  logical sector size
        ROTA  rotational device
       SCHED  I/O scheduler name
     RQ-SIZE  request queue size
        TYPE  device type
    DISC-ALN  discard alignment offset
   DISC-GRAN  discard granularity
    DISC-MAX  discard max bytes
   DISC-ZERO  discard zeroes data
       WSAME  write same max bytes
         WWN  unique storage identifier
        RAND  adds randomness
      PKNAME  internal parent kernel device name
        HCTL  Host:Channel:Target:Lun for SCSI
        TRAN  device transport type
         REV  device revision
      VENDOR  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 default
               cache 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 mem
  4 /dev/vc/0
  4 tty
  4 tty0
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
  7 vcs1
  7 vcsa
  7 vcsa1
  10 misc
  13 input
  29 fb
  81 sg
 180 usb
 204 rtc
 254 ttyprintk
 254 vcoploop

Block devices:
  1 ramdisk
  7 loop
  8 sd
  9 md
  11 sr
  31 mdp
 253 device-mapper
 254 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.coloradmin.cn/o/2234427.html

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

相关文章

Python实例:爱心代码

前言 在编程的奇妙世界里,代码不仅仅是冰冷的指令集合,它还可以成为表达情感、传递温暖的独特方式。今天,我们将一同探索用 Python 语言绘制爱心的神奇之旅。 爱心,这个象征着爱与温暖的符号,一直以来都在人类的情感世界中占据着特殊的地位。而通过 Python 的强大功能,…

ENSP RIP动态路由

RIP&#xff08;距离矢量路由协议&#xff09;以网络中所有链路的距离和矢量为依据计算最佳路径&#xff0c;是第一个动态路由协议。条数作为唯一的度量单位。默认开启水平分割&#xff08;从一个路由接口学到的路由信息&#xff0c;便不在从这个接口发送出去&#xff09;防止路…

Qt 练习做一个登录界面

练习做一个登录界面 效果 UI图 UI代码 <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Dialog</class><widget class"QDialog" name"Dialog"><property name"ge…

C++——priority_queue模拟实现过程中的优化

前言的前言&#xff1a; 大佬写博客给别人看&#xff0c;菜鸟写博客给自己看&#xff0c;我是菜鸟。 前言&#xff1a; 1.priority_queue&#xff08;优先队列&#xff09;的底层原理和堆极其相似&#xff0c;因此在模拟实现的过程中&#xff0c;主要借助堆的思想取完成&…

蓝桥杯真题——三角回文数(C语言)

问题描述 对于正整数 n, 如果存在正整数 k 使得 n123⋯kk(k1)2n123⋯kk(k1)/2​, 则 n 称为三角数。例如, 66066 是一个三角数, 因为 66066123⋯36366066123⋯363 。 如果一个整数从左到右读出所有数位上的数字, 与从右到左读出所有数位 上的数字是一样的, 则称这个数为回文数…

密码学知识点整理一:密码学概论

密码学是什么&#xff1f; 密码学是一门研究编制密码和破译密码的技术科学。 密码学&#xff0c;作为信息安全的核心技术之一&#xff0c;其重要性在于能够为信息传输提供安全保障&#xff0c;确保数据在存储或传输过程中的机密性、完整性与真实性不被破坏。从古至今&#x…

51单片机教程(五)- LED灯闪烁

1 项目分析 让输入/输出口的P1.0或P1.0~P1.7连接的LED灯闪烁。 2 技术准备 1、C语言知识点 1 运算符 1 算术运算符 #include <stdio.h>int main(){// 算术运算符int a 13;int b 6;printf("%d\n", ab); printf("%d\n", a-b); printf("%…

Unity中实现伤害飘字或者提示飘字效果(DoTween实现版本)

&#xff01;&#xff01;&#xff01;在实现以下效果之前&#xff0c;一定要往项目中导入DoTween插件。 一、搭建测试场景 1、在场景中新建一个带有Text组件的游戏物体A&#xff0c;并把这个游戏物体A中Text组件的Color属性中alpha值为0&#xff0c;让文字在场景中隐藏。 …

其他节点使用kubectl访问集群,kubeconfig配置文件 详解

上述两种方式&#xff1a;可使用kubectl连接k8s集群。 $HOME/.kube/config 是config文件默认路径&#xff0c;要么直接定义环境变量&#xff0c;要么就直接把文件拷过去 config文件里面&#xff0c;定义了context&#xff0c;里面指定了用户和对应的集群信息&#xff1a; ku…

【vim文本编辑器gcc编译器gdb调试器】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、vimvim安装vim常用快捷键vim使用vimtutor zh文档 二、gcc编译器安装gcc工具编译源代码 三、gdb调试器gdb安装gdb常用指令gdb简单上手使用gdb的单步调试功能 总结…

陀螺仪BMI323驱动开发测试(基于HAL库SPI通信)

参考资料 编写代码 读取芯片ID void BMI160_Init(void) {uint16_t chipID BMI323_read(BMI160_REG_CHIP_ID);debug("BMI323芯片ID为0x%x;", chipID);if (chipID ! 0x43){debug("未检测到BMI323;");}elsedebug("检测到陀螺仪BMI323;");u8 buf_…

【MySQL初阶】--- MySQL在Ubuntu环境下安装

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; MySQL 本篇博客博主采用的是ubuntu 22.04的系统按照MySQL&#xff0c;且在root用户下安装。 &#x1f3e0; MySQL安装 1. 更新系统的软件包列表 sudo a…

Charles简单压力测试

1.接口请求次数&#xff0c;并发量&#xff0c;请求延迟时间均可配置 1.1选中需要进行测试的接口&#xff0c;鼠标右键选中【repeat advance】 2.设置并发参数 下面的图中&#xff0c;选择了1个接口&#xff0c;每次迭代中1个接口同时请求&#xff0c;迭代1000次&#xff08;…

【大模型LLM面试合集】大语言模型架构_chatglm系列模型

chatglm系列模型 1.ChatGLM 1.1 背景 主流的预训练框架主要有三种&#xff1a; autoregressive自回归模型&#xff08;AR模型&#xff09;&#xff1a;代表作GPT。本质上是一个left-to-right的语言模型。通常用于生成式任务&#xff0c;在长文本生成方面取得了巨大的成功&a…

从 vue 源码看问题 — 你知道 Hook Event 吗?

前言 在之前的几篇文章中&#xff0c;都有提到 vue 中调用生命周期钩子时是通过 callHook() 方法进行调用的&#xff0c;比如在初始化篇章中调用 beforeCreate 和 created 生命周期钩子方式如下: 那么接下来一起来了解下到底什么是 Hook Event &#xff1f; Hook Event 是什…

html练习2

实现下列图片的效果 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>* {margin: 0;padding: 0;}#menu {background-color: #0c0048;width: 100%;height: 50px;margin: auto;…

计算机视觉常用数据集Cityscapes的介绍、下载、转为YOLO格式进行训练

我在寻找Cityscapes数据集的时候花了一番功夫&#xff0c;因为官网下载需要用公司或学校邮箱邮箱注册账号&#xff0c;等待审核通过后才能进行下载数据集。并且一开始我也并不了解Cityscapes的格式和内容是什么样的&#xff0c;现在我弄明白后写下这篇文章&#xff0c;用于记录…

Java | Leetcode Java题解之第523题连续的子数组和

题目&#xff1a; 题解&#xff1a; class Solution {public boolean checkSubarraySum(int[] nums, int k) {int m nums.length;if (m < 2) {return false;}Map<Integer, Integer> map new HashMap<Integer, Integer>();map.put(0, -1);int remainder 0;fo…

MATLAB计算朗格朗日函数

1. 朗格朗日函数介绍 朗格朗日函数&#xff08;Lagrange function&#xff09;通常用于优化问题&#xff0c;尤其是带有约束的优化问题。其一般形式为&#xff1a; 其中&#xff1a; f(x) 是目标函数。 是约束条件。 是拉格朗日乘子。 为了编写一个MATLAB代码来计算和绘制…

手机的ip地址是固定的吗?多角度深入探讨

手机的IP地址是否固定&#xff0c;这一问题涉及到网络连接、技术配置以及运营商策略等多个方面。为了全面解答这一问题&#xff0c;我们需要从多个角度进行深入探讨。 首先&#xff0c;明确IP地址&#xff08;Internet Protocol Address&#xff09;的基本概念。IP地址是互联网…