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
    • 最新
    • 标签
主页 / computer / 问题 / 1890246
Accepted
sdbbs
sdbbs
Asked: 2025-04-06 04:04:17 +0800 CST2025-04-06 04:04:17 +0800 CST 2025-04-06 04:04:17 +0800 CST

在 Linux 下使用分区标签备份和恢复分区表?

  • 772

我曾见过其他超级用户问题,但它并没有真正回答我的问题。

运行blkid可以列出磁盘上的分区和分区标签:

ubuntu@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
...
sda            111.8G                                   
├─sda1 vfat      350M                                   SYSTEM
├─sda2 ntfs       50G                                   Windows
├─sda3 ntfs      1.5G                                   Recovery
├─sda4             1K                                   
├─sda5 ext4       20G                                   ubuntu
├─sda6 ntfs       30G                                   extra
└─sda7 swap      9.9G [SWAP]                            

正如链接的帖子所述(也可在此处找到信息),我可以使用 sfdisk 备份此磁盘上的分区表/dev/sda:

sudo sfdisk -d /dev/sda > sda.partition.table.txt

然后可以使用它来恢复分区表:

sudo sfdisk /dev/sda < sda.partition.table.txt

但是,打印此文件时显示没有分区标签(在我的示例中为:SYSTEM、Windows、Recovery、ubuntu、extra):

$ cat sda.ljuttpx220.partition.table.txt 
label: dos
label-id: 0x5e4a12da
device: /dev/sda
unit: sectors
sector-size: 512

/dev/sda1 : start=        2048, size=      716800, type=ef, bootable
/dev/sda2 : start=      718848, size=   104857600, type=7
/dev/sda3 : start=   231292928, size=     3145728, type=27
/dev/sda4 : start=   105578494, size=   125714434, type=5
/dev/sda5 : start=   105578496, size=    41943040, type=83
/dev/sda6 : start=   147523584, size=    62914560, type=7
/dev/sda7 : start=   210440192, size=    20852736, type=82

那么,是否有一个命令或程序可以让我一次性备份分区及其标签?

linux
  • 1 1 个回答
  • 280 Views

1 个回答

  • Voted
  1. Best Answer
    grawity
    2025-04-06T04:35:34+08:002025-04-06T04:35:34+08:00

    您有一个 DOS (MBR) 分区表。它不支持存储分区标签。

    LABEL“lsblk”和“blkid”中的列包含文件系统元数据标签,而不是分区标签(可以在PARTLABELGPT 分区磁盘中找到)。

    (此外,lsblk和blkid不是一回事。虽然它们最终都从 libblkid 获取数据,但获取方式不同 - blkid 直接调用 libblkid 从磁盘设备中提取元数据,而 lsblk 显示已从 udev 提取的数据。因此,blkid 通常需要以 root 身份运行,但 lsblk 则不需要,因为它依赖于 udev 来保持其缓存为最新。)

    可以通过制作该分区的完整映像(使用 dd/cp/etc 或使用 ntfsclone/partclone)来备份文件系统标签,或者在创建新文件系统的过程中或之后使用文件系统专用工具(e2label、fatlabel 等)手动设置。

    因此,如果您的目标是克隆现有磁盘及其数据和元数据,您可以:

    • 使用 sfdisk 克隆分区表,然后使用一些适当的工具(、、)以 1:1 的比例克隆每个分区的内容,并且partclone文件系统标签将与文件系统的其余部分一起克隆;ntfsclonedd/ddrescue/cp/pv

      (请记住,由于您的磁盘似乎已设置为 BIOS 启动,因此您还需要克隆 MBR启动代码,该代码与 MBR 分区表共存于扇区 0,但不会被 sfdisk 转储。可以使用 进行克隆head -c 440 $old > $new。)

    • 或者使用/ / /一次克隆整个/dev/sda磁盘( → ) ,并且分区表也将与其余部分一起克隆,文件系统元数据和 BIOS 引导代码也将一起克隆。/dev/sdbddddrescuecppv

    如果您的目标是创建新的、空白的分区,您可以执行以下操作:

    • sfdisk /dev/sda < partitions.txt
      mkfs.fat -n "SYSTEM" /dev/sda1
      mkfs.ntfs -L "Windows" /dev/sda2
      mkfs.ext4 -L "Ubuntu" /dev/sda5
      
    • 请注意,大多数文件系统的标头中也有一个 UUID(或类似信息),并且有一些东西会跟踪 UUID 而不是标签。各种 mkfs 工具都有一个选项可以指定您之前从UUID“lsblk”中的列中获得的自定义 UUID(再次不要与 GPT 混淆PARTUUID)。

    • 9

相关问题

  • 如何让我的 Linux 机器看起来像是在运行 Windows?

  • 对于 cp 或 mv,是否有等同于 cd - 的东西?

  • 以 root 身份运行 docker 容器

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve