如何使用parted或sfdisk以非交互方式对磁盘进行分区以使分区正确对齐?

如何使用parted或sfdisk以非交互方式对磁盘进行分区以使分区正确对齐?

我试图弄清楚如何以编程方式对磁盘进行分区,以便我的磁盘具有三个“msdos”主分区:一个用于 /boot,一个用于交换,最后一个用于逻辑卷。由于我们客户的政策,我无法使用 puppet 或 ansible 等。

所有系统均配置有单个 1TB 磁盘。

  • sda1 = /boot 应为 512MB
  • sda2 = 交换空间应为 16GB
  • sda4 = 磁盘的其余部分,逻辑卷的扩展分区。

我希望这些分区正确对齐,但我不断收到有关最后一个分区未在物理扇区边界上启动的错误。

我应该与parted 一起使用哪种类型的单位? sfdisk 会更容易吗?我看到人们使用兆字节的帖子同一 mkpart 命令中的扇区并想知道为什么。

答案1

我不认为对磁盘分区工具有意见有什么问题。无论如何,我选择了parted,因为parted是我们在工作中一直使用的。只是提醒一下,这是针对物理磁盘的。我希望在物理分区上进行交换和引导,并将磁盘的其余部分放在一个大分区中作为逻辑卷。

parted -s /dev/sda mklabel msdos
boot slice: 'parted -a optimal -s /dev/sda mkpart primary xfs 2048s 800MB'
swap slice: 'parted -s -a cylinder -- /dev/sda mkpart primary xfs 800MiB' 7720MiB
rest of disk: 'parted -s -a cylinder -- /dev/sda mkpart primary xfs 19087MiB -0'<br>
'pvcreate /dev/sda3' create physical volume
'vgcreate star /dev/sda3 create volume group
'lvcreate --size 10G --name tmp star' create temp volume
'lvcreate --size 30G --name home star' create home volume
'lvcreate --size 20G --name var star' create var volume
'lvcreate --size 20G --name var_log star' create /var/log volume
'lvcreate --size 20G --name var_audit star' create /var/log/audit volume
'lvcreate -l 100%FREE -n home star' create home volume with remaining space.

相关内容