最近我从 23.10 升级到了 24.04。不知何故,升级将我的外部 USB 3TB 驱动器转换为 Gparted 仅识别为“iso9660”的驱动器,并且显示整个驱动器未分配。
但是分区仍然存在,安装在 Nemo 内并fdisk -l
显示所有分区。
lsblk -e7 -o MODEL,NAME,SIZE,FSTYPE,LABEL,MOUNTPOINT
MODEL NAME SIZE FSTYPE LABEL MOUNTPOINT
/ cut /
ST3000DM001-1E6166 sdc 2.7T iso9660 Ubuntu 24.04 LTS amd64
├─sdc1 160G
├─sdc2 8K
├─sdc3 3M
├─sdc4 200M
├─sdc5 200M
├─sdc6 200M ext4
├─sdc7 200M
├─sdc8 100M
└─sdc9 2.3T ext4 Samsung /media/jamaas/Samsung
我该如何恢复它,以便 Gparted 允许我处理分区并删除有问题的可启动标志?
答案1
想象这样的事真的会发生,真是太疯狂了。
我高度怀疑这可能是由于 Gparted 和 之间共享的库中的检测错误lsblk
,因为两者似乎都同意磁盘的格式。因此,在尝试更危险的东西之前,我会先尝试排除这种可能性。
首先,检查 的输出fdisk -l /dev/sdc
。是否fdisk
与 Gparted / 一致lsblk
?
如果是这样,请尝试从实时 22.04 USB 启动并查看是否仍将驱动器检测为 ISO9660。
如果 Gparted//lsblk
在fdisk
22.04 上检测到相同的情况,那么您可以尝试执行以下操作。
注意:这涉及进一步弄乱分区表!!!我们不知道到底发生了什么,所以我不能 100% 确信这不会对你目前的情况造成不利影响。此外,这仅在你的驱动器最初格式化为 GPT 时才有效(考虑到驱动器上的分区数量,这似乎是这种情况)。
我知道在尝试之前你不太可能有能力执行完整的磁盘备份(例如备用的 3TB 驱动器),但如果你有办法这样做,在尝试之前执行完整的磁盘备份。
从技术上讲,仅备份第一个分区之前的扇区也应该可行,这样在执行此操作时发生错误时(例如sudo dd if=/dev/sdc bs=1M count=1 >disk_start_backup.dd
所有分区均未挂载应该是安全的,而不必深入研究计算扇区等),但我坚持认为,如果可能的话,你应该执行完整的磁盘备份。
要尝试恢复原始分区表,假设驱动器仍然映射到/dev/sdc
如您发布的输出所示lsblk
,您应该首先卸载每个已安装的分区(sudo umount /dev/sdc*
),然后尝试运行sudo gdisk /dev/sdc
输入,以:分隔ENTER:
x
r
b
w
q
这将从本质上:
- 将备份的 GPT 分区表加载为主分区表
- 将更改写入磁盘
- 出口
完成此操作后,sudo partprobe /dev/sdc
应该足以让内核再次探测驱动器,并让更改显示在 Gparted //lsblk
中fdisk
。
答案2
如果在某个时间点将 ISO 文件写入驱动器,然后写入分区表,则问题可能只是有一些未清除的残留 ISO 签名字节。
我相信可以使用如下命令:
sudo wipefs -n --no-act /path-to-disk-device
其中“/path-to-disk-device”类似于“/dev/sda”
它应该显示磁盘上的签名。
如果有剩余的 ISO 签名,则可以使用“wipefs”命令删除该签名。请参阅“man wipefs”。