AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1165431
Accepted
TSG
TSG
Asked: 2024-09-19 07:20:14 +0800 CST2024-09-19 07:20:14 +0800 CST 2024-09-19 07:20:14 +0800 CST

将 dd 与 nvme 设备结合使用

  • 772

我想在 Linux 下使用 dd 来制作磁盘的备份映像。对于 sata 设备,磁盘有 /dev/sda,每个分区有 /dev/sdaX。

但是对于这个 nvme,我看到了 /dev/nvme0、/dev/nvme0n1 和 /dev/nbme0n1pX。最后一个显然是分区,但是我应该使用前者中的哪一个来备份我的磁盘?(nvme0 与 nvme0n1)。

有 2 个设备代表磁盘的目的是什么?

当我恢复磁盘时,我应该写入哪个设备?

linux
  • 2 2 个回答
  • 126 Views

2 个回答

  • Voted
  1. Best Answer
    larsks
    2024-09-19T08:59:38+08:002024-09-19T08:59:38+08:00

    您应该使用/dev/nvme0n1它来对整个磁盘进行映像处理。这是与 nvme 设备关联的块设备;您可以通过查看设备主/次设备号来验证这一点:

    crw-------. 1 root root 238, 0 Sep 10 18:10 /dev/nvme0
    brw-rw----. 1 root disk 259, 0 Sep 10 10:17 /dev/nvme0n1
    brw-rw----. 1 root disk 259, 2 Sep 10 10:17 /dev/nvme0n1p1
    brw-rw----. 1 root disk 259, 5 Sep 10 10:17 /dev/nvme0n1p2
    brw-rw----. 1 root disk 259, 7 Sep 10 10:17 /dev/nvme0n1p3
    

    主编号259对应的块设备:

    $ grep 259 /proc/devices
    259 blkext
    

    主设备 238 对应于“nvme”设备:

    $ grep 238 /proc/devices
    238 nvme
    

    块设备是“磁盘”;您可以从该设备创建备份,然后将其写回另一个块设备 - 无论目标是 nvme 还是其他东西。

    /dev/nvme0是一个 nvme 设备,如果您需要与底层 nvme 控制器交互(例如使用nvmecli) ,则可以使用它。

    • 3
  2. Austin Hemmelgarn
    2024-09-20T01:16:43+08:002024-09-20T01:16:43+08:00

    但是我应该使用哪一个来备份我的磁盘?

    /dev/nvme0n1,并且您也需要相同的目标进行恢复。

    有 2 个设备代表磁盘的目的是什么?

    NVMe 的规范包含“命名空间”的概念。直接引用官方资源https://nvmexpress.org/resource/nvme-namespaces/:

    ... 命名空间是主机软件可访问的逻辑块地址 (LBA) 的集合。命名空间 ID (NSID) 是控制器用来提供对命名空间的访问的标识符。命名空间不是块的物理隔离,而是主机软件可寻址的逻辑块的隔离。

    如果这听起来有点技术性,那确实如此。从实际角度来看,您可以将 NVMe 命名空间视为由设备本身(而不是主机)理解和管理的分区,并且可以选择为每个命名空间独立控制设备的某些功能和配置。

    这样您就可以做一些有趣的事情,例如仅在 NVMe 设备的一部分上使用 OPAL SED 功能,或者将设备的不同部分呈现给系统的不同部分而无需对其进行分区。NVMe 命名空间也是多路径与 NVMe 协同工作的一个组成部分。

    但是,作为命名空间的虚拟块设备与 NVMe 控制器并不相同。因此,对于系统中的每个 NVMe 控制器,Linux 为该控制器提供了一个字符设备 ( /dev/nvmeX),用于发出管理命令(例如用于重新配置命名空间的命令),并为该控制器上的每个命名空间提供了一个块设备 ( /dev/nvmeXnY)。

    对于几乎所有商业出货的 NVMe 设备,都会有一个覆盖整个设备的单一命名空间(因为这允许您插入设备并立即使用它而无需任何配置,除非您想对命名空间做一些不同的事情),所以您只会看到每个 NVMe 设备的一个块设备。


    顺便说一句,我强烈赞同你应该考虑dd备份以外的其他东西。它不能进行增量备份,它实际上不能在备份的系统上可靠地进行稳定备份,它完全依赖于外部工具进行重复数据删除、压缩和加密,而且你不太可能需要它保存的所有额外状态(没有任何理智的东西会关心磁盘上的块布局,除了备份软件之外几乎没有任何理智的东西会关心 inode 编号,真正的备份软件无法转储的少数扩展属性无论如何都应该在恢复时手动重新生成,等等)。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve