为什么 fdisk 可以在 10GiB 设备上创建 10GiB 分区,但不能在 9.9GiB 设备上创建分区

为什么 fdisk 可以在 10GiB 设备上创建 10GiB 分区,但不能在 9.9GiB 设备上创建分区

目前正在学习如何在我的设备上创建和管理设备Ubuntu Server 22.04 虚拟机运行于虚拟机主机。我qcow2向虚拟机添加了一个虚拟存储磁盘。我使用fdisk并出于非常具体的目的,我需要创建一个9.9GiB分区。我设置了一个DOS 样式分区表然后尝试创建一个基本的分割。

以下是重现步骤

root@hmxserver:/home/hmx# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): o
Created a new DOS disklabel with disk identifier 0xb4942d4d.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): +9.9G
Value out of range.
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): 

Created a new partition 1 of type 'Linux' and of size 10 GiB.

我想要问的问题?

  1. 为什么10GiB分区可行但9.9GiB超出范围?
  2. 我能够做到这一点另一台虚拟机具有相似的规格,但虚拟盒10GiB 虚拟机管理程序磁盘连接并重复相同步骤。为什么fdisk成功了?
  3. 这与qcow2设备 ?
  4. 或者它是某种浮点错误?

答案1

我做了一些实验,在我看来,它fdisk无法处理浮点数,因此+9.9G无法解析,+9G+10G可以。这意味着错误消息是错误的。

如果您只想使用磁盘的其余部分,则只需不要输入分区结束的值,而是使用建议的默认值。

否则,您可能不得不采用较小的单位并输入类似的内容+10137M(即9.9*1024;请记住这是使用基于 1024 的单位!)。

或者,您可以使用parted或其 GUI 版本gparted

相关内容