Dja*_*aal 3 boot partitioning multi-boot grub2
EDIT3
这可能是非常绝望的情况,所以我发布了另一种更简单的方法,但仍然需要一些帮助。
https://superuser.com/questions/706244/will-this-work-backup-partition-contents-of-both-linux-and-windows
我最近在安装了 Windows 8 和 KDE Linux Mint 的磁盘上调整了一个分区的大小(/sda2 以创建另一个分区,/sda1)。很多事情都出错了。
首先,计算机无法通过 BIOS 启动并给了我 grub 救援。使用 Live Linux USB,我使用引导修复应用程序重新安装 grub(在 /sda 上)。幸好 linux 是从新的 grub2 菜单启动的,但是在尝试加载时 Windows 会崩溃。在 linux 上进行更多研究时,我发现 KDE 分区管理器和 GParted 等应用程序都无法读取我的 /sda 磁盘上的分区。
KDE 分区管理器显示“在此设备上未找到有效分区”。GParted 给我整个事情是未分配的,并且“无法满足对分区的所有约束”。
然后我安装了另一个应用程序 FixParts。这给了我以下内容:
Warning: 0xEE partition doesn't start on sector 1. This can cause problems
in some OSes.
Run Code Online (Sandbox Code Playgroud)
和
Disk size is 250069680 sectors (119.2 GiB)
MBR disk identifier: 0x0FB1A4FB
MBR partitions:
Can Be Can Be
Number Boot Start Sector End Sector Status Logical Primary Code
1 63 192779 primary Y Y 0x07
2 * 208839 134062424 logical Y Y 0x07
5 134066176 234067967 logical Y Y 0x83
6 234067968 250068991 primary Y 0x82
Run Code Online (Sandbox Code Playgroud)
fdisk -l 给了我这个:
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 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
Disk identifier: 0x0fb1a4fb
Device Boot Start End Blocks Id System
/dev/sda1 63 192779 96358+ 7 HPFS/NTFS/exFAT
/dev/sda2 * 208839 134062424 66926793 7 HPFS/NTFS/exFAT
/dev/sda3 134066175 250068991 58001408+ f W95 Ext'd (LBA)
/dev/sda5 134066176 234067967 50000896 83 Linux
/dev/sda6 234067968 250068991 8000512 82 Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)
其中 sda1 只是一个空的 NTFS 分区,sda2 包含我的 Windows 8,sda5 是 Linux /(root)。/home 在另一个磁盘上。
我想保留我的数据。我希望我的 Windows 8 和 Linux 在同一个磁盘上,因为它是一个 SSD。如果可能的话,我还希望 Grub 和 Windows 启动文件都在同一个磁盘上,但这是一个不同的问题。
编辑
首先我认为问题是“0xEE 分区不在扇区 1 上启动”,但现在我不太确定。我的其他磁盘(我有 3 个)给出了同样的错误,但分区应用程序可以读取它们。但是,我记得看到引导修复应用程序在每个磁盘上都重新安装了 grub2,所以这可能是相关的。另外,现在我看到 Windows 8 分区 (/dev/sda2) 是合乎逻辑的???Windows 无法从逻辑启动,因此以前不可能启动。我怎样才能在不丢失数据的情况下改变它?
EDIT2
来自引导修复应用程序的非常详细的信息:http : //paste.ubuntu.com/6805345/
我的天,这简直是一团糟。
以下是一些突出的问题:
“0xEE 分区不在扇区 1 上启动”
现在,这些光盘上没有 0xEE 类型的分区。如果,如这条消息所示,您确实拥有它,那么在某一时刻,您的磁盘已使用非常不同的分区表机制进行了分区,而您的“修复”似乎已完全破坏了该机制。在这种情况下,您现在看到的可能是“混合”分区表方案(并行 MBR 和 EFI 分区表尽可能描述相同的分区)已被修复到其寿命不到一英寸的结果。或者很可能更远一英寸。
这是 Windows 8 无法启动的一种可能性。Microsoft 错误地假设安装到使用 MBR 分区表分区的磁盘意味着不以 EFI 方式启动,反之亦然。如果您已经从根本上“修复”了您的分区,以至于您已经设法将分区表方案从 EFI 转换为 MBR,那么您可能已经把 Windows 搞糊涂了。
当然,不是从块 #1 开始的类型 0xEE MBR 分区表条目首先是损坏的迹象,所以发生的事情很可能不是这样。另一个可能的解释是 0xEE 分区表条目是一个幽灵。没有迹象表明 Windows 正在或曾经以 EFI 方式在您的计算机上进行引导这一事实支持了这一点。
我记得看到引导修复应用程序在每个磁盘上重新安装 grub2。
这与“修复”类型 0xEE 保护 MBR 记录完全不存在相结合,将擦除任何 EFI 分区表。当然,这首先假设它确实是 EFI 分区的。
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img.
Run Code Online (Sandbox Code Playgroud)
您已经在其通常的 MBR 病毒模式下安装了 grub,core.img它就在 EFI 分区表所在的位置。
现在我看到 Windows 8 分区 (/dev/sda2) 是合乎逻辑的???
不在 的输出中fdisk,你没有。没有任何迹象表明这一点。并且它被分配了次要设备号 2 的事实强烈表明它是一个主分区。辅助分区的编号从 5 开始。
当然,FixParts 可能(而且毫无疑问是)说实话。在这种情况下,你的MBR分区表中没有活动的主分区在所有的Windows 8确实是在扩展分区中的逻辑卷,难怪事情不会启动。VBR 引导程序在辅助分区中不能很好地运行,除非引导管理器即时修复它们的 BPB,而且我相当确定 Grub 不会这样做。您需要在此处撤消从主分区到辅助分区的转换。您的 Windows 8 卷绝对应该是主分区。
/dev/sda1: LABEL="SYSTEM RESERVED" UUID="01CF186FCBFB6340" TYPE="ntfs"
...
/dev/sda2 * 208,839 134,062,424 133,853,586 7 NTFS / exFAT / HPFS
Run Code Online (Sandbox Code Playgroud)
您的第一个主分区显然是您的(穷人的)系统卷。但是您的第二个主分区(或第一个辅助分区,取决于人们是否相信fdisk或 FixParts)是标记为活动的分区。这也会混淆 Windows。首先,它不会将您的第一个主分区识别为“系统”,因为它没有活动标志。
此外(假设fdisk是正确的),当您启动旧的 PC/AT 固件方式(而不是 EFI 方式)时,您的引导程序将从错误的卷加载错误的 VBR,如果这确实是系统保留体积。如果 FixParts 是正确的,您的引导程序将从错误的卷加载错误的 VBR,以及错误的 BPB 值。
这让我想到:
=================== hexdump -n512 -C /dev/sda1
00000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
...
000001a0 0d 0a 4e 54 4c 44 52 20 69 73 20 6d 69 73 73 69 |..NTLDR is missi|
000001b0 6e 67 00 0d 0a 4e 54 4c 44 52 20 69 73 20 63 6f |ng...NTLDR is co|
000001c0 6d 70 72 65 73 73 65 64 00 0d 0a 50 72 65 73 73 |mpressed...Press|
Run Code Online (Sandbox Code Playgroud)
您的Poor Man 系统卷上有旧的Windows NT 5.x VBR 引导程序。
=================== hexdump -n512 -C /dev/sda2
00000000 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 |.R.NTFS .....|
....
000001a0 63 75 72 72 65 64 00 0d 0a 42 4f 4f 54 4d 47 52 |curred...BOOTMGR|
000001b0 20 69 73 20 63 6f 6d 70 72 65 73 73 65 64 00 0d | is compressed..|
000001c0 0a 50 72 65 73 73 20 43 74 72 6c 2b 41 6c 74 2b |.Press Ctrl+Alt+|
Run Code Online (Sandbox Code Playgroud)
您已经在第二个主分区上安装了 Windows NT 6.x VBR 引导程序。由于活动标志,这将使它成为一个组合的“引导”和“系统”卷。
sda1: __________________________________________________________________________
Boot sector type: Windows 2000/XP: NTFS
Boot files:
sda2: __________________________________________________________________________
Boot sector type: Windows 8/2012: NTFS
Boot files: /bootmgr /Windows/System32/winload.exe
Run Code Online (Sandbox Code Playgroud)
但是微软的启动管理器不正确。BCD 存储完全丢失。第二个主分区中的 VBR 引导程序可以找到 Microsoft 的引导管理器。但是微软的启动管理器在系统卷中没有 BCD 存储。
sdc1: __________________________________________________________________________
Boot sector type: Windows 8/2012: NTFS
Boot files: /bootmgr /Boot/BCD /NTLDR /ntdetect.com
Run Code Online (Sandbox Code Playgroud)
相反:在您的第三张光盘上,您的第一个主分区被标记为活动的,因此是穷人的系统卷。微软的启动管理器和 BCD 存储都在那里,还有一个 Windows NT 6.x VBR 引导程序。这是我怀疑你的第一张光盘应该是什么样子。但事实并非如此。
我建议:
sda2成为二级分区的问题。sda1为活跃。 sda1 现在又是你的穷人的“系统”卷,就像以前一样。sda1.sda1.sda1。sda2,即 Windows 8“启动”卷。sda1 现在至少会以 PC/AT 方式引导。sda.hd0,msdos0或根本没有提及hd0,msdos1。剩下的就看你了。
| 归档时间: |
|
| 查看次数: |
6998 次 |
| 最近记录: |