我专门使用它在 Amazon EC2 实例上分区和挂载 EBS 卷,但实际上这应该普遍适用于初始化任何新驱动器。
正如问题所说,我想编写创建单个主分区的脚本,该主分区使用给定设备上的所有可用空间。我不会提前知道该设备有多大,而且可能非常大(即几 TB)。
在研究中,它似乎parted
是用于脚本编写的最佳命令。我认为类似的东西parted /dev/sdf mkpart primary 0 END
就是我想要的,但我很难找到一种优雅的方式来确定 END 应该是什么。有谁知道一个简单的方法来做到这一点?
答案1
你可以这样做:
parted /dev/sdf --script -- mkpart primary 0 -1
答案2
当我尝试使用其他答案时遇到了问题。对我有用的是使用像这样的百分比方法:
$ parted /dev/sdf --script -- mkpart primary 0% 100%
parted
分区对齐方式及其处理方式存在问题。这两篇文章稍微讨论了这个问题:
这些文章中概述的数学在我的场景中根本不起作用。埋在第二条评论中的一条评论中,链接有人建议使用百分比,这确实有效。
顺便说一句,您通常还需要为 HDD 贴上标签。要通过 CLI 执行此操作parted
:
$ parted /dev/sde --script -- mklabel msdos
-或者-
$ parted /dev/sde --script -- mklabel gpt
取决于您的硬盘。
答案3
你可以做...
printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk
...对于 msdos 类型。对于 gpt 来说几乎同样的事情......
printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk
或使用sgdisk
(非交互式gdisk
):
sgdisk -n 1:0:0 /dev/disk
您可以在文件系统创建期间标记磁盘。