Clonezilla:不能有重叠的分区

Clonezilla:不能有重叠的分区

我正在尝试使用 Clonezilla 镜像我的 Ubuntu 磁盘,但它失败了,因为我收到一条错误消息:

错误不能有重叠分区

以下是我的磁盘的设置方式和输出lsblk

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop1         7:1    0  42,2M  1 loop /snap/snapd/14066
nvme0n1     259:0    0 953,9G  0 disk 
├─nvme0n1p5 259:3    0   976M  0 part [SWAP]
└─nvme0n1p1 259:1    0 952,9G  0 part /

这是输出fdisk -l /dev/nvme0n1

Disk /dev/nvme0n1: 953,9 GiB, 1024209543168 bytes, 2000409264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6e617337

Device         Boot      Start        End    Sectors   Size Id Type
/dev/nvme0n1p1 *          2048 1998407679 1998405632 952,9G 83 Linux
/dev/nvme0n1p2      1998409726 2000397734    1988009 970,7M  5 Extended
/dev/nvme0n1p5      1998409728 2000408575    1998848   976M 82 Linux swap / Sola

这是它在 gparted 中的显示方式:

在此输入图像描述

有什么建议如何修复此错误以便我可以映像/保存我的磁盘吗?

答案1

答案改编自:如何修复 MBR 表中的重叠分区。您可以尝试这个,但我认为删除交换和逻辑分区是更简单的解决方案


修复分区表sfdisk

  1. 使用 Live Ubuntu 磁盘启动;

  2. 确认您的磁盘设备上的问题,/dev/sda例如parted

     sudo parted /dev/sda unit s print which should show:
    
     Error: Can't have overlapping partitions.
    
  3. 可以通过以下方式检查分区详细信息:

     sudo fdisk -l -u /dev/sda 
    

根据您的帖子,对您来说:

Disk /dev/nvme0n1: 953,9 GiB, 1024209543168 bytes, 2000409264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6e617337

Device         Boot      Start        End    Sectors   Size Id Type
/dev/nvme0n1p1 *          2048 1998407679 1998405632 952,9G 83 Linux
/dev/nvme0n1p2      1998409726 2000397734    1988009 970,7M  5 Extended
/dev/nvme0n1p5      1998409728 2000408575    1998848   976M 82 Linux swap / Solaris
  1. 检查重叠:您可以看到扩展分区/dev/nvme0n1p2小于交换分区 /dev/nvme0n1p5

为了让事情更清楚,您的交换分区位于扩展分区内部,因此理想情况下它的大小应该小于扩展分区大小。但在您的情况下交换大小大于逻辑分区大小本身。

Device            Size  

/dev/nvme0n1p2    970,7M  
/dev/nvme0n1p5    976M    

或者换句话说,nvme0n1p2 的结束扇区应该大于 nvme0n1p5 的结束扇区。但在你的情况下

nvme0n1p2结束=2000397734

nvme0n1p5结束=2000408575

这就是问题所在。

现在,您可以通过使用 gparted 减少交换分区大小来简单地解决这个问题。 (~ 600MB - 700MB)

或者您可以使用命令行工具:

sfdisk

使用 sfdisk

  1. 正如建议的文档那 -“如果我们不知道起始扇区或结束扇区是否有问题,我们假设每个分区的起始扇区是正确的,而结束扇区可能有错误”,我们假设扩展分区的起始扇区nvme0n1p2是正确的。因此,我们将寻求更改交换分区的结束扇区nvme0n1p5

计算:

nvme0n1p5新结束=nvme0n1p2结束- 1 = 2000397734 - 1 = 2000397733

nvme0n1p5新大小= nvme0n1p5新结束- nvme0n1p5启动= 2000397733 - 1998409728 =1988005

  1. 使用以下命令将分区表的副本​​转储到文件中sfdisk

sudo sfdisk -d /dev/sda应该转储分区表详细信息。可以将其转储到文件中,在进行必要的更正后,可以将其反馈回sfdisk. [致OP:sudo sfdisk -d /dev/sda请编辑您的问题并包含]的输出

使用以下命令转储分区表的副本​​:

    sudo sfdisk -d /dev/sda > sda-backup.txt 
  1. 使用您选择的文本编辑器以 root 权限打开在上一步中创建的文件。在示例中我将使用nano.

     sudo nano sda-backup.txt (`sda-backup.txt` assuming the file is in the current directory, else repalce it with the file's absolute
    

小路。)

nvme0n1p5将( )的旧大小更改1998848为更正后的大小 ( 1988005),以便新的分区表转储如下所示:

输出未由 op 附加

保存文件 ( Ctrl+ Ofor nano) 并关闭编辑器 ( Ctrl+ Xfor nano)。

  1. 使用以下命令将更正后的分区详细信息反馈到分区表sfdisk

     sudo sfdisk /dev/sda < sda-backup.txt
    
  2. parted通过在您的磁盘设备上运行来确认问题是否得到解决:

     sudo parted /dev/sda unit s print
    
  3. 如果步骤9确认分区表已修复,则可以使用格帕特或设备上的其他分区编辑器。


GParted 文档还建议了一种替代方法,使用 测试盘扫描磁盘设备以重建分区表。 testdisk 应用程序包含在GParted 现场直播。因此,如果您对命令行方式不满意,可以尝试其他方法。

来源


使用Gparted

unmount your swap partition before continuing
  1. 当前状态

在此输入图像描述

  1. 调整根分区的大小

在此输入图像描述

  1. 调整大小之前的根分区

在此输入图像描述

  1. 调整大小后的根分区

在此输入图像描述

  1. 根分区后创建了空白空间

在此输入图像描述

  1. 删除交换

在此输入图像描述

  1. 删除逻辑分区

在此输入图像描述

  1. 除根分区外的所有分区均已删除

在此输入图像描述

  1. 创建新的逻辑分区

在此输入图像描述

  1. 在分区之前留下一些可用空间(这样它就不会重叠)并选择分区类型为Extended partition

在此输入图像描述

  1. 现在应该是这样的

在此输入图像描述

  1. 创建交换分区

在此输入图像描述

  1. 分区后留下一些可用空间,使其不超过并选择文件系统作为linux swap

在此输入图像描述

  1. 现在应该是这样的

在此输入图像描述

  1. 复制新交换的 UUID 并将其替换为/etc/fstab

在此输入图像描述


相关内容