我使用 Gparted 删除了辅助驱动器上的 EFI (/dev/sda1) 和 Ubuntu (/dev/sda2) 分区。第三个分区 (/dev/sda3) 用于存储数据,因此我调整了它的大小,以便通过删除前两个分区来使用我获得的所有未分配空间。现在,磁盘上只有一个唯一分区,我想修复它的编号,以便获取 /dev/sda1。对于具有 GPT 分区表的磁盘,最简单的方法是什么?谢谢!
答案1
您可以使用gdisk
以下方法来重写分区表:
sudo gdisk /dev/sda p(p 命令在屏幕上打印最近的分区表) s(s 命令对分区表条目进行排序) p(再次使用 p 命令即可在屏幕上查看结果) w(将改变的分区表写入磁盘) q(退出 gdisk)
gdisk
您将找到有关http://www.rodsbooks.com/gdisk/
答案2
发现最后一个链接后,我非常感兴趣,也非常想学习一些新东西,于是我使用 32GB USB 驱动器在我的系统上重现了 Generoso 的分区情况。以下是我的发现,但首先是我的:
结论:由于我的示例针对的是 1(最终)分区,因此在接近尾声时我只是更改了它的名称。我没有触及实际的扇区。在我上面评论的链接中,显示了一个移动扇区号的示例。我照做了,结果搞砸了,毁掉了 USB 磁盘,证明了玩弄分区是多么危险!!
也许我的方案也适用于多个分区,请随意尝试。我敢让你用你的主分区来做它。哈哈。
好的,这是我的:
发现:我使用 Gparted 创建了 3 个分区,每个分区 1 GB。
# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 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: 0xf33657fc
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 2099199 2097152 1G 83 Linux
/dev/sdc2 2099200 4196351 2097152 1G 83 Linux
/dev/sdc3 4196352 6293503 2097152 1G 83 Linux
使用磁盘安装分区 3。
手动在其上放置文件。
# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root 16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt
使用磁盘卸载分区 3。
使用 Gparted 删除分区 1 和 2,并扩大分区 3 以使用整个磁盘。
# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 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: 0xf33657fc
Device Boot Start End Sectors Size Id Type
/dev/sdc3 8192 62844671 62836480 30G 83 Linux
使用磁盘挂载分区 3。
检查分区 3 上的文件。
# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root 16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt
使用磁盘卸载分区 3.
从驱动器复制分区表。
显示分区表。
# sfdisk -d /dev/sdc > sdc.tab
# cat sdc.tab
label: dos
label-id: 0xf33657fc
device: /dev/sdc
unit: sectors
/dev/sdc3 : start= 8192, size= 62836480, type=83
使用 将vi sdc.tab
sdc3 更改为 sdc1。
应用更改后的分区表。
# sfdisk --no-reread -f /dev/sdc < sdc.tab
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 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: 0xf33657fc
Old situation:
Device Boot Start End Sectors Size Id Type
/dev/sdc3 8192 62844671 62836480 30G 83 Linux
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xf33657fc.
Created a new partition 1 of type 'Linux' and of size 30 GiB.
/dev/sdc2:
New situation:
Device Boot Start End Sectors Size Id Type
/dev/sdc1 8192 62844671 62836480 30G 83 Linux
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
命令完成后,分区 1 将自动挂载。
检查文件。
# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root 16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt
使用磁盘卸载分区 1。
完成。
PS. 我cat SomeFile.txt
每次都这么做,但我觉得没有必要包含该输出。
答案3
您应该已经将 /dev/sda1 的大小调整为大于 /dev/sda3。然后将 sda3 复制到 sda1 上。检查 sda1 文件,如果没有问题,删除 sda3,并相应地调整 sda1 的大小。