![命令行:使用最大的连续可用空间创建新分区](https://linux22.com/image/1120988/%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%9C%80%E5%A4%A7%E7%9A%84%E8%BF%9E%E7%BB%AD%E5%8F%AF%E7%94%A8%E7%A9%BA%E9%97%B4%E5%88%9B%E5%BB%BA%E6%96%B0%E5%88%86%E5%8C%BA.png)
我想要一个 shell 脚本来/dev/sdb
使用所有可用的分区空间创建一个新分区,而不触及现有分区。我的目标是创建一个新的加密 luks 分区,但使用
cryptsetup luksFormat /dev/sdb
会格式化整个磁盘。使用类似下面的命令:
cryptsetup luksFormat /dev/sdb2
没有选项,因为/dev/sdb2
尚不存在,因为我们有一个分区,其余的是未分区空间。所以我的计划是先创建一个分区,然后将该分区作为选项传递给cryptsetup luksFormat /dev/sdb<number>
,但我找不到一种干净简单的方法来使用设备上所有未使用的空间来创建新分区。
我看过的项目parted
:fdisk
。
例如,ubiquity 安装程序允许选项
d-i partman-auto/init_automatically_partition select biggest_free
当我传递完一个菜谱之后,它就能满足我的需要了。
有什么想法可以在脚本中实现这一点吗?
答案1
您可以在 GPT 磁盘上轻松使用以下命令执行此操作sgdisk
:
sudo sgdisk -n 0:0:0 /dev/sdb
对于 MBR 磁盘,我知道的最佳选择是使用fdisk
。但它并不是真正设计为脚本化的,因此您需要创建一个 Bash这里的文件向其传递命令。
无论哪种情况,您都必须确定刚刚创建的分区的编号,以便进一步进行设置cryptsetup
(或其他设置)。