我不断收到此错误:
警告!!检测到不受支持的 GPT(GUID 分区表)。使用 GNU Parted
我想回到正常的 MBR。我在这里找到了一些建议并做了:
parted /dev/sda
mklabel msdos
quit
Run Code Online (Sandbox Code Playgroud)
但是,当我mklabel选择该选项时,它会发出警告,提示我将丢失/dev/sda. 有没有办法在不格式化磁盘的情况下恢复正常的 MBR?
我正在尝试使用 安装将我的硬盘驱动器转换为 GPT gdisk,当我运行时sudo gdisk /deve/disk1s4我得到这个:
Warning! Secondary partition table overlaps the last partition by
2032668853 blocks!
You will need to delete this partition or resize it in another utility.
Run Code Online (Sandbox Code Playgroud)
这是否意味着将我的 HD 更改为 GPT 不安全?
我有一台装有两个硬盘的 CentOS 6 服务器。我的旧 3TB 驱动器给我带来了一些问题,所以我将事情转移到新驱动器上。因为我的/和/home分区由 LVM 管理,所以很容易将它们迁移到新驱动器。现在我想移到我的/boot分区和 MBR 上,这使它全部启动。
我在我的新驱动器上加载了一张 Live CD 并rsynced通过我的/boot分区到相同大小的分区。我还尝试使用以下命令复制我的 MBR:
dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
Run Code Online (Sandbox Code Playgroud)
执行此操作后,我重新启动,告诉我的 BIOS 在启动周期中不要查看旧硬盘驱动器,而只查看新驱动器,但我最终得到的只是一个闪烁的光标。
我在这里错过了一步吗?或者我还需要做些什么来使事情启动,以便我可以完全删除旧驱动器?
编辑:我开始认为 rsync 不是将 /boot 分区从一个驱动器复制到另一个驱动器的方法。根据本指南,我尝试改用 dump 命令。在这个命令中,我将旧的、未安装的引导分区复制到了新的、空的、已安装的引导分区。
dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -)
Run Code Online (Sandbox Code Playgroud)
我在启动时遇到 grub 错误 15,这比闪烁的光标要好,但我不知道这是否更接近解决方案。
如果我使用 MBR 分区方案并使用fdisk(版本 2.20.1)创建主分区或扩展分区,那么它从扇区 2048 开始。如果我没记错,那么旧版本的fdisk第一个分区在扇区 63 上启动。如果 MBR 只需要512 字节,那么为什么第一个分区不在扇区 2 上开始?那些 2047 个扇区中保存了什么?引导加载程序的某个阶段?
问:fdisk创建分区时应该使用吗?
还是建议使用,parted因为它使用 GPT?(默认情况下?)这样我就可以创建大于 2TB 的分区。
我有一个 USB 笔式驱动器,我想把它变成一个可启动的 MBR 设备。但是,在其历史上的某个时刻,该设备上有 GPT,我似乎无法摆脱它。即使我跑mklabel dos进去parted,grub-install仍然抱怨
Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..
Run Code Online (Sandbox Code Playgroud)
我不想保留任何数据。我只想清除以前 GTP 的所有痕迹,最好使用一些比 add if=/dev/zero of=…将整个驱动器清零更快的机制。我更喜欢基于终端(命令行或诅咒)的方法,但一些常见且免费的图形工具也可以。
我有一个 MBR 格式的 SD 卡,当连接到 Linux 机器(xubuntu 12.04)时,它可以挂载一个分区并解析文件系统(GParted 也可以)。但是,当我尝试使用 dd 从设备读取 MBR 时,它给了我一堆虚假数据。
当 dd 无法读取 MBR 时,任何人都可以阐明 Linux/GParted 如何能够读取和理解 MBR。他们是否使用不同的方法来获取数据?IE 未打开(),读取()
DD命令是:
dd if=/dev/sdb of=mbr.bin bs=512 count=1
Run Code Online (Sandbox Code Playgroud)
DD输出为:
1+0 records in
1+0 records out
512 bytes transferred in 0.000786 secs (651345 bytes/sec)
Run Code Online (Sandbox Code Playgroud)
mbr.bin 转储hexdump -C mbr.bin是:
00000000 04 16 41 53 4d 49 2d 53 44 03 00 00 00 00 16 f1 |..ASMI-SD.......|
00000010 00 7f 00 32 1f 5b 80 00 36 db …Run Code Online (Sandbox Code Playgroud) 我有一个安装了 FreeBSD 的 HDD(或 SSD 或闪存驱动器),不知何故我破坏了引导代码(MBR 的前 446 字节)。我怎么能启动到这个 FreeBSD?
我一直在检查 Ubuntu 20.04 和 Fedora 32 实时映像,发现第一个(ISO 9660)分区设置为覆盖整个映像(至少在 MBR 的分区表上,尚未检查 GPT)。对于 Ubuntu,约为 2.7 GB;Fedora 为 1.3 GB。但是,使用 dd 将这些 ISO 复制到 USB 记忆棒后,gparted 显示 ISO 9660 分区覆盖了整个 32 GB 记忆棒。
这是一个 gparted 错误吗?分区布局有点复杂,因为 ISO 9660 分区设置为从 LBA 0 开始,甚至有效地覆盖了 MBR 本身。我仍然不确定为什么这个分区必须覆盖整个图像;我猜这是因为将其刻录到 DVD 时,唯一可以使用的文件系统是 ISO 9660。