XiaoK
Published on 2025-08-24 / 12 Visits
0
0

解决FnOS MBR 超过 2TB 限制的错误

解决大磁盘分区报错:

Error: partition length ... exceeds the msdos-partition-table-imposed maximum of 4294967295


📌 一、错误原因

当你在 大于 2TB 的磁盘 上用 fdisk/parted 并且分区表类型是 MBR
(msdos)
时,会报错:

Error: partition length of 10443816960 sectors exceeds the msdos-partition-table-imposed maximum of 4294967295

原因:\

  • MBR 仅用 32 位存储扇区号;\
  • 扇区大小 512B → 最大寻址空间约 2TB;\
  • 超过 2TB 必须使用 GPT (GUID Partition Table)

📌 二、解决方案概览

  • 数据盘(无系统,仅存储)
    → 直接改 GPT,新建分区即可。

  • 系统盘(启动盘)

    • UEFI 引导:GPT 原生支持,需 EFI 分区。\
    • BIOS 引导:GPT 也能用,但必须额外建一个 bios_grub 分区
      (1--2MB)

📌 三、操作步骤

1. 检查分区表 & 引导方式

fdisk -l /dev/vda        # 查看分区表类型 (dos/gpt)
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS"

2. 数据盘场景(最简单)

假设磁盘是 /dev/vdb

parted /dev/vdb
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) quit

mkfs.ext4 /dev/vdb1
mkdir /data
mount /dev/vdb1 /data

# 开机自动挂载
blkid /dev/vdb1
echo 'UUID=xxxx-xxxx /data ext4 defaults 0 2' >> /etc/fstab

3. 系统盘场景

🔹 UEFI 模式

GPT 直接支持:\

  1. 确认有 EFI System Partition (ESP),FAT32 格式,挂载 /boot/efi。\
  2. 安装引导:
    bash grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian update-grub

🔹 BIOS 模式(重点)

BIOS+GPT 下需要一个 bios_grub 分区

  1. 转换 MBR → GPT:

    gdisk /dev/vda
    # 输入 w 保存分区表
    
  2. 创建 bios_grub 分区(约 2MB):

    parted /dev/vda
    (parted) mkpart primary 1MB 3MB
    (parted) set 1 bios_grub on
    (parted) quit
    
  3. 安装 GRUB:

    grub-install /dev/vda
    update-grub
    grub-install --recheck /dev/vda
    
  4. 验证:

    parted /dev/vda print
    

    应看到一个 1--2MB 的 bios_grub 分区。


📌 四、扩展磁盘使用率

  • 新建大分区:

    parted /dev/vda mkpart primary 9GB 100%
    mkfs.ext4 /dev/vda3
    mount /dev/vda3 /data
    
  • 扩展根分区(风险高,需备份):

    parted /dev/vda resizepart 2 100%
    resize2fs /dev/vda2     # ext4
    xfs_growfs /            # xfs
    

📌 五、总结

  • 报错原因:MBR 最大仅支持 2TB。\
  • 数据盘:直接改 GPT → 新建分区。\
  • 系统盘:
    • UEFI → 需 ESP 分区,grub-install 即可。\
    • BIOS → 需 bios_grub 分区 (1--2MB),再 grub-install /dev/vda。\
  • 这样就能完整利用 >2TB 的大磁盘空间。

✅ 建议:
遇到新机器、大盘 → 直接用 GPT 分区表,避免后续迁移麻烦。


Comment