如何编写使用整个设备的单个分区的创建脚本?

Mik*_*eck 9 linux scripting partition parted

我专门使用它在 Amazon EC2 实例上分区和挂载 EBS 卷,但实际上这应该通常适用于初始化任何新驱动器。

正如问题所说,我想编写使用给定设备上所有可用空间的单个主分区的创建脚本。我不会提前知道设备有多大,它可能非常大(即几个 TB)。

在研究这一点时,它似乎parted是用于脚本编写的最佳命令。我认为类似的东西parted /dev/sdf mkpart primary 0 END就是我想要的,但我很难找到一种优雅的方式来确定 END 应该是什么。有谁知道一个简单的方法来做到这一点?

Gil*_*not 11

你可以这样做:

parted /dev/sdf --script -- mkpart primary 0 -1
Run Code Online (Sandbox Code Playgroud)


slm*_*slm 6

当我尝试使用其他答案时遇到了问题。对我有用的是使用这样的百分比方法:

$ parted /dev/sdf --script -- mkpart primary 0% 100%
Run Code Online (Sandbox Code Playgroud)

parted处理分区对齐的方式和方式存在问题。这两篇文章稍微讨论了这个问题:

这些文章中概述的数学在我的场景中根本不起作用。在第二个评论中的一个评论中,链接某人建议使用百分比并且确实有效。

顺便说一下,您通常还需要为 HDD 贴上标签。要通过 CLI 执行此操作,请执行以下操作parted

$ parted /dev/sde --script -- mklabel msdos
Run Code Online (Sandbox Code Playgroud)

-或者-

$ parted /dev/sde --script -- mklabel gpt
Run Code Online (Sandbox Code Playgroud)

取决于你的硬盘。