我在这里工作的服务器上有一个新的 RAID-5 设置。我刚刚创建了 RAID-5,它的大小略高于 2.7 TB。现在,我知道 MBR 不支持超过 2.2 TB 的任何内容,但是,我在网上看到一些帖子说某些操作系统,例如 Windows XP 32 位,无法读取 GPT 磁盘。现在,如果我将其设置为 GPT 并将其分区为服务器的多个驱动器,XP32 上的用户是否能够在网络上看到和使用这些驱动器,或者他们实际上根本看不到它们?
我正在尝试从 USB 驱动器安装 Windows 10 技术预览版。
我尝试安装的硬盘有多个分区,并且使用 GPT 分区表进行格式化。当我启动 Windows 10 TP 自定义安装时,我只选择了分区,然后就不会再继续了。安装程序给我一个错误,显示“Windows 无法安装在此磁盘上。所选磁盘具有 MBR 分区表。在 EFI 系统上,Windows 只能安装在 GPT 磁盘上。”
但我的磁盘是GPT!当我格式化它时,我确保将其设置为 GPT。在 Linux live 会话中使用 Gparted 检查它表明该磁盘是 GPT。
为什么 Windows 无法识别我的磁盘是 GPT?我该如何解决它?
我知道典型的 MBR 是 512B,可寻址空间是 2TB (2^32 x 512B),这与存储设备 (HD) 的物理扇区大小有关,这是完全合理的,但是IDEMA的新“ Advance”又如何呢?在新存储设备上格式化“新标准 4096B 物理扇区大小...MBR 现在是 4096B,可寻址空间为 16TB (2^32 x 4096B),还是保持相同的 512B?
我买了一台没有光驱的电脑,无法短期借用。
所以我使用 Rufus 创建一个可启动的 USB 记忆棒。
我有一个 16Gb 东芝 USB 驱动器。
使用 Rufus 的内置 FreeDOS 映像,我发现“BIOS 或 UEFI-CSM 的 MBR 分区方案”是创建主板可以识别并从中启动的可启动 USB 驱动器的唯一选项。
然后我使用 Ubuntu 12.04 LTS 设置创建了一个测试 USB 驱动器并安装它,没有任何问题。
当我尝试写入 3GB 大小的 Windows Server 2008 映像时,我可以使用“UEFI 的 MBR 分区方案”或“UEFI 的 GPT 分区方案”写入 U 盘,但我的华擎主板无法从该 U 盘启动。
当我选择“BIOS 或 UEFI-CSM 的 MBR 分区方案”时,Rufus 强迫我选择 NTFS。当我单击“开始”时,它会写入一些结构,但随后会永远挂在尝试写入 MBR 上:
Format operation started
Requesting disk access...
Opened \\.\PHYSICALDRIVE1 for exclusive write access
Requesting lock...
Will use 'E:' as volume mountpoint
I/O boundary checks …Run Code Online (Sandbox Code Playgroud) 我希望使用sgdisk从存储设备中删除所有分区定义和数据,然后在其上创建一个GPT和两个分区。我发现的最佳解决方案是使用-Z和-o选项。
sgdisk -Zo \
-n 1::16M -t 1:EF00 -c 1:ZNX_BOOT \
-N 2 -t 2:8300 -c 2:ZNX_DATA /dev/[device]
Run Code Online (Sandbox Code Playgroud)
但是,如果驱动器是使用 MBR 分区表创建的或者向其中写入了磁盘映像,则此操作会失败。如何让此命令擦除任何磁盘,无论其上使用的分区表样式如何?
BIOS MBR 中的 NTLDR 称为引导加载程序。我们可以将其称为启动管理器吗?这两件事是一样的吗?
我在 BIOS MBR 上进行研发时从未见过像 BootManager 这样的东西,但它出现在 EFI 启动过程中。
我有一个虚拟机,其虚拟磁盘(显示为/dev/sdb)大小为 10G
管理员将虚拟磁盘的大小增加到 60G。
\n\n我重新启动机器,现在看到磁盘更大了。
\n\nroot@DMZMHLX3:~# lsblk\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\n...\nsdb 8:16 0 60G 0 disk \n\xe2\x94\x94\xe2\x94\x80sdb1 8:17 0 10G 0 part /app\n...\nRun Code Online (Sandbox Code Playgroud)\n\n现在我想添加另一个分区:
\n\ngdisk 告诉我磁盘大小为 60G,但最后一个可用扇区是与旧的 10G 磁盘映像大小相对应的扇区:
\n\nroot@DMZMHLX3:~# gdisk -l /dev/sdb\nGPT fdisk (gdisk) version 1.0.1\n\nPartition table scan:\n MBR: protective\n BSD: not present\n APM: not present\n GPT: present\n\nFound valid GPT with protective MBR; using GPT.\nDisk /dev/sdb: 125829120 sectors, 60.0 GiB\nLogical sector size: 512 bytes\nDisk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D\nPartition table holds …Run Code Online (Sandbox Code Playgroud) 我有一个 1TB 硬盘,扇区为 512 字节,我已经通过 USB 磁盘盒使用它很多年了。然而,外壳现在已经死了。
当我将其转移到新的附件时,我发现 Windows 无法读取它 - 它只是显示为“本地磁盘”。
通过各种研究,我发现原因是原始 USB 外壳将磁盘上的 512 字节扇区转换为 4k 扇区,并将其呈现给外界。新机柜没有这样做,这就是无法读取磁盘的原因。
我发现了一个听起来像类似问题的问题(How to Correct 512-byte扇区MBR on a 4096-byte扇区磁盘?),但是(a)从我的阅读来看,这听起来与我的情况相反;(b) 它没有描述解决问题所需的实际步骤(只是一般方法)。
除了试图找到另一个进行相同类型转换的外壳(感觉就像只是把罐子踢到路上,而且是不必要的开支)之外,据我所知,解决方案是修复 MBR 中的值,以便它们反映了真实的 512 字节磁盘几何结构,而不是之前感知的 4k 几何结构。
由于分区表大小都是根据扇区数定义的,因此我需要转换现有值,这些值以 4k 扇区指定大小(即ByteOffset = N x 4096),以便它们包含N512 字节扇区的等效值(即ByteOffset = N x 512)。换句话说,我需要将每个值乘以 8。
问题 1:我是否正确 - 这是我需要做的全部事情,还是比这更复杂?
假设上述解决方案是正确的,我真正要求的是是否有任何人都可以提供的工具或一组明确的说明,以便我能够对磁盘进行这些更改。风险越小越好!(例如,通过输入十进制数字直接编辑 MBR 字段的工具比直接在磁盘上处理十六进制值更好。)
问题 2:我应该使用什么工具(根据上述标准)?
Q3:我需要编辑哪些字段/偏移量?(磁盘有一个分区,可填满整个磁盘。)
请注意,我可以访问以下系统:Windows XP、Windows 10、Ubuntu 15.4。我更喜欢 Windows 解决方案,但如果有必要的话,Linux 解决方案也可以 - 我很喜欢使用命令行。
另外,我过去曾经做过字节级手动磁盘编辑任务,所以如果确实没有更好的方法来解决这个问题,这是可能的。
外部驱动器是 …
所以我有一个支持 UEFI 的主板和三个硬盘:
由于历史原因,sda 和 sdb 有 MBR 分区表,它们是较旧的驱动器。sda 驱动器包含一个有效的 Windows 7 安装,我非常希望保留它,而 sdb 包含我也非常希望保留的大数据...档案和视频等。
sdc 驱动器是我购买的新驱动器,并使用 Windows 磁盘管理器进行分区,其中一半用于 Windows,一半用于稍后的双引导 linux。我在对它进行分区时没有注意它,它创建了一个 GPT 分区表和一个 Microsoft 保留分区。时间过去了,sdc 现在包含了很多我不想弄乱的数据,是时候安装那个双引导 linux 了。
由于分区表是 GPT,Grub2 想要在驱动器的头部(被 MSR 占用)一个 EFI 系统分区(ESP),实际上拒绝安装。
所以我的问题是:
(澄清:我不关心 MSR 使用的空间,它只是妨碍我想进入那里以便我可以启动的 ESP)
我已经在 BIOS 模式下安装了 Windows 10 并使用了 MBR。如何在不重新安装 Windows 10 的情况下将其转换为使用 UEFI 和 GPT?这可能吗?
mbr ×10
gpt ×6
partitioning ×4
hard-drive ×3
bios ×2
boot ×2
bootloader ×2
linux ×2
uefi ×2
fdisk ×1
filesystems ×1
gdisk ×1
multi-boot ×1
raid ×1
rufus ×1
usb-boot ×1
windows-10 ×1
windows-7 ×1