为了给我的 Linux 安装腾出空间,我做了以下操作:
- 使用实时 Linux USB 启动
- 用于Windows
cfdisk
分区Resize
- 选择
Write
保存新分区大小
然而,当我重新启动计算机时,UNMOUNTABLE_BOOT_VOLUME
Windows 出现了 BSOD 提示。
我尝试按照一些教程进行操作,并chkdsk
在其中有所提及,因此我转到命令提示符并尝试chkdsk /r c:
,但它给了我一个错误,说chkdsk
不适用于 RAW 磁盘。
我认为分区的“类型”不正确,因此我回到 Linux 并看到Type
分区的 是Microsoft basic data
。
有什么办法我可以把它带回来吗,或者它就永远消失了?
答案1
一般答案
(这部分是在原帖作者透露确切的分区表之前写的。)
分区和文件系统是不同的概念。Windows 经常给人一种误导性的印象,认为它们是等同的,但事实并非如此。(Windows 真丢脸。)
分区只是由分区表中的某个条目标识的较大设备的一部分。cfdisk
操纵此表。文件系统是一种通常位于分区内的结构(但它可能位于常规文件中或占据整个设备)。
一个合理的解释是:cfdisk
您更改了分区表(很可能移动了相关分区的开头),但文件系统仍处于原位,因为cfdisk
移动或调整文件系统大小不是您的工作。这就像您更改了目录而不更改内容。您的计算机感到困惑,因为它在目录应该在的位置找不到它期望的内容(以及启动所需的内容)。
如果您只更改了分区表,那么您应该将其改回原来的状态。比较我的这个答案关于分区表条目被破坏然后重新创建的情况,从而允许访问一直存在的文件系统。
如果你没有备份或记录,将分区表改回原来的状态可能并不容易。可以使用以下工具(例如testdisk
) 能够扫描磁盘,找到看起来像文件系统的内容并尝试修复分区表。
如果更改的分区是磁盘上的第一个分区,那么它有可能使用一个通用值作为其起始扇区:
- 512 字节逻辑扇区大小为 2048;
- 或 256(表示 4096 字节逻辑扇区大小);
- 或者对于 512 字节逻辑扇区大小和相当旧的 Windows 则为 63(此值不应该出现在现代设置中)。
只操作分区表应该是安全的,除非膜生物反应器只有你尝试创造谷氨酰胺磷酸酶(或已经这样做了)。合理的设置会将分区放置在不与分区表重叠的位置;您的旧布局肯定是这样的。MBR 位于磁盘的开头;GPT 需要在开头附近留出更多空间,并且需要在结尾留出空间;因此,在以前只有 MBR 的位置写入 GPT 可能会损坏某些数据(例如,开头附近的引导加载程序和/或结尾处的文件系统)。希望您没有从 MBR 更改为 GPT。在尝试恢复旧分区表时,您应该恢复其旧类型。
凭借我的经验,我认为如果我知道的话,我可能就能处理好这种情况确切地你做了哪些改变。没有经验的情况下,明智的程序是:
如果您有办法(有空闲磁盘空间)和时间,请将整个磁盘复制到另一个磁盘或常规文件以防万一。在 Linux 中,这可以像 一样简单
sudo cp /dev/sdx /target-device-or-file
。许多网站建议;如果出现读取错误,dd
我会使用:ddrescue
sudo ddrescue -b $N /dev/sdx /target-device-or-file /path/to/mapfile
其中
$N
是所讨论磁盘的物理扇区大小(512
或4096
),并且/dev/sdx
是所述磁盘。使用
testdisk
或类似工具并尝试恢复正常的分区表。
恢复分区表后,一切恢复正常,使用处理分区表的工具为 Linux 安装腾出空间和文件系统(例如gparted
)。此类工具会以正确的顺序运行更具体的工具(分别处理分区或文件系统)(用户可以手动执行此操作,但很少这样做)。ddrescue
建议在开始之前进行备份(例如使用)。
如果出于某种原因,您无法将分区表和整个设置恢复到正常状态,那么您可能仍然可以恢复至少一些文件。请参阅如何从我的存储设备恢复丢失或无法访问的数据?
具体方法
(这部分是尝试修复添加到问题中的特定分区表。)
设备上的第三个分区确实比它应有的要小。它后面从扇区号 210282496 到(含)998166527 有一个间隙(未分配空间)。这证实了你的说法,你缩小了它。
最好的办法是将第 3 个分区的结束扇区精确设置为 998166527,这样第 3 个分区和第 4 个分区之间就没有间隙了。新大小应该精确为 997599232 个扇区。cfdisk
应该允许您使用后缀指定扇区的大小S
。
我几乎可以肯定这曾经是这个数字。但即使不是,也不可能更高。设置大于其文件系统的分区仍然有效,除非文件系统不在分区开始的位置开始(这不是这里的问题)或分区重叠。998166527 是您可以设置的最大数字,以便分区不会重叠。
文件系统的头部包含有关其大小的信息。在当前情况下,分区太小,达不到头部所说的大小,因此任何正常的工具都会说那里没有合适的文件系统。
如果分区正好或更大,则标头中的信息将生效,文件系统将被识别。因此,如果文件系统最大,则应设置尽可能高的结束扇区号。此数字也适用于较小的文件系统。但很可能您的文件系统已经大到可以容纳的程度了。
因此,将大小设置为 997599232 个扇区是安全的。试试看。在写入更改之前,请仔细检查第 3 个分区的新结束扇区是否为 998166527,并且没有其他起始或结束扇区发生变化。