从未分配的磁盘空间创建未格式化的分区

从未分配的磁盘空间创建未格式化的分区

输出parted如下:

$> parted /dev/sda print free
Model: ATA Hitachi HUA72302 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
        32.3kB  1049kB  1016kB           Free Space
 1      1049kB  33.6GB  33.6GB  primary               raid
 2      33.6GB  67.1GB  33.6GB  primary               raid
 3      67.1GB  67.7GB  524MB   primary  ext4         boot, raid
        67.7GB  2000GB  1933GB           Free Space

在 CentOS 7.1 上,在这些可用的 1933GB 上创建一个空的、未格式化的分区的步骤是什么? (仅使用终端工具)

答案1

既然我已经弄清楚了,我会在这里给出答案。

首先,我使用与上面类似的命令查询磁盘布局,但请求扇区为单位:

> parted /dev/sda unit s print free
Model: ATA Hitachi HUA72302 (scsi)
Disk /dev/sda: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start       End          Size         Type     File system  Flags
        63s         2047s        1985s                 Free Space
 1      2048s       65570815s    65568768s    primary               raid
 2      65570816s   66594815s    1024000s     primary  ext4         boot, raid
 3      66594816s   132163583s   65568768s    primary               raid
 4      132163584s  3907029167s  3774865584s  primary

注意132163584s,可用空间的起始扇区(前一个分区结束+1,如果不使用free开关)。那么剩下的就很简单了:

parted /dev/sda mkpart primary ext4 132163584s -- -1s

-1s结束扇区是磁盘的末尾。是在批处理模式下--使用并防止错误(在交互模式下运行不需要这个)。-1sparted: invalid option -- '1'parted

答案2

只是添加另一种方法(使用fdisk命令)来未分配的空间创建分区。fdisk在多个 Linux 发行版中都可用,至少 Centos、Ubuntu 和 Debian 有此命令。

重要的提示:在执行以下命令之前,请确保确定要使用的磁盘,在我的情况下是/dev/sda这样的你的可能会有所不同。使用错误的磁盘可能会损坏您的磁盘和数据

首先,检查磁盘上有哪些未分配的空间。

sudo parted /dev/sda unit s print free

输出如下图所示,我们可以看到有 2GB(大约)未分配的空间。未分配的空间对应于文件系统列下具有“可用空间”的行。

       在此输入图像描述

然后,以交互模式运行 fdisk。

sudo fdisk /dev/sda

运行后fdisk,执行以下步骤:

  • 键入n用于创建新分区。
  • 输入p主分区(这是我的情况,您的可以是不同的)。
  • 输入分区第一个扇区的值(您可以从命令的“开始”列中获取该值sudo parted /dev/sda unit s print free,即从上一张图片中获取)。在我的例子中,这就是值(不需要308582400尾随)s
  • 输入分区的最后一个扇区的值(与上一步类似,您可以从命令的“结束”列中获取该值sudo parted /dev/sda unit s print free,即从上一张图片中获取)。在我的例子中,这就是值(同样,不需要312581807尾随)s
  • 键入w以将更改写入磁盘

此后,您必须重新启动系统或运行sudo partprobe命令以使分区更改可用于内核。

您可以在此时结束,您将创建分区。如果您想标记您的分区,因为它有特定用途,例如交换分区,您可以在将字母输入w命令之前按照以下步骤操作fdisk(即在将更改写入磁盘之前,即这意味着以下步骤替换上一步“键入w要写入的内容...”)。

  • t用于标记新创建的分区的类型
  • 键入要标记的分区的编号,我们刚刚创建的分区的编号,在我的例子中是3fdisk命令将通知您分配给新创建的分区的编号)
  • 键入分区类型(82在我的例子中为交换分区,但您可以键入L以列出所有类型并选择适合您的类型)
  • 键入w以将更改写入磁盘

下面的屏幕截图显示了之前执行的所有步骤和输出。

在此输入图像描述

创建新分区后的最终结果如下所示。您可以通过执行以下命令来查看您的

sudo fdisk -l /dev/sda

       在此输入图像描述

相关内容